W3C home > Mailing lists > Public > public-qt-comments@w3.org > April 2016

[Bug 29586] [XQ31] 2.5.6.2 The judgement subtype-itemtype(Ai, Bi)

From: <bugzilla@jessica.w3.org>
Date: Wed, 27 Apr 2016 10:15:08 +0000
To: public-qt-comments@w3.org
Message-ID: <bug-29586-523-r2Ik0vs3R6@http.www.w3.org/Bugs/Public/>
https://www.w3.org/Bugs/Public/show_bug.cgi?id=29586

--- Comment #3 from Tim Mills <tim@cbcl.co.uk> ---
I'm unhappy that

map(k, Vm) 

is not a subtype of 

function(xs:anyAtomicType) as Vf, where Vm is a subtype of Vf.

and that

array(Va)

is not a subtype of

function(xs:integer) as Vf, where Vm is a subtype of Vf.

This stems from the text

"The function signature of the map, treated as a function, is always
function(xs:anyAtomicType) as item()*, regardless of the actual types of the
keys and values in the map. This means that a function item type with a more
specific return type, such as function(xs:anyAtomicType) as xs:integer, does
not match a map in the sense required to satisfy the instance of operator.
However, the rules for function coercion mean that any map can be supplied as a
value in a context where such a type is the required type, and a type error
will only occur if an actual call on the map (treated as a function) returns a
value that is not an instance of the required return type."

This appears to prevent a processor from using static type analysis to avoid
unnecessary function coercion.  For example, I think this requires that

function() { 1 } instance of function() as xs:integer

returns false.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
Received on Wednesday, 27 April 2016 10:15:14 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 16:58:00 UTC