- From: <bugzilla@wiggum.w3.org>
- Date: Wed, 30 Jul 2008 12:34:43 +0000
- To: public-qt-comments@w3.org
http://www.w3.org/Bugs/Public/show_bug.cgi?id=5795 --- Comment #28 from Tim Mills <tim@cbcl.co.uk> 2008-07-30 12:34:43 --- "The difference with e[false()] is that the sequence of rewrites never went via error() to something else. Yes, arguably the processor should have tried harder to check for error conditions before doing the rewrite, but it's hard to argue against doing context-independent rewrites before starting to look at the context." For the query: error()[928] we normalize to: let $fs:seq_7 as item()* := fn:error() return fs:item-at($fs:seq_7, 928) We then perform static type analysis which spots that the expression has type empty. In the original query, we necessarily look at the static context to get the context item's type. Once that's done, the only (context-independent) rewrite is to replace an expression with type empty with (). I agree that it is hard for a processor to check for error conditions, since the type system does not capture a difference between a function which, say, returns an integer from one which may return an integer or raise an error. -- 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 Wednesday, 30 July 2008 12:35:17 UTC