- From: <bugzilla@jessica.w3.org>
- Date: Thu, 29 Sep 2011 01:50:25 +0000
- To: public-qt-comments@w3.org
http://www.w3.org/Bugs/Public/show_bug.cgi?id=14330 Summary: [XQuery30] technical: 3.1.6 Literal Function Items: static context Product: XPath / XQuery / XSLT Version: Working drafts Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: XQuery 3.0 AssignedTo: jonathan.robie@gmail.com ReportedBy: jmdyck@ibiblio.org QAContact: public-qt-comments@w3.org 3.1.6 Literal Function Items says: "The static context for evaluation of the function item [created by a literal function item expression] is inherited from the location of the literal function item expression..." First, it's incorrect to talk about "the evaluation of a function item", because a function item is already a value. Instead, you can *invoke* a function item, which then typically involves evaluation of the expression that is the function item's implementation. So, assuming that it's the latter expression whose static context is the subject of the quoted sentence, I believe the statement is incorrect. Consider: declare variable $v as xs:integer := 7; declare function f() { $v+1 }; let $v as xs:string := "foo" let $fi := f#1 return $fi() I think the result should be 8, but I think the quoted statement says that the result is a type error. At the location of the literal function item expression f#1, the static context says variable $v is of type xs:string. If you try to evaluate the function body $v+1 in such a context, you'll get a type error. (Or perhaps the result is undefined, if the value for $v is inconsistent with xs:string.) To fix, I think we should simply delete the quoted sentence. (The new function item's implementation is that of the referenced function, and that implementation's static context [if it has one] is whatever it is.) The sentence goes on to point out that the static type of the context item is initially undefined. This is worth saying, but not here. Instead, it belongs where function bodies are introduced: 3.1.7 "Inline Functions" already says it; 4.18 "Function Declarations" should add it. -- 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, 29 September 2011 01:50:27 UTC