[Bug 27668] [xslt 3.0] (@a, @b) is not streamable


Abel Braaksma <abel.braaksma@xs4all.nl> changed:

           What    |Removed                     |Added
                 CC|                            |abel.braaksma@xs4all.nl

--- Comment #1 from Abel Braaksma <abel.braaksma@xs4all.nl> ---
There's a potential subtlety that we may need to carefully examine if we are
making this change (which in principal seems a sound one), consider:

(self::p, @lang)
- both striding and motionless
- potentially consuming
- with new rule, this remains motionless and striding

string((self::p, @lang))
- inner expr is motionless and striding
- under 1.b.iii.A we say: if type U is not element/document, then U' is

After this proposed change, the above expression hits an ambiguity, as there is
no more "a type", but there is now a "collection of types" (attribute and
element nodes), of which one would yield U' inspection, and the other would
yield U' absorption.

Obviously, the result of string((self::p, @lang)) must be consuming (and

I *think* that this is covered under 19.2 Determining the Static Type of a
Construct, but in the GSR we speak of "The static type T", while in fact this
is a union of several types.

Perhaps that under 1.a.i. we could remove this ambiguity by not talking of a
static type T, but of determining the union U{t1, t2...} of the construct.

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

Received on Thursday, 25 December 2014 16:00:48 UTC