diff graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/template/ActualParameter.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 5eeade940236
children f43eb2f1bbbc
line wrap: on
line diff
--- a/graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/template/ActualParameter.java	Mon Apr 08 18:28:41 2013 +0200
+++ b/graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/template/ActualParameter.java	Mon Apr 15 18:50:19 2013 +0200
@@ -29,15 +29,17 @@
 public class ActualParameter {
 
     private final ParameterSpec specification;
-    private final TypeMirror actualType;
+    private TypeData typeSystemType;
     private TemplateMethod method;
     private final String localName;
     private final int index;
     private final boolean implicit;
+    private final TypeMirror type;
 
     public ActualParameter(ParameterSpec specification, TypeMirror actualType, int index, boolean implicit) {
         this.specification = specification;
-        this.actualType = actualType;
+        this.type = actualType;
+        this.typeSystemType = null;
 
         this.index = index;
         this.implicit = implicit;
@@ -49,7 +51,12 @@
         this.localName = valueName;
     }
 
-    public ActualParameter(ActualParameter parameter, TypeMirror otherType) {
+    public ActualParameter(ParameterSpec specification, TypeData actualType, int index, boolean implicit) {
+        this(specification, actualType.getPrimitiveType(), index, implicit);
+        this.typeSystemType = actualType;
+    }
+
+    public ActualParameter(ActualParameter parameter, TypeData otherType) {
         this(parameter.specification, otherType, parameter.index, parameter.implicit);
     }
 
@@ -77,12 +84,12 @@
         return method;
     }
 
-    public TypeMirror getActualType() {
-        return actualType;
+    public TypeMirror getType() {
+        return type;
     }
 
-    public TypeData getActualTypeData(TypeSystemData typeSystem) {
-        return typeSystem.findTypeData(actualType);
+    public TypeData getTypeSystemType() {
+        return typeSystemType;
     }
 
     public ActualParameter getPreviousParameter() {