[Bug 5915] [FS] rules for XPST0005

http://www.w3.org/Bugs/Public/show_bug.cgi?id=5915


Tim Mills <tim@cbcl.co.uk> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |tim@cbcl.co.uk




--- Comment #2 from Tim Mills <tim@cbcl.co.uk>  2008-07-31 07:54:37 ---
We have a type rule based on the description of fs:convert-operand in 7.1.1 The
fs:convert-operand function:

If $actual is the empty sequence, returns the empty sequence.

In fact, we actually borrow the rules in C.2 Mapping of Overloaded Internal
Functions, because they cover the case of union types.  Consider

U = (T1 | T2)
T1 <: xs:untypedAtomic?
not(T2 <: xs:untypedAtomic?)

Following the static typing rules in 7.1.1:

statEnv  |-  not(U <: xs:untypedAtomic?)
-------------------------------------------------------------
statEnv |-  (FS-URI,"convert-operand")( U, Type2) : U

This is clearly wrong.

It seems unfortunate that introducing a rule to improve the precision of a
static typing judgement leads us to fall foul of another area of the
specification.

Is there a good reason why the rule:

    * The fn:data function and all functions in the fs namespace applied to
empty parentheses ().

is not stated as:

    * The fn:data function and all functions in the fs namespace whose statoc
return types can be determined to be the empty type.


-- 
Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.

Received on Thursday, 31 July 2008 07:55:10 UTC