Fix the bug of assignment conversion: 'short s = 12' should be allowed. And for such...
[IRC.git] / Robust / src / IR / Tree / FieldAccessNode.java
index 9a06ee4485b7f0ea6d6766ae9d5787e2710e51db..151478cdafaf0ef658cdb2b997845f7ecfbc0ba0 100644 (file)
@@ -38,4 +38,14 @@ public class FieldAccessNode extends ExpressionNode {
     return getField().getType();
   }
 
+  public Long evaluate() {
+    // if the field is a constant value then OK
+    eval = null;
+    if(field.isStatic() && field.isFinal()) {
+      eval = field.getExpressionNode().evaluate();
+    } else if (field.isEnum()) {
+      eval = Long.valueOf((long)field.enumValue());
+    }
+    return eval;
+  }
 }