diff graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/transform/AbstractCodeWriter.java @ 20943:810d466073f0

Truffle-DSL: fixed common supertype was always Object if generic child types contained void.
author Christian Humer <christian.humer@gmail.com>
date Tue, 14 Apr 2015 19:23:32 +0200
parents cd0ae2f782c9
children
line wrap: on
line diff
--- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/transform/AbstractCodeWriter.java	Tue Apr 14 19:23:32 2015 +0200
+++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/transform/AbstractCodeWriter.java	Tue Apr 14 19:23:32 2015 +0200
@@ -258,7 +258,7 @@
             init = ((CodeVariableElement) f).getInit();
         }
 
-        if (parent.getKind() == ElementKind.ENUM && f.getModifiers().contains(Modifier.STATIC)) {
+        if (parent != null && parent.getKind() == ElementKind.ENUM && f.getModifiers().contains(Modifier.STATIC)) {
             write(f.getSimpleName());
             if (init != null) {
                 write("(");
@@ -266,12 +266,11 @@
                 write(")");
             }
         } else {
-            Element enclosing = f.getEnclosingElement();
             writeModifiers(f.getModifiers(), true);
 
             boolean varArgs = false;
-            if (enclosing.getKind() == ElementKind.METHOD) {
-                ExecutableElement method = (ExecutableElement) enclosing;
+            if (parent != null && parent.getKind() == ElementKind.METHOD) {
+                ExecutableElement method = (ExecutableElement) parent;
                 if (method.isVarArgs() && method.getParameters().indexOf(f) == method.getParameters().size() - 1) {
                     varArgs = true;
                 }