# HG changeset patch # User Christian Humer # Date 1361210319 -3600 # Node ID 89d316f8f33e850265097ddf42f314ca368dddeb # Parent c0c5286d88df25ac62da48e4c7ee14e38b62359f# Parent 60c010b8e1c1cf3d41a64ba1b7696b1302f16577 Merge diff -r 60c010b8e1c1 -r 89d316f8f33e graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/ast/CodeElement.java --- a/graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/ast/CodeElement.java Mon Feb 18 17:20:57 2013 +0100 +++ b/graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/ast/CodeElement.java Mon Feb 18 18:58:39 2013 +0100 @@ -103,6 +103,18 @@ return annotations; } + /* Support JDK8 langtools. */ + @SuppressWarnings("unused") + public A[] getAnnotationsByType(Class annotationType) { + throw new UnsupportedOperationException(); + } + + /* Support for some JDK8 builds. (remove after jdk8 is released) */ + @SuppressWarnings("unused") + public A[] getAnnotations(Class annotationType) { + throw new UnsupportedOperationException(); + } + @Override public A getAnnotation(Class annotationType) { throw new UnsupportedOperationException(); diff -r 60c010b8e1c1 -r 89d316f8f33e graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/ast/CodeExecutableElement.java --- a/graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/ast/CodeExecutableElement.java Mon Feb 18 17:20:57 2013 +0100 +++ b/graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/ast/CodeExecutableElement.java Mon Feb 18 18:58:39 2013 +0100 @@ -59,6 +59,7 @@ } } + /* Support JDK8 langtools. */ public boolean isDefault() { return false; } diff -r 60c010b8e1c1 -r 89d316f8f33e graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/node/NodeCodeGenerator.java --- a/graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/node/NodeCodeGenerator.java Mon Feb 18 17:20:57 2013 +0100 +++ b/graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/node/NodeCodeGenerator.java Mon Feb 18 18:58:39 2013 +0100 @@ -186,18 +186,20 @@ TypeSystemData typeSystem = specialization.getNode().getTypeSystem(); // Implict guards based on method signature String andOperator = prefix; - for (NodeFieldData field : specialization.getNode().getFields()) { - ActualParameter param = specialization.findParameter(field.getName()); - TypeData type = param.getActualTypeData(typeSystem); - if (type == null || type.isGeneric()) { - continue; + if (needsCast) { + for (NodeFieldData field : specialization.getNode().getFields()) { + ActualParameter param = specialization.findParameter(field.getName()); + TypeData type = param.getActualTypeData(typeSystem); + if (type == null || type.isGeneric()) { + continue; + } + + body.string(andOperator); + startCallTypeSystemMethod(context, body, specialization.getNode(), TypeSystemCodeGenerator.isTypeMethodName(type)); + body.string(valueName(specialization, param)); + body.end().end(); // call + andOperator = " && "; } - - body.string(andOperator); - startCallTypeSystemMethod(context, body, specialization.getNode(), TypeSystemCodeGenerator.isTypeMethodName(type)); - body.string(valueName(specialization, param)); - body.end().end(); // call - andOperator = " && "; } if (specialization.getGuards().length > 0) {