This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.
In 9.11, circular definitions, we have several examples of circularities involving patterns: Example: Circularity involving Variables and Templates <xsl:variable name="x"> <xsl:apply-templates select="//param[1]"/> </xsl:variable> <xsl:template match="param[$x]">1</xsl:template> Example: Circularity involving Variables and Keys <xsl:variable name="x" select="my:f(10, /)"/> <xsl:function name="my:f"> <xsl:param name="arg1"/> <xsl:param name="top"/> <xsl:sequence select="key('k', $arg1, $top)"/> </xsl:function> <xsl:key name="k" match="item[@code=$x]" use="@desc"/> 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.
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.
The changes have been applied.
Update: fixed in the XT3 testsuite.