|
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