[Bug 30033] [xslt30] Streamability rules for fn:current() lack an "otherwise" clause

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

--- Comment #2 from Michael Kay <mike@saxonica.com> ---
Proposed resolution:

Explanations in "[]", which may become notes in the spec if appropriate.

(1) Add special rules for the static type of a call to current():

(a) if the call is within an XPath expression, the *context item type* that
applies to the outermost containing XPath expression, determined by the rules
in 19.2.

(b) if the call is within a pattern, the *match type* of the pattern, as
defined in 19.2. [Note: a call to current() in a pattern will always be within
a predicate, which means that the match type of the pattern will never depend
on the static type of the call to current(), so there is no circularity in this
definition].

In 19.8.9.3, Streamability of fn:current(), change the rules to (§§ marks
changes):

The sweep and posture of a call to the current function are determined as
follows:

§§1. If the call appears within a pattern [Note: it will always be within a
predicate of the pattern], then climbing and motionless.

2. Otherwise, let E be the outermost containing XPath expression of the call to
the current function.

2(a) If the context posture of E is grounded, then motionless and grounded.

2(b) If the path in the expression tree that connects the call on current to E
(excluding E itself) contains an expression that is a higher-order operand of
its parent expression, then climbing and motionless.

§§2(c) Otherwise, the posture is the context posture, and the sweep is
motionless.

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

Received on Friday, 16 December 2016 10:44:36 UTC