<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://www.w3.org/Bugs/Public/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4"
          urlbase="https://www.w3.org/Bugs/Public/"
          
          maintainer="sysbot+bugzilla@w3.org"
>

    <bug>
          <bug_id>26543</bug_id>
          
          <creation_ts>2014-08-08 13:57:05 +0000</creation_ts>
          <short_desc>[xslt30] Circularities, and errors in patterns</short_desc>
          <delta_ts>2015-03-30 18:36:19 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>XPath / XQuery / XSLT</product>
          <component>XSLT 3.0</component>
          <version>Working drafts</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Kay">mike</reporter>
          <assigned_to name="Michael Kay">mike</assigned_to>
          <cc>abel.braaksma</cc>
          
          <qa_contact name="Mailing list for public feedback on specs from XSL and XML Query WGs">public-qt-comments</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>110039</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Kay">mike</who>
    <bug_when>2014-08-08 13:57:05 +0000</bug_when>
    <thetext>In 9.11, circular definitions, we have several examples of circularities involving patterns:

Example: Circularity involving Variables and Templates

&lt;xsl:variable name=&quot;x&quot;&gt;
  &lt;xsl:apply-templates select=&quot;//param[1]&quot;/&gt;
&lt;/xsl:variable&gt;

&lt;xsl:template match=&quot;param[$x]&quot;&gt;1&lt;/xsl:template&gt;

Example: Circularity involving Variables and Keys

&lt;xsl:variable name=&quot;x&quot; select=&quot;my:f(10, /)&quot;/&gt;

&lt;xsl:function name=&quot;my:f&quot;&gt;
  &lt;xsl:param name=&quot;arg1&quot;/&gt;
  &lt;xsl:param name=&quot;top&quot;/&gt;
  &lt;xsl:sequence select=&quot;key(&apos;k&apos;, $arg1, $top)&quot;/&gt;
&lt;/xsl:function&gt;

&lt;xsl:key name=&quot;k&quot; match=&quot;item[@code=$x]&quot; use=&quot;@desc&quot;/&gt;

But we say in 5.6.4 that a dynamic error in evaluating a pattern does not cause the transformation to fail, it causes the pattern to not match. This suggests that these two examples should no longer be errors.

Alternatively we could say that the rule about not reporting errors in patterns does not apply to circularity errors.

Affects test case error-code-195.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>110416</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Kay">mike</who>
    <bug_when>2014-08-21 17:06:53 +0000</bug_when>
    <thetext>The WG decided today that when a circularity is detected, it must be reported, and this overrides the rule that dynamic errors in evaluating patterns are normally masked.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>110469</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Kay">mike</who>
    <bug_when>2014-08-22 11:30:03 +0000</bug_when>
    <thetext>The changes have been applied.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119070</commentid>
    <comment_count>3</comment_count>
    <who name="Abel Braaksma">abel.braaksma</who>
    <bug_when>2015-03-30 18:36:19 +0000</bug_when>
    <thetext>Update: fixed in the XT3 testsuite.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>