Skip to content

Infer union types through static typing operations - #1887

Draft
CaiJimmy wants to merge 5 commits into
jimmy/sequence-cardinalityfrom
jimmy/union-type-inference
Draft

CaiJimmy wants to merge 5 commits into
jimmy/sequence-cardinalityfrom
jimmy/union-type-inference

Conversation

@CaiJimmy

@CaiJimmy CaiJimmy commented Oct 6, 2026

Copy link
Copy Markdown
Collaborator

Inferred union types are now checked and propagated member by member.

@github-actions

github-actions Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

QT3 Test Results - Parser: jsoniq

Regression baseline: run 37528893631

🎉 No regressions found for this build.

✅ Improvement summary: 2 test(s) previously failing, errored, or skipped now pass.

Suite Test file Test case
prod prod/FLWORExpr.static-typing.xml:statictyping-4
prod prod/FLWORExpr.static-typing.xml:statictyping-5
Summary of passed tests for jsoniq
Test Suite Passing Failing Errors Skipped Missing features Total
app 2037 27 88 5 5 2157
array 208 0 1 0 0 209
fn 10308 270 170 387 315 11135
map 220 0 0 0 0 220
math 149 0 0 0 0 149
misc 764 34 21 52 18 871
op 4339 4 23 0 0 4366
prod 11473 340 186 208 7 12207
ser 332 11 0 0 0 343
xs 155 0 0 9 0 164
Total 29985 686 489 661 345 31821

Full analysis report: see analysis-jsoniq in artifacts.

Download detailed test results

@github-actions

github-actions Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

QT3 Test Results - Parser: xquery

Regression baseline: run 37528893631

🎉 No regressions found for this build.

✅ Improvement summary: 2 test(s) previously failing, errored, or skipped now pass.

Suite Test file Test case
prod prod/FLWORExpr.static-typing.xml:statictyping-4
prod prod/FLWORExpr.static-typing.xml:statictyping-5
Summary of passed tests for xquery
Test Suite Passing Failing Errors Skipped Missing features Total
app 2044 26 82 5 5 2157
array 209 0 0 0 0 209
fn 10330 249 169 387 315 11135
map 220 0 0 0 0 220
math 149 0 0 0 0 149
misc 768 30 21 52 18 871
op 4339 4 23 0 0 4366
prod 11554 292 153 208 7 12207
ser 343 0 0 0 0 343
xs 155 0 0 9 0 164
Total 30111 601 448 661 345 31821

Full analysis report: see analysis-xquery in artifacts.

Download detailed test results

Node comparison operators share one code path, as do min and max, so keep
one case per rule instead of every operator and operand position. Merge
the value and general nullable comparisons into one fixture.
@CaiJimmy
CaiJimmy force-pushed the jimmy/sequence-cardinality branch from 9a5bb63 to e79e7c9 Compare October 6, 2026 23:39
@CaiJimmy
CaiJimmy force-pushed the jimmy/union-type-inference branch from 839cc1c to 863ac6e Compare October 6, 2026 23:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant