Mercurial > hg > truffle
changeset 7803:89d316f8f33e
Merge
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Mon, 18 Feb 2013 18:58:39 +0100 |
parents | c0c5286d88df (diff) 60c010b8e1c1 (current diff) |
children | 447f9ba1962b 4969921f57b7 |
files | |
diffstat | 3 files changed, 26 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- 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 extends Annotation> A[] getAnnotationsByType(Class<A> annotationType) { + throw new UnsupportedOperationException(); + } + + /* Support for some JDK8 builds. (remove after jdk8 is released) */ + @SuppressWarnings("unused") + public <A extends Annotation> A[] getAnnotations(Class<A> annotationType) { + throw new UnsupportedOperationException(); + } + @Override public <A extends Annotation> A getAnnotation(Class<A> annotationType) { throw new UnsupportedOperationException();
--- 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; }
--- 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) {