Repository navigation
Commit 58295d2
fix(resolution): dangling relative imports are negative evidence
- `RelativeImportLookup { Bound, NoIndexedFile, Unknown }`: `resolve_relative_import` reports `NoIndexedFile` only when every accepted path is absent from a complete index view, no same-directory file shares the first-dot stem, and the path is not an indexed directory; anything else is `Unknown`
- `ImportOrigin::Dangling`: the TypeScript and JavaScript builders register a `NoIndexedFile` binding as dangling, install nothing into scope, and skip the module-string fallback
- shared resolver: a receiver-less row of any kind whose name is owned by a dangling binding fails closed before the name-keyed tiers; the file's own definitions and the inheritance witness still resolve; receiver-bearing rows unchanged
- `PipelineSymbolCache::{file_presence, sibling_stem_present, directory_present}` answer from file rows; only a cache built from every persisted row (`from_index` over the uncapped `for_each_file_path`) answers `Absent`; walk-scoped caches answer `Unknown`
- boundary: a file governed by a tsconfig or jsconfig with `moduleSuffixes` or `rootDirs` gets no negative evidence (`ResolutionRules::relative_specifiers_redirected`; provider cache `RESOLUTION_INDEX_VERSION` 1.1)
- preservation goldens under `tests/fixtures/dangling_import/` captured from a `71b6cdb` release build; `EMISSION_SEMANTICS_VERSION` unchanged, `codanna index --force` applies the change to an existing index
Co-authored-by: Mason James <297610+masonjames@users.noreply.github.com>1 parent c965e49 commit 58295d2
58 files changed
Lines changed: 2786 additions & 49 deletions
File tree
- src
- indexing
- pipeline
- stages
- parsing
- javascript
- typescript
- project_resolver
- providers
- storage/tantivy
- tests
- cli
- fixtures/dangling_import
- integration
- parsers/typescript
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
| 22 | + | |
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
| |||
226 | 226 | | |
227 | 227 | | |
228 | 228 | | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
229 | 244 | | |
230 | 245 | | |
231 | 246 | | |
| |||
955 | 970 | | |
956 | 971 | | |
957 | 972 | | |
| 973 | + | |
| 974 | + | |
| 975 | + | |
| 976 | + | |
| 977 | + | |
| 978 | + | |
| 979 | + | |
| 980 | + | |
958 | 981 | | |
959 | 982 | | |
960 | 983 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
7 | 8 | | |
8 | 9 | | |
9 | 10 | | |
| |||
462 | 463 | | |
463 | 464 | | |
464 | 465 | | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
465 | 500 | | |
466 | 501 | | |
467 | 502 | | |
| |||
478 | 513 | | |
479 | 514 | | |
480 | 515 | | |
| 516 | + | |
481 | 517 | | |
482 | 518 | | |
483 | 519 | | |
| |||
488 | 524 | | |
489 | 525 | | |
490 | 526 | | |
| 527 | + | |
491 | 528 | | |
492 | 529 | | |
493 | 530 | | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
| 534 | + | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
494 | 545 | | |
495 | 546 | | |
496 | 547 | | |
| |||
875 | 926 | | |
876 | 927 | | |
877 | 928 | | |
| 929 | + | |
| 930 | + | |
| 931 | + | |
| 932 | + | |
| 933 | + | |
| 934 | + | |
| 935 | + | |
| 936 | + | |
| 937 | + | |
| 938 | + | |
| 939 | + | |
| 940 | + | |
| 941 | + | |
| 942 | + | |
| 943 | + | |
| 944 | + | |
| 945 | + | |
| 946 | + | |
| 947 | + | |
| 948 | + | |
| 949 | + | |
| 950 | + | |
| 951 | + | |
| 952 | + | |
| 953 | + | |
| 954 | + | |
878 | 955 | | |
879 | 956 | | |
880 | 957 | | |
| |||
890 | 967 | | |
891 | 968 | | |
892 | 969 | | |
893 | | - | |
| 970 | + | |
| 971 | + | |
| 972 | + | |
| 973 | + | |
| 974 | + | |
| 975 | + | |
| 976 | + | |
| 977 | + | |
| 978 | + | |
| 979 | + | |
| 980 | + | |
| 981 | + | |
| 982 | + | |
| 983 | + | |
| 984 | + | |
894 | 985 | | |
895 | 986 | | |
896 | 987 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
| 6 | + | |
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| |||
343 | 343 | | |
344 | 344 | | |
345 | 345 | | |
346 | | - | |
347 | | - | |
348 | | - | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
349 | 367 | | |
350 | 368 | | |
351 | 369 | | |
| |||
389 | 407 | | |
390 | 408 | | |
391 | 409 | | |
392 | | - | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
393 | 413 | | |
394 | 414 | | |
395 | | - | |
| 415 | + | |
396 | 416 | | |
397 | 417 | | |
398 | 418 | | |
| |||
417 | 437 | | |
418 | 438 | | |
419 | 439 | | |
420 | | - | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
421 | 443 | | |
422 | 444 | | |
423 | 445 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
44 | 44 | | |
45 | 45 | | |
46 | 46 | | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
47 | 56 | | |
48 | 57 | | |
49 | 58 | | |
| |||
153 | 162 | | |
154 | 163 | | |
155 | 164 | | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
156 | 173 | | |
157 | 174 | | |
158 | 175 | | |
| |||
349 | 366 | | |
350 | 367 | | |
351 | 368 | | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
352 | 372 | | |
353 | 373 | | |
354 | 374 | | |
| |||
360 | 380 | | |
361 | 381 | | |
362 | 382 | | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
363 | 386 | | |
364 | 387 | | |
365 | 388 | | |
| |||
407 | 430 | | |
408 | 431 | | |
409 | 432 | | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
410 | 436 | | |
411 | 437 | | |
412 | 438 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
594 | 594 | | |
595 | 595 | | |
596 | 596 | | |
| 597 | + | |
| 598 | + | |
597 | 599 | | |
598 | 600 | | |
599 | 601 | | |
600 | 602 | | |
601 | 603 | | |
602 | 604 | | |
603 | 605 | | |
| 606 | + | |
604 | 607 | | |
605 | 608 | | |
606 | 609 | | |
| |||
609 | 612 | | |
610 | 613 | | |
611 | 614 | | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
612 | 618 | | |
613 | 619 | | |
614 | 620 | | |
| |||
618 | 624 | | |
619 | 625 | | |
620 | 626 | | |
621 | | - | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
622 | 637 | | |
623 | 638 | | |
624 | 639 | | |
| |||
0 commit comments