XSLT try/catch + typed constructors; TypeTable plumbing; testrunner params; XPath fixes#134
Open
michaelgiraldo wants to merge 10 commits intoPaligo:mainfrom
Open
XSLT try/catch + typed constructors; TypeTable plumbing; testrunner params; XPath fixes#134michaelgiraldo wants to merge 10 commits intoPaligo:mainfrom
michaelgiraldo wants to merge 10 commits intoPaligo:mainfrom
Conversation
Collaborator
|
Hey, sorry for taking a while to review. I need to improve the way this project is being maintained! I merged another branch this leads to a conflict, could you look into this? |
Collaborator
|
I'm also curious about the interactions with #126 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This is a larger XSLT/XPath enablement pass: try/catch and typed constructors,
runtime TypeTable plumbing, XPath pattern fixes, and improved XSLT test running.
It also adds targeted regressions and refreshes snapshots/docs.
Context
This PR advances several XSLT features in one go. The core behavioral additions
are try/catch and typed constructors, which require IR/compiler updates and
TypeTable propagation in the interpreter. I kept runtime changes narrow and
relied on tests for safety. Alongside that, a couple XPath fixes and testrunner
improvements unblock more of the conformance suite.
What changed
XPath parsing / priority
TypeTable (runtime typing)
XSLT AST → IR → compiler → interpreter
xsl:try/xsl:catchin AST and update snapshots.XmlSetTypewhere types are declared).Typed constructors
xsl:elementxsl:attributexsl:copyxsl:copy-ofxsl:documentTest runner
Tests / docs
Commit coverage (explicit)
xpath: fix pattern parsing and update snapshotsinterpreter: add TypeTable core infrainterpreter: thread TypeTable through matchingxslt-ast: parse try/catch and refresh snapshotsir: extend XSLT IR modelcompiler: lower XSLT/XPath featuresinterpreter: execute templates and try/catchtestrunner: support xslt params and depsxslt-compiler: fix default priority for unionsAdd XSLT regression tests and refresh docsReview focus (risk boundaries)
Regression tests added
test_try_catch_rollback_output(rollback behavior)test_type_table_for_typed_constructors(type propagation)Testing
cargo testcargo run --release --bin xee-testrunner -- check vendor/xpath-tests/cargo run --release --bin xee-testrunner -- check vendor/xslt-tests/cargo run --release --bin xee-testrunner -- all vendor/xslt-tests/tests/insn/assert/_assert-test-set.xmlConformance (check runs are filtered):
Snapshot note
Snapshots updated to reflect the new
type_field on literal elements andfn:resolution behavior.