public void testExpressionReturnType() {
    assertEquals(String.class, expressionReturnType("Field1"));
    assertEquals(String.class, expressionReturnType("Field1 + FIELD2"));
    assertEquals(String.class, expressionReturnType("Field1 + 3"));
    assertEquals(String.class, expressionReturnType("Field1 + 3 + FIELD2"));
    assertEquals(int.class, expressionReturnType("intField"));
    assertEquals(Integer.class, expressionReturnType("intField = 3"));
    assertEquals(Boolean.class, expressionReturnType("intField == 3"));
    assertEquals(Boolean.class, expressionReturnType("intField == \"3\""));
    assertEquals(Boolean.class, expressionReturnType("intField == 1 || Field1 == \"xxx\""));
    assertEquals(Boolean.class, expressionReturnType("FIELD2 == \"yyy\" && intField == 1 + 2 || Field1 == \"xxx\""));
  }