Commit 13a6266
fix(scala): decline, rather than fail, types with unresolvable members
Addresses the fifth AI review round, where both reviewers independently found
the same gap.
Guarding only `Class.forName` was not enough to keep recognition free of linkage
failures. `getField` and `getMethods` resolve member descriptors, so a companion
or case class declaring a member whose type is absent at runtime threw a
`NoClassDefFoundError` out of `isCaseClass` for a type this module does not own.
Recognition now declines such a type; the owning path still reports it. Ambiguity
stays loud, and the comment says so rather than promising blanket quiet.
`CompanionOwner` keeps one piece of state: static forwarders are exactly the
absence of a companion singleton.
The literal-name comment named the wrong mechanism again. Verified against the
compiled classes: a one-level companion is enclosed by the mirror class, so its
canonical name ends with its only `$` and resolves; two or more levels put a
`$`-terminated segment in the middle, which the generated-code compiler cannot
resolve through.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>1 parent a86a870 commit 13a6266
4 files changed
Lines changed: 35 additions & 27 deletions
File tree
- docs/json
- java
- fory-core/src/main/java/org/apache/fory/reflect
- fory-json/src/main/java17/org/apache/fory/json
- scala/fory-json-scala/src/main/scala/org/apache/fory/json/scala/internal
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
54 | | - | |
55 | | - | |
56 | | - | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
57 | 57 | | |
58 | 58 | | |
59 | 59 | | |
| |||
Lines changed: 5 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
633 | 633 | | |
634 | 634 | | |
635 | 635 | | |
636 | | - | |
637 | | - | |
638 | | - | |
639 | | - | |
640 | | - | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
641 | 641 | | |
642 | 642 | | |
643 | 643 | | |
| |||
Lines changed: 2 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
117 | 117 | | |
118 | 118 | | |
119 | 119 | | |
120 | | - | |
| 120 | + | |
121 | 121 | | |
122 | 122 | | |
123 | 123 | | |
| |||
880 | 880 | | |
881 | 881 | | |
882 | 882 | | |
883 | | - | |
| 883 | + | |
884 | 884 | | |
885 | 885 | | |
886 | 886 | | |
| |||
Lines changed: 25 additions & 17 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
35 | | - | |
36 | | - | |
37 | | - | |
38 | | - | |
39 | | - | |
40 | | - | |
41 | | - | |
42 | | - | |
43 | | - | |
44 | | - | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
45 | 55 | | |
46 | 56 | | |
47 | 57 | | |
| |||
227 | 237 | | |
228 | 238 | | |
229 | 239 | | |
230 | | - | |
231 | | - | |
232 | | - | |
233 | | - | |
234 | | - | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
235 | 243 | | |
236 | 244 | | |
237 | 245 | | |
| |||
250 | 258 | | |
251 | 259 | | |
252 | 260 | | |
253 | | - | |
| 261 | + | |
254 | 262 | | |
255 | 263 | | |
256 | 264 | | |
| |||
267 | 275 | | |
268 | 276 | | |
269 | 277 | | |
270 | | - | |
| 278 | + | |
271 | 279 | | |
272 | 280 | | |
273 | 281 | | |
| |||
0 commit comments