- From: <bugzilla@jessica.w3.org>
- Date: Thu, 30 Sep 2010 17:36:12 +0000
- To: public-qt-comments@w3.org
http://www.w3.org/Bugs/Public/show_bug.cgi?id=10848
Michael Dyck <jmdyck@ibiblio.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jmdyck@ibiblio.org
--- Comment #1 from Michael Dyck <jmdyck@ibiblio.org> 2010-09-30 17:36:12 UTC ---
(In reply to comment #0)
> Section 3.14 states (for try/catch expressions):
>
> If an error found in a try clause can be detected statically, an
> implementation is free to raise a static error.
That's poorly worded.
-- "detected statically" should probably be "detected during the static
analysis phase".
-- "is free to" could be just "may".
-- If a dynamic (or type) error is detected + raised during static analysis, it
doesn't thereby become a static error.
We could come up with a better wording, but I think it would just be a
reiteration of the (8th) paragraph in section 2.3.1 "Kinds of Errors"
about reporting non-static errors during static analysis.
> This means that the following query:
>
> if ($test)
> then (1 div 0)
> else false()
>
> is not allowed to raise the error until runtime (as it is a dynamic error)
I disagree, I believe it can raise an error during static analysis.
(Specifically, because the expression "1 div 0", if evaluated, would
necessarily raise err:FOAR0001, an implementation may (but need not) report
that error during static analysis.)
That is, the IfExpr-specific rules about not raising errors only refer to what
is allowed during dyanmic evaluation, and don't override the general rule about
raising non-static errors during static analysis.
> but
>
> if ($test)
> then try {1 div 0 } catch * { true() }
> else false()
>
> is allowed to raise a division by zero error statically,
Yes.
> as it is raised as a static error.
No, it's still a dynamic error.
> 1. Always allow the error to be raised. This requires a change to the text of
> IfExpr, TypeswitchExpr and SwitchExpr to state that dynamic errors detected
> statically may be raised.
I think we just need to clarify that special rules about propagation of dynamic
errors are only talking about what happens during dynamic evaluation.
--
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, 30 September 2010 17:36:14 UTC