Browse Source

ExpressionConstant.evaluate(): cast BigRational constants to type

If we evaluate() a BigRational constant, convert to corresponding Java data type (might lose precision)
master
Joachim Klein 8 years ago
committed by Dave Parker
parent
commit
ba3469bf36
  1. 7
      prism/src/parser/ast/ExpressionConstant.java

7
prism/src/parser/ast/ExpressionConstant.java

@ -82,6 +82,13 @@ public class ExpressionConstant extends Expression
Object res = ec.getConstantValue(name);
if (res == null)
throw new PrismLangException("Could not evaluate constant", this);
if (res instanceof BigRational) {
// Constants can also be BigRational, cast to appropriate type
// This might lose precision
BigRational r = (BigRational) res;
return getType().castFromBigRational(r);
}
return res;
}

Loading…
Cancel
Save