Commit 654e79e
committed
Fix TupleAndClassConversions parity: model-aware type resolution in TypeResolver and ElmEmitter
Resolve model types (QUICK Element, Extension, etc.) through loaded models
instead of only the system type namespace. This completes parity for the
TupleAndClassConversions test, bringing results to 31/32 (1 intentional
skip: Aggregate legacy bug #1710).
TypeResolver:
- Add resolveNamedType() and resolveModelType() for system+model lookup
- Update resolveTypeSpecifier to handle qualified and unqualified model types
- Update inferInstanceLiteralType to delegate to resolveTypeSpecifier
EmissionContext:
- Add resolveTypeQName() for name-to-QName with correct model namespace
- Add dataTypeToQName() and dataTypeToTypeSpecifier() that bypass
TypeBuilder's system-only ModelResolver for model types
- Replace all operatorRegistry.typeBuilder.dataTypeToQName/TypeSpecifier
calls across codegen package (EmissionContext, CollectionOperatorEmission,
IntervalOperatorEmission)
TypeOperatorEmission:
- Update emitTypeSpecifier, emitImplicitCastExpression to use resolveTypeQName
- Fix emitConversionExpression for class/tuple conversions: emit As with
asType (QName) for named types, asTypeSpecifier for complex types,
matching legacy buildAs behavior
FullParityTest:
- Register QuickModelInfoProvider in test model manager
- Update results documentation1 parent 8cd37a4 commit 654e79e
15 files changed
Lines changed: 513 additions & 123 deletions
File tree
- Src/java/cql-to-elm/src
- commonMain/kotlin/org/cqframework/cql/cql2elm
- analysis
- codegen
- model
- commonTest/kotlin/org/cqframework/cql/cql2elm/analysis
- jvmTest/kotlin/org/cqframework/cql/cql2elm/codegen
Lines changed: 72 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
230 | 230 | | |
231 | 231 | | |
232 | 232 | | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
233 | 240 | | |
234 | 241 | | |
235 | 242 | | |
236 | 243 | | |
237 | 244 | | |
238 | 245 | | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
239 | 299 | | |
240 | 300 | | |
241 | 301 | | |
| |||
428 | 488 | | |
429 | 489 | | |
430 | 490 | | |
431 | | - | |
432 | | - | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
433 | 496 | | |
434 | 497 | | |
435 | 498 | | |
436 | 499 | | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
437 | 503 | | |
438 | 504 | | |
439 | 505 | | |
440 | 506 | | |
441 | 507 | | |
442 | | - | |
443 | | - | |
| 508 | + | |
444 | 509 | | |
445 | 510 | | |
446 | 511 | | |
| |||
853 | 918 | | |
854 | 919 | | |
855 | 920 | | |
| 921 | + | |
| 922 | + | |
| 923 | + | |
856 | 924 | | |
857 | 925 | | |
858 | 926 | | |
| |||
Src/java/cql-to-elm/src/commonMain/kotlin/org/cqframework/cql/cql2elm/analysis/SemanticAnalyzer.kt
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
57 | 57 | | |
58 | 58 | | |
59 | 59 | | |
60 | | - | |
| 60 | + | |
61 | 61 | | |
62 | 62 | | |
63 | 63 | | |
| |||
Lines changed: 16 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
231 | 231 | | |
232 | 232 | | |
233 | 233 | | |
234 | | - | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
235 | 244 | | |
236 | 245 | | |
237 | 246 | | |
| |||
298 | 307 | | |
299 | 308 | | |
300 | 309 | | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
301 | 316 | | |
302 | 317 | | |
303 | 318 | | |
| |||
Lines changed: 47 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
119 | 119 | | |
120 | 120 | | |
121 | 121 | | |
| 122 | + | |
122 | 123 | | |
123 | 124 | | |
124 | 125 | | |
125 | 126 | | |
126 | | - | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
127 | 155 | | |
128 | 156 | | |
129 | 157 | | |
130 | 158 | | |
131 | 159 | | |
132 | | - | |
133 | | - | |
134 | 160 | | |
135 | 161 | | |
136 | 162 | | |
137 | 163 | | |
138 | 164 | | |
139 | 165 | | |
| 166 | + | |
140 | 167 | | |
141 | 168 | | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
0 commit comments