comparison 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
comparison
equal deleted inserted replaced
20942:a2e295c6cf7c 20943:810d466073f0
256 CodeTree init = null; 256 CodeTree init = null;
257 if (f instanceof CodeVariableElement) { 257 if (f instanceof CodeVariableElement) {
258 init = ((CodeVariableElement) f).getInit(); 258 init = ((CodeVariableElement) f).getInit();
259 } 259 }
260 260
261 if (parent.getKind() == ElementKind.ENUM && f.getModifiers().contains(Modifier.STATIC)) { 261 if (parent != null && parent.getKind() == ElementKind.ENUM && f.getModifiers().contains(Modifier.STATIC)) {
262 write(f.getSimpleName()); 262 write(f.getSimpleName());
263 if (init != null) { 263 if (init != null) {
264 write("("); 264 write("(");
265 visitTree(init, p, f); 265 visitTree(init, p, f);
266 write(")"); 266 write(")");
267 } 267 }
268 } else { 268 } else {
269 Element enclosing = f.getEnclosingElement();
270 writeModifiers(f.getModifiers(), true); 269 writeModifiers(f.getModifiers(), true);
271 270
272 boolean varArgs = false; 271 boolean varArgs = false;
273 if (enclosing.getKind() == ElementKind.METHOD) { 272 if (parent != null && parent.getKind() == ElementKind.METHOD) {
274 ExecutableElement method = (ExecutableElement) enclosing; 273 ExecutableElement method = (ExecutableElement) parent;
275 if (method.isVarArgs() && method.getParameters().indexOf(f) == method.getParameters().size() - 1) { 274 if (method.isVarArgs() && method.getParameters().indexOf(f) == method.getParameters().size() - 1) {
276 varArgs = true; 275 varArgs = true;
277 } 276 }
278 } 277 }
279 278