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