- From: <bugzilla@wiggum.w3.org>
- Date: Wed, 11 Jan 2006 13:06:44 +0000
- To: public-qt-comments@w3.org
- Cc:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=2692 Summary: for $p at $p in EXP return $p Product: XPath / XQuery / XSLT Version: Candidate Recommendation Platform: PC OS/Version: Windows XP Status: NEW Severity: normal Priority: P2 Component: XQuery AssignedTo: chamberl@almaden.ibm.com ReportedBy: mike@saxonica.com QAContact: public-qt-comments@w3.org (previously raised in WG email at http://lists.w3.org/Archives/Member/w3c-xml-query-wg/2005Nov/0001.html - transferred here by virtue of action A-281-01) The expression for $p at $p in EXP return $p is not currently an error; it seems that the $p in the return clause is bound to the second of the two declared variables, and that the first one is inaccessible. This doesn't seem a useful thing to allow. Discussion in the Working Group suggested a variety of positions on this. These can be summarised by the following options: A. Do nothing; the above construct remains allowed. B. Introduce a rule that says the two iteration variables associated with the same ExprSingle in a ForClause must have distinct names. (So the above construct is prohibited, but "for $p in X, $p in Y return $p*$p" remains allowed.) C. Introduce a rule that requires all the variables bound in a single FLWOR expression to have distinct names D. Disallow all shadowing of local variables. In discussion, several people pointed to the common beginner's mistake of writing let $x := 0 for $i in //item let $x := $x + $i/@price return $x which is currently permitted, but does not do what this user expected. There is a case for tightening the rules to catch this error. This would be achieved by option C. On the other hand, the slight variant let $x := 0 for $i in //item return let $x := $x + $i/@price return $x would only be caught by option D. There was some discussion of process/policy. Should we be making design changes at this late stage of development? Perhaps we should, because it's only at this late stage that we are able to collect real usability feedback.
Received on Wednesday, 11 January 2006 13:06:53 UTC