Mercurial > hg > graal-jvmci-8
comparison graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/node/ExecutableTypeMethodParser.java @ 8593:54e227b2e199
Refactored ParameterSpec constructors.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Mon, 01 Apr 2013 12:14:54 +0200 |
parents | a80bf36c6a1e |
children | ce6e8672f798 |
comparison
equal
deleted
inserted
replaced
8592:a80bf36c6a1e | 8593:54e227b2e199 |
---|---|
28 import javax.lang.model.element.*; | 28 import javax.lang.model.element.*; |
29 import javax.lang.model.type.*; | 29 import javax.lang.model.type.*; |
30 | 30 |
31 import com.oracle.truffle.codegen.processor.*; | 31 import com.oracle.truffle.codegen.processor.*; |
32 import com.oracle.truffle.codegen.processor.template.*; | 32 import com.oracle.truffle.codegen.processor.template.*; |
33 import com.oracle.truffle.codegen.processor.template.ParameterSpec.Cardinality; | |
34 import com.oracle.truffle.codegen.processor.typesystem.*; | 33 import com.oracle.truffle.codegen.processor.typesystem.*; |
35 | 34 |
36 public class ExecutableTypeMethodParser extends MethodParser<ExecutableTypeData> { | 35 public class ExecutableTypeMethodParser extends MethodParser<ExecutableTypeData> { |
37 | 36 |
38 public ExecutableTypeMethodParser(ProcessorContext context, NodeData node) { | 37 public ExecutableTypeMethodParser(ProcessorContext context, NodeData node) { |
45 public MethodSpec createSpecification(ExecutableElement method, AnnotationMirror mirror) { | 44 public MethodSpec createSpecification(ExecutableElement method, AnnotationMirror mirror) { |
46 List<TypeMirror> types = new ArrayList<>(); | 45 List<TypeMirror> types = new ArrayList<>(); |
47 types.addAll(getNode().getTypeSystem().getPrimitiveTypeMirrors()); | 46 types.addAll(getNode().getTypeSystem().getPrimitiveTypeMirrors()); |
48 types.add(getContext().getType(void.class)); | 47 types.add(getContext().getType(void.class)); |
49 | 48 |
50 ParameterSpec returnTypeSpec = new ParameterSpec("executedValue", types, false, Cardinality.ONE, true); | 49 ParameterSpec returnTypeSpec = new ParameterSpec("executedValue", types); |
50 returnTypeSpec.setSignature(true); | |
51 | 51 |
52 List<ParameterSpec> parameters = new ArrayList<>(); | 52 List<ParameterSpec> parameters = new ArrayList<>(); |
53 parameters.add(new ParameterSpec("frame", getContext().getTruffleTypes().getFrame(), true, false)); | 53 ParameterSpec frameSpec = new ParameterSpec("frame", getContext().getTruffleTypes().getFrame()); |
54 frameSpec.setOptional(true); | |
55 parameters.add(frameSpec); | |
54 return new MethodSpec(new ArrayList<TypeMirror>(), returnTypeSpec, parameters); | 56 return new MethodSpec(new ArrayList<TypeMirror>(), returnTypeSpec, parameters); |
55 } | 57 } |
56 | 58 |
57 @Override | 59 @Override |
58 public final boolean isParsable(ExecutableElement method) { | 60 public final boolean isParsable(ExecutableElement method) { |