- From: <bugzilla@wiggum.w3.org>
- Date: Mon, 16 Oct 2006 16:11:08 +0000
- To: public-qt-comments@w3.org
- CC:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=3841 Summary: Static typing of function declarations Product: XPath / XQuery / XSLT Version: Working drafts Platform: PC OS/Version: Windows XP Status: NEW Severity: normal Priority: P2 Component: Formal Semantics AssignedTo: simeon@us.ibm.com ReportedBy: nick@cbcl.co.uk QAContact: public-qt-comments@w3.org According to the Static Type Analysis in section 5.15 of the Formal Semantics: "The function body's type must be a subtype of the expected return type. If static typing fails, a static type error is raised." But 4.15 of the XQuery Language spec states that the rules for converting the result of a function to its declared result type, are described in 3.1.5 Function Calls, which then proceeds to list a series of atomization and promotion rules. The end result is that, by my understanding of the formal semantics, queries such as declare function local:myFunction() as xs:float { 4.0 }; do not static type check, as 4.0 is xs:decimal, which is not a subtype of xs:float. Unless I have missed something in the FS, I think the rules from 3.1.5 are missing and need to be added to the formal semantics for function declarations.
Received on Monday, 16 October 2006 16:11:18 UTC