|
443 | 443 | var lev_distance = MAX_LEV_DISTANCE + 1; |
444 | 444 | if (obj.name === val.name) { |
445 | 445 | if (literalSearch === true) { |
446 | | - if (val.generics.length > 0) { |
| 446 | + if (val.generics.length !== 0) { |
447 | 447 | if (obj.generics && obj.length >= val.generics.length) { |
448 | 448 | var elems = obj.generics.slice(0); |
449 | 449 | var allFound = true; |
|
467 | 467 | } |
468 | 468 | return true; |
469 | 469 | } |
470 | | - // No need to check anything else: we found it. Let's just move on. |
| 470 | + // If the type has generics but don't match, then it won't return at this point. |
| 471 | + // Otherwise, `checkGenerics` will return 0 and it'll return. |
471 | 472 | var tmp_lev = checkGenerics(obj, val); |
472 | 473 | if (tmp_lev <= MAX_LEV_DISTANCE) { |
473 | 474 | return tmp_lev; |
|
494 | 495 | lev_distance = min(levenshtein(obj.generics[x], val.name), lev_distance); |
495 | 496 | } |
496 | 497 | } |
497 | | - return lev_distance; |
| 498 | + // Now whatever happens, the returned distance is "less good" so we should mark it |
| 499 | + // as such, and so we add 1 to the distance to make it "less good". |
| 500 | + return lev_distance + 1; |
498 | 501 | } |
499 | 502 |
|
500 | 503 | function findArg(obj, val, literalSearch) { |
|
503 | 506 | if (obj && obj.type && obj.type.inputs.length > 0) { |
504 | 507 | for (var i = 0; i < obj.type.inputs.length; i++) { |
505 | 508 | var tmp = checkType(obj.type.inputs[i], val, literalSearch); |
506 | | - if (literalSearch && tmp === true) { |
| 509 | + if (literalSearch === true && tmp === true) { |
507 | 510 | return true; |
508 | 511 | } |
509 | 512 | lev_distance = min(tmp, lev_distance); |
|
520 | 523 |
|
521 | 524 | if (obj && obj.type && obj.type.output) { |
522 | 525 | var tmp = checkType(obj.type.output, val, literalSearch); |
523 | | - if (literalSearch && tmp === true) { |
| 526 | + if (literalSearch === true && tmp === true) { |
524 | 527 | return true; |
525 | 528 | } |
526 | 529 | lev_distance = min(tmp, lev_distance); |
|
0 commit comments