Mercurial > hg > truffle
changeset 13274:e4862151eefd
Truffle-DSL: fixed varArgs parsing is only used for executable methods. parsing varargs specialization methods must remain untouched for now.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Mon, 02 Dec 2013 13:11:50 +0100 |
parents | 17b116b80aba |
children | bd5c996b5d25 |
files | graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/node/ExecutableTypeMethodParser.java graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/template/TemplateMethodParser.java |
diffstat | 2 files changed, 11 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- 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
--- 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<ActualParameter> parameters = parseParameters(methodSpecification, parameterTypes, method.isVarArgs()); + List<ActualParameter> parameters = parseParameters(methodSpecification, parameterTypes, isUseVarArgs() && method.isVarArgs()); if (parameters == null) { if (isEmitErrors()) { E invalidMethod = create(new TemplateMethod(id, template, methodSpecification, method, annotation, returnTypeMirror, Collections.<ActualParameter> emptyList()), true);