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);