comparison graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/typesystem/GuardParser.java @ 9217:61ba6fc21ba4

Sourcegen can now generate execute methods of signature execute(frame, evaluatedValue).
author Christian Humer <christian.humer@gmail.com>
date Mon, 15 Apr 2013 18:50:19 +0200
parents 8a1115c92271
children
comparison
equal deleted inserted replaced
9216:8b9ea2f5c36e 9217:61ba6fc21ba4
44 setParseNullOnError(false); 44 setParseNullOnError(false);
45 } 45 }
46 46
47 @Override 47 @Override
48 public MethodSpec createSpecification(ExecutableElement method, AnnotationMirror mirror) { 48 public MethodSpec createSpecification(ExecutableElement method, AnnotationMirror mirror) {
49 MethodSpec spec = createDefaultMethodSpec(method, mirror, null); 49 MethodSpec spec = createDefaultMethodSpec(method, mirror, true, null);
50 spec.setVariableRequiredArguments(true); 50 spec.setVariableRequiredArguments(true);
51 spec.getRequired().clear(); 51 spec.getRequired().clear();
52 52
53 for (ActualParameter parameter : specialization.getRequiredParameters()) { 53 for (ActualParameter parameter : specialization.getRequiredParameters()) {
54 ParameterSpec paramSpec = new ParameterSpec(parameter.getLocalName(), parameter.getActualType(), getNode().getTypeSystem().getGenericType()); 54 ParameterSpec paramSpec = new ParameterSpec(parameter.getLocalName(), parameter.getType(), getNode().getTypeSystem().getGenericType());
55 paramSpec.setSignature(true); 55 paramSpec.setSignature(true);
56 spec.addRequired(paramSpec); 56 spec.addRequired(paramSpec);
57 } 57 }
58 58
59 return spec; 59 return spec;
80 for (ActualParameter parameter : guard.getParameters()) { 80 for (ActualParameter parameter : guard.getParameters()) {
81 ActualParameter specializationParameter = specialization.findParameter(parameter.getSpecification().getName()); 81 ActualParameter specializationParameter = specialization.findParameter(parameter.getSpecification().getName());
82 if (specializationParameter == null) { 82 if (specializationParameter == null) {
83 newParameters.add(parameter); 83 newParameters.add(parameter);
84 } else { 84 } else {
85 newParameters.add(new ActualParameter(specializationParameter.getSpecification(), parameter.getActualType(), specializationParameter.getIndex(), parameter.isImplicit())); 85 newParameters.add(new ActualParameter(specializationParameter.getSpecification(), parameter.getTypeSystemType(), specializationParameter.getIndex(), parameter.isImplicit()));
86 } 86 }
87 } 87 }
88 guard.setParameters(newParameters); 88 guard.setParameters(newParameters);
89 89
90 return guard; 90 return guard;