Mercurial > hg > graal-jvmci-8
comparison graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/node/MethodParser.java @ 8592:a80bf36c6a1e
Refactor to shared template method signature comparison.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Mon, 01 Apr 2013 11:52:38 +0200 |
parents | 89006c76f737 |
children | 54e227b2e199 |
comparison
equal
deleted
inserted
replaced
8591:5c58da5b8233 | 8592:a80bf36c6a1e |
---|---|
41 public NodeData getNode() { | 41 public NodeData getNode() { |
42 return template; | 42 return template; |
43 } | 43 } |
44 | 44 |
45 protected ParameterSpec createValueParameterSpec(String valueName, NodeData nodeData, boolean optional) { | 45 protected ParameterSpec createValueParameterSpec(String valueName, NodeData nodeData, boolean optional) { |
46 return new ParameterSpec(valueName, nodeData, optional, Cardinality.ONE); | 46 return new ParameterSpec(valueName, nodeData, optional, Cardinality.ONE, true); |
47 } | 47 } |
48 | 48 |
49 protected ParameterSpec createReturnParameterSpec() { | 49 protected ParameterSpec createReturnParameterSpec() { |
50 return createValueParameterSpec("operation", getNode(), false); | 50 return createValueParameterSpec("operation", getNode(), false); |
51 } | 51 } |
58 @SuppressWarnings("unused") | 58 @SuppressWarnings("unused") |
59 protected final MethodSpec createDefaultMethodSpec(ExecutableElement method, AnnotationMirror mirror, String shortCircuitName) { | 59 protected final MethodSpec createDefaultMethodSpec(ExecutableElement method, AnnotationMirror mirror, String shortCircuitName) { |
60 List<ParameterSpec> defaultParameters = new ArrayList<>(); | 60 List<ParameterSpec> defaultParameters = new ArrayList<>(); |
61 | 61 |
62 if (getNode().supportsFrame()) { | 62 if (getNode().supportsFrame()) { |
63 defaultParameters.add(new ParameterSpec("frame", getContext().getTruffleTypes().getFrame(), true)); | 63 defaultParameters.add(new ParameterSpec("frame", getContext().getTruffleTypes().getFrame(), true, false)); |
64 } | 64 } |
65 | 65 |
66 TypeMirror declaredType = Utils.findNearestEnclosingType(method).asType(); | 66 TypeMirror declaredType = Utils.findNearestEnclosingType(method).asType(); |
67 | 67 |
68 List<TypeMirror> prefixTypes = new ArrayList<>(); | 68 List<TypeMirror> prefixTypes = new ArrayList<>(); |
71 prefixTypes.add(getNode().getTemplateType().asType()); | 71 prefixTypes.add(getNode().getTemplateType().asType()); |
72 } | 72 } |
73 | 73 |
74 for (NodeFieldData field : getNode().getFields()) { | 74 for (NodeFieldData field : getNode().getFields()) { |
75 if (field.getKind() == FieldKind.FIELD) { | 75 if (field.getKind() == FieldKind.FIELD) { |
76 ParameterSpec spec = new ParameterSpec(field.getName(), field.getType(), true); | 76 ParameterSpec spec = new ParameterSpec(field.getName(), field.getType(), true, false); |
77 spec.setLocal(true); | 77 spec.setLocal(true); |
78 defaultParameters.add(spec); | 78 defaultParameters.add(spec); |
79 } | 79 } |
80 } | 80 } |
81 | 81 |
95 String valueName = field.getName(); | 95 String valueName = field.getName(); |
96 if (shortCircuitName != null && valueName.equals(shortCircuitName)) { | 96 if (shortCircuitName != null && valueName.equals(shortCircuitName)) { |
97 break; | 97 break; |
98 } | 98 } |
99 | 99 |
100 defaultParameters.add(new ParameterSpec(shortCircuitValueName(valueName), getContext().getType(boolean.class), false)); | 100 defaultParameters.add(new ParameterSpec(shortCircuitValueName(valueName), getContext().getType(boolean.class), false, false)); |
101 defaultParameters.add(createValueParameterSpec(valueName, field.getNodeData(), false)); | 101 defaultParameters.add(createValueParameterSpec(valueName, field.getNodeData(), false)); |
102 } else { | 102 } else { |
103 assert false; | 103 assert false; |
104 } | 104 } |
105 } | 105 } |