[Bug 4305] typeswitchhc12:

http://www.w3.org/Bugs/Public/show_bug.cgi?id=4305

           Summary: typeswitchhc12:
           Product: XML Query Test Suite
           Version: 1.0.2
          Platform: Other
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: XML Query Test Suite
        AssignedTo: carmelo@nist.gov
        ReportedBy: frans.englich@telia.com
         QAContact: public-qt-comments@w3.org


Test typeswitchhc12 reads:

-----------------------------------------
(: Name: typeswitchhq12 :)
(: Description: Simple test for evaluating dynamic error raised by default
clause (no error raised) :)

typeswitch(123)
 case $i as xs:string
    return <wrap>test failed</wrap> 
 case $i as xs:double
    return <wrap>test failed</wrap> 
 case $i as xs:integer
    return <wrap>test passed - If a dynamic error is generated, then test
failed.</wrap>
 default
   return 12 div 0
-----------------------------------------

I think this test is wrong, which I base on that 2.3.1 Kinds of Errors reads:

"Independently of whether the Static Typing Feature is in effect, if an
implementation can determine during the static analysis phase that an
expression, if evaluated, would necessarily raise a type error or a dynamic
error, the implementation may (but is not required to) report that error during
the static analysis phase. However, the fn:error() function must not be
evaluated during the static analysis phase."

So, an implementation may raise a dynamic error during compile, unless it's
fn:error(). I think the conditions are met: "if evaluated, would necessarily
raise a type error".

I suggest replacing "12 div 0" with a call to fn:error().

Received on Wednesday, 7 February 2007 10:42:58 UTC