- From: <bugzilla@wiggum.w3.org>
- Date: Sat, 28 Apr 2007 00:54:52 +0000
- To: public-qt-comments@w3.org
- CC:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=4272
------- Comment #10 from jmdyck@ibiblio.org 2007-04-28 00:54 -------
(personal response)
Re Comment #0:
If the Static Typing Feature is in effect, and static analysis of a call to
fn:data() finds that the static type of the argument prevents the inference of
a static type for the call, then I believe a type error [err:XPTY0004] is
raised. [XQuery 2.2.3.1 plus FS 7.2.6]
Whether or not the Static Typing Feature is in effect, if static analysis can
determine that, if evaluated, the fn:data() call would necessarily be applied
to a node without a typed value, then the implementation may raise
err:FOTY0012. [XQuery 2.3.1 plus F+O 2.4]
If the prerequisites for both errors are satisfied, then either or both may be
reported. [XQuery 2.3.1]
Re Comment #2:
Your concern is perhaps valid, but I think the answer to that is helpful error
messages and/or user documentation, not a change to the spec. Conceivably,
there could be a special error code for
"the static type satisfies the signature appearing in F+O,
but not the more precise typing defined by FS 7.2",
but I suspect there's a very low chance of that being adopted via an erratum
against the published Recommendation. It might have more chance in the context
of a future version of the spec.
Re Comment #7:
I agree that the example wouldn't pass static type analysis: in general, a call
to fn:boolean() or fn:data() will not type-check if its argument is declared as
item()*. If, as you suggest, STA *didn't* raise a type error, but evaluation
raised err:FOTY0012, that would violate this fairly fundamental requirement of
XQuery 2.2.3.1:
If static type checking raises no errors and assigns a static type T to an
expression, then execution of the expression on valid input data is
guaranteed either to produce a value of type T or to raise a dynamic error.
Or as XQuery 2.2.3.2 puts it:
If the Static Typing Feature is in effect, all type errors are detected
during static analysis...
(Note that err:FOTY0012 is a type error, not a dynamic error.)
Therefore, I propose that this issue be closed with no change to the
specifications.
Received on Saturday, 28 April 2007 00:54:56 UTC