Mercurial > hg > truffle
comparison graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/codewriter/AbstractCodeWriter.java @ 13271:2b9fcffd6f36
Truffle-DSL: added support for generating execute methods with java varargs.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Sun, 01 Dec 2013 18:18:33 +0100 |
parents | 380e0248f873 |
children | 807ad2134a6b |
comparison
equal
deleted
inserted
replaced
13203:401e1473c546 | 13271:2b9fcffd6f36 |
---|---|
272 init.acceptCodeElementScanner(this, p); | 272 init.acceptCodeElementScanner(this, p); |
273 write(")"); | 273 write(")"); |
274 } | 274 } |
275 } | 275 } |
276 } else { | 276 } else { |
277 Element enclosing = f.getEnclosingElement(); | |
277 writeModifiers(f.getModifiers()); | 278 writeModifiers(f.getModifiers()); |
278 write(useImport(f, f.asType())); | 279 |
279 | 280 boolean varArgs = false; |
280 if (f.getEnclosingElement().getKind() == ElementKind.METHOD) { | 281 if (enclosing.getKind() == ElementKind.METHOD) { |
281 ExecutableElement method = (ExecutableElement) f.getEnclosingElement(); | 282 ExecutableElement method = (ExecutableElement) enclosing; |
282 if (method.isVarArgs() && method.getParameters().indexOf(f) == method.getParameters().size() - 1) { | 283 if (method.isVarArgs() && method.getParameters().indexOf(f) == method.getParameters().size() - 1) { |
283 write("..."); | 284 varArgs = true; |
284 } | 285 } |
286 } | |
287 | |
288 TypeMirror varType = f.asType(); | |
289 if (varArgs) { | |
290 if (varType.getKind() == TypeKind.ARRAY) { | |
291 varType = ((ArrayType) varType).getComponentType(); | |
292 } | |
293 write(useImport(f, varType)); | |
294 write("..."); | |
295 } else { | |
296 write(useImport(f, varType)); | |
285 } | 297 } |
286 | 298 |
287 write(" "); | 299 write(" "); |
288 write(f.getSimpleName()); | 300 write(f.getSimpleName()); |
289 if (init != null) { | 301 if (init != null) { |