[Bug 26606] New: XT3TS: bug-1701

https://www.w3.org/Bugs/Public/show_bug.cgi?id=26606

            Bug ID: 26606
           Summary: XT3TS: bug-1701
           Product: XPath / XQuery / XSLT
           Version: Recommendation
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: normal
          Priority: P2
         Component: XSLT 3.0 Test Suite
          Assignee: abel.online@xs4all.nl
          Reporter: tim@cbcl.co.uk
        QA Contact: public-qt-comments@w3.org

The result of this test depends on the order of evaluation.

e.g. in

        <xsl:variable name="won" 
            select="count($matches[team=$this][number(team[.=$this]/@score)
&gt; number(team[.!=$this]/@score)])"/>

A processor is free to reorder the predicates.  Doing so can result in a type
check error in the call to number().

Quoting XPath 3.0:

"The expression in the following example cannot raise a casting error if it is
evaluated exactly as written (i.e., left to right). Since neither predicate
depends on the context position, an implementation might choose to reorder the
predicates to achieve better performance (for example, by taking advantage of
an index). This reordering could cause the expression to raise an error.

$N[@x castable as xs:date][xs:date(@x) gt xs:date("2000-01-01")]

To avoid unexpected errors caused by expression rewrite, tests that are
designed to prevent dynamic errors should be expressed using conditional
expressions. For example, the above expression can be written as follows:

$N[if (@x castable as xs:date)
   then xs:date(@x) gt xs:date("2000-01-01")
   else false()]"

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

Received on Tuesday, 19 August 2014 08:39:28 UTC