[ 
https://issues.apache.org/jira/browse/DAFFODIL-1044?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Steve Lawrence resolved DAFFODIL-1044.
--------------------------------------
    Resolution: Fixed

Fixed in commit a2f56a3f44d307a138fb7a4614f873120e186d63

> DPath not finding obvious type errors involving constants at compile time
> -------------------------------------------------------------------------
>
>                 Key: DAFFODIL-1044
>                 URL: https://issues.apache.org/jira/browse/DAFFODIL-1044
>             Project: Daffodil
>          Issue Type: Bug
>          Components: DFDL Language, Middle "End"
>    Affects Versions: s15
>            Reporter: Michael Beckerle
>            Assignee: Steve Lawrence
>            Priority: Major
>             Fix For: 2.3.0
>
>
> See test test_expression_type_error2()
> The test has an expression which clearly is erroneous. 
> {code}
> <xs:element name="e3" type="xs:int" dfdl:inputValueCalc="{ 2.5 }" />
> {code}
> where a decimal/floating point constant is given as the value for an xs:int 
> type element. 
> Current behavior just truncates and produces the value 2.
> This is the right semantics for the xs:int(...) function call. 
> This from the XPath functions spec: 
> If ST is xs:decimal, xs:float or xs:double, then TV is SV with the fractional 
> part discarded and the value converted to xs:integer. Thus, casting 3.1456 
> returns 3 and -17.89 returns -17. Casting 3.124E1 returns 31. If SV is too 
> large to be accommodated as an integer, (see [XML Schema Part 2: Datatypes 
> Second Edition] for ��implementation-defined�� limits on numeric values) an 
> error is raised [err:FOCA0003]. If SV is one of the special xs:float or 
> xs:double values NaN, INF, or -INF, an error is raised [err:FOCA0002].
> Right now, if a value is returned by an expression via inputValueCalc, then 
> it is converted to the type of the element in exactly the same way that an 
> argument to a function is converted.
> This leads to the strange anomalies like  test_expression_type_error2() where 
> there is a clear mistake by the schema author.
> Fixing this so we can issue an SDE or warning requires that the DPath 
> constant folding be enhanced substantially so that it can not only determine 
> if an entire expression is a constant or not, but sub-expressions within an 
> expression.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to