Mercurial > hg > graal-compiler
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; |