Mercurial > hg > graal-compiler
comparison graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/node/NodeCodeGenerator.java @ 13272:0b8335a4fb13
Truffle-DSL: more testing for generating execute methods with varargs.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Mon, 02 Dec 2013 10:45:37 +0100 |
parents | 2b9fcffd6f36 |
children | bd5c996b5d25 |
comparison
equal
deleted
inserted
replaced
13271:2b9fcffd6f36 | 13272:0b8335a4fb13 |
---|---|
2875 | 2875 |
2876 builder.startAssert().string(name).string(" != null").end(); | 2876 builder.startAssert().string(name).string(" != null").end(); |
2877 builder.startAssert().string(name).string(".length == ").string(String.valueOf(varArgCount)).end(); | 2877 builder.startAssert().string(name).string(".length == ").string(String.valueOf(varArgCount)).end(); |
2878 if (varArgCount > 0) { | 2878 if (varArgCount > 0) { |
2879 List<ActualParameter> varArgsParameter = execType.getParameters().subList(i, execType.getParameters().size()); | 2879 List<ActualParameter> varArgsParameter = execType.getParameters().subList(i, execType.getParameters().size()); |
2880 | |
2881 for (ActualParameter varArg : varArgsParameter) { | 2880 for (ActualParameter varArg : varArgsParameter) { |
2881 if (varArgCount <= 0) { | |
2882 break; | |
2883 } | |
2882 TypeMirror type = baseVarArgs.getType(); | 2884 TypeMirror type = baseVarArgs.getType(); |
2883 if (type.getKind() == TypeKind.ARRAY) { | 2885 if (type.getKind() == TypeKind.ARRAY) { |
2884 type = ((ArrayType) type).getComponentType(); | 2886 type = ((ArrayType) type).getComponentType(); |
2885 } | 2887 } |
2886 builder.declaration(type, valueNameEvaluated(varArg), name + "[" + varArg.getVarArgsIndex() + "]"); | 2888 builder.declaration(type, valueNameEvaluated(varArg), name + "[" + varArg.getVarArgsIndex() + "]"); |
2889 varArgCount--; | |
2887 } | 2890 } |
2888 } | 2891 } |
2889 } | 2892 } |
2890 var.setName(name); | 2893 var.setName(name); |
2891 method.getParameters().set(i, var); | 2894 method.getParameters().set(i, var); |