Commit b125184
committed
Fix null type handling to skip comparison for unresolvable types
The previous fix only handled the both-null case, but the actual
benchmarkDeepAbstractConcrete scenario has mixed null and non-null types:
fragments on "Whatever" (unresolvable) produce null-typed fields alongside
Abstract-typed fields from interface inline fragments. A null type means the
parent was unresolvable, so we should skip the comparison entirely rather
than report a spurious conflict.
This changes the null check from reporting an error to simply continuing,
which matches the semantic that null = unknown/unresolvable = skip.
The test now reproduces the exact benchmark scenario that was crashing.
https://claude.ai/code/session_01MZkhqChmheW6d46H4p8T7Y1 parent 5025d04 commit b125184
2 files changed
Lines changed: 25 additions & 14 deletions
File tree
- src
- main/java/graphql/validation
- test/groovy/graphql/validation
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1242 | 1242 | | |
1243 | 1243 | | |
1244 | 1244 | | |
1245 | | - | |
1246 | | - | |
1247 | | - | |
1248 | 1245 | | |
1249 | 1246 | | |
1250 | 1247 | | |
| |||
Lines changed: 25 additions & 11 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
968 | 968 | | |
969 | 969 | | |
970 | 970 | | |
971 | | - | |
| 971 | + | |
972 | 972 | | |
973 | 973 | | |
974 | | - | |
975 | | - | |
976 | | - | |
| 974 | + | |
| 975 | + | |
| 976 | + | |
| 977 | + | |
| 978 | + | |
| 979 | + | |
977 | 980 | | |
978 | | - | |
| 981 | + | |
| 982 | + | |
| 983 | + | |
| 984 | + | |
| 985 | + | |
| 986 | + | |
| 987 | + | |
| 988 | + | |
979 | 989 | | |
980 | | - | |
981 | | - | |
982 | | - | |
983 | 990 | | |
984 | | - | |
985 | | - | |
986 | | - | |
| 991 | + | |
| 992 | + | |
| 993 | + | |
| 994 | + | |
| 995 | + | |
| 996 | + | |
| 997 | + | |
| 998 | + | |
| 999 | + | |
| 1000 | + | |
987 | 1001 | | |
988 | 1002 | | |
989 | 1003 | | |
| |||
0 commit comments