# HG changeset patch # User Christian Humer # Date 1385986310 -3600 # Node ID e4862151eefd3dcf568fdc15cc341b66db0dbf62 # Parent 17b116b80aba86d434f4705315af45f8eee5153d Truffle-DSL: fixed varArgs parsing is only used for executable methods. parsing varargs specialization methods must remain untouched for now. diff -r 17b116b80aba -r e4862151eefd graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/node/ExecutableTypeMethodParser.java --- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/node/ExecutableTypeMethodParser.java Mon Dec 02 11:48:40 2013 +0100 +++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/node/ExecutableTypeMethodParser.java Mon Dec 02 13:11:50 2013 +0100 @@ -39,6 +39,7 @@ super(context, node); setEmitErrors(false); setParseNullOnError(false); + setUseVarArgs(true); } @Override diff -r 17b116b80aba -r e4862151eefd graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/template/TemplateMethodParser.java --- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/template/TemplateMethodParser.java Mon Dec 02 11:48:40 2013 +0100 +++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/template/TemplateMethodParser.java Mon Dec 02 13:11:50 2013 +0100 @@ -44,12 +44,21 @@ private boolean emitErrors = true; private boolean parseNullOnError = false; + private boolean useVarArgs = false; public TemplateMethodParser(ProcessorContext context, T template) { this.template = template; this.context = context; } + protected void setUseVarArgs(boolean useVarArgs) { + this.useVarArgs = useVarArgs; + } + + public boolean isUseVarArgs() { + return useVarArgs; + } + public boolean isEmitErrors() { return emitErrors; } @@ -161,7 +170,7 @@ parameterTypes.add(var.asType()); } - List parameters = parseParameters(methodSpecification, parameterTypes, method.isVarArgs()); + List parameters = parseParameters(methodSpecification, parameterTypes, isUseVarArgs() && method.isVarArgs()); if (parameters == null) { if (isEmitErrors()) { E invalidMethod = create(new TemplateMethod(id, template, methodSpecification, method, annotation, returnTypeMirror, Collections. emptyList()), true);