Bug #4619
closedXX Compiler failure with static parameters whose type has an occurrence indicator
100%
Updated by John Lumley over 4 years ago
This is a puzzle... certainly there are cases of the XX compiler compiling the testdriver successfully - and that certainly contains static parameters used for conditional compilation.
Sent from my iPad
On 28 Jun 2020, at 15:18, Saxonica Developer Community notifications@plan.io wrote:
Updated by John Lumley over 4 years ago
- Status changed from New to In Progress
- Applies to JS Branch Trunk added
A minimal reproduction of the problem occurs with:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="#all" version="3.0">
<xsl:param name="xslt-uri" static="yes" as="xs:string?" select="'group-sales-sum-product.xsl'"/>
</xsl:stylesheet>
which fails in the static phase with as="xs:string?"
but succeeds with as="xs:string"
Updated by John Lumley over 4 years ago
The strategy for handling type declarations on such static variables has been to wrap the expression in a casting function, for example:
<xsl:param name="length" as="xs:decimal" select="12+34"/>
involves an evaluation of the XPath expression 'xs:decimal(12+34)
'.
Unfortunately this has never been tried with a cardinality indicator, so the compiler has been trying to parse
xs:string?(.....)
which on encountering the ?
operator, assumes a lookup and takes the left hand operator to be a child::xs:string
term. In this case there is no context focus and hence the error.
Updated by John Lumley over 4 years ago
Patch committed, though there may be need to implement function conversion rules as a final solution
Updated by Debbie Lockett about 4 years ago
- Assignee changed from John Lumley to Debbie Lockett
- Applies to JS Branch deleted (
Trunk) - Fix Committed on JS Branch 2.0 added
The code patch was committed to the saxon-js-enterprise git repo on 2020-06-29.
A test should be added (XSLT3 probably?), and then the bug can be closed.
Updated by Debbie Lockett about 4 years ago
- Status changed from In Progress to Resolved
Added xslt3 test case static-031, so now closing.
Updated by Michael Kay about 4 years ago
- Subject changed from XX Compiler fails to compile stylesheet containing static parameters to XX Compiler failure with static parameters whose type has an occurrence indicator
Updated by Community Admin almost 4 years ago
- Applies to JS Branch 2 added
- Applies to JS Branch deleted (
2.0)
Updated by Community Admin almost 4 years ago
- Fix Committed on JS Branch 2 added
- Fix Committed on JS Branch deleted (
2.0)
Updated by Debbie Lockett almost 4 years ago
- Status changed from Resolved to Closed
- % Done changed from 0 to 100
- Fixed in JS Release set to Saxon-JS 2.1
Bug fix applied in the Saxon-JS 2.1 maintenance release.
Please register to edit this issue
Also available in: Atom PDF Tracking page