Commit 26b2507
committed
[TS] Prefer class definitions over phantom import declarations; richer diagnostics
Path-alias imports (`@/comparator`) produce phantom classes — a signature
with no method bodies — that shadowed the real same-named class in method
resolution and in input generation. The resolver now ranks same-named
classes by substance (method bodies + fields), falls back from a phantom
exact signature match to a substantial twin, and resolveInstanceMethod
tries substantial twins when the receiver's own chain has no body for the
method; the generator instantiates the most substantial class of a name.
Unsupported diagnostics now print the receiver class signature (for
objects) and the target method signature (for function values), which
localized the next frontier precisely: several corpus files declare
comparator fields with a function type in the IR while the code calls
Comparator *methods* on them (`this.#compareFn.lessThan(a, b)`) — a
ts-frontend field-typing mismatch, recorded as jacodb#361 feedback rather
than papered over by generator heuristics.1 parent 42cfeb5 commit 26b2507
3 files changed
Lines changed: 36 additions & 11 deletions
File tree
- usvm-ts-pbt/src/main/kotlin/org/usvm/ts/pbt
- gen
- interpreter
Lines changed: 9 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
73 | 73 | | |
74 | 74 | | |
75 | 75 | | |
76 | | - | |
77 | | - | |
78 | | - | |
79 | | - | |
80 | | - | |
| 76 | + | |
| 77 | + | |
81 | 78 | | |
82 | 79 | | |
83 | | - | |
84 | | - | |
| 80 | + | |
85 | 81 | | |
86 | 82 | | |
87 | 83 | | |
| |||
183 | 179 | | |
184 | 180 | | |
185 | 181 | | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
186 | 188 | | |
187 | 189 | | |
188 | 190 | | |
| |||
Lines changed: 22 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
24 | | - | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
25 | 30 | | |
26 | 31 | | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
27 | 35 | | |
28 | 36 | | |
29 | 37 | | |
30 | 38 | | |
31 | | - | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
32 | 45 | | |
33 | 46 | | |
34 | 47 | | |
| |||
40 | 53 | | |
41 | 54 | | |
42 | 55 | | |
43 | | - | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
44 | 63 | | |
45 | 64 | | |
46 | 65 | | |
| |||
Lines changed: 5 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
584 | 584 | | |
585 | 585 | | |
586 | 586 | | |
587 | | - | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
588 | 592 | | |
589 | 593 | | |
590 | 594 | | |
| |||
0 commit comments