ReferenceExpression implements Expression { @Override public ExprType type() { return type; }  @Override ExprValue valueOf(Environment<Expression, ExprValue> env); @Override ExprType type(); @Override T accept(ExpressionNodeVisitor<T, C> visitor, C context); @Override String toString();  }
@Test public void resolve_type() { assertEquals(ExprCoreType.INTEGER, DSL.ref("integer_value", INTEGER).type()); assertEquals(ExprCoreType.LONG, DSL.ref("long_value", LONG).type()); assertEquals(ExprCoreType.FLOAT, DSL.ref("float_value", FLOAT).type()); assertEquals(ExprCoreType.DOUBLE, DSL.ref("double_value", DOUBLE).type()); assertEquals(ExprCoreType.BOOLEAN, DSL.ref("boolean_value", BOOLEAN).type()); assertEquals(ExprCoreType.STRING, DSL.ref("string_value", STRING).type()); assertEquals(ExprCoreType.STRUCT, DSL.ref("struct_value", STRUCT).type()); assertEquals(ExprCoreType.ARRAY, DSL.ref("array_value", ARRAY).type()); }