diff graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/TypeCastParser.java @ 20938:18c0f02fa4d2

Truffle-DSL: make type systems optional.
author Christian Humer <christian.humer@gmail.com>
date Tue, 14 Apr 2015 15:12:48 +0200
parents 3ea386a1036f
children
line wrap: on
line diff
--- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/TypeCastParser.java	Tue Apr 14 22:12:03 2015 +0200
+++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/TypeCastParser.java	Tue Apr 14 15:12:48 2015 +0200
@@ -41,15 +41,17 @@
     @Override
     public MethodSpec createSpecification(ExecutableElement method, AnnotationMirror mirror) {
         TypeMirror targetTypeMirror = ElementUtils.getAnnotationValue(TypeMirror.class, mirror, "value");
-        MethodSpec spec = new MethodSpec(new ParameterSpec("returnType", targetTypeMirror));
-        spec.addRequired(new ParameterSpec("value", getTypeSystem().getGenericType()));
+        ParameterSpec returnTypeSpec = new ParameterSpec("returnType", targetTypeMirror);
+        returnTypeSpec.setAllowSubclasses(false);
+        MethodSpec spec = new MethodSpec(returnTypeSpec);
+        spec.addRequired(new ParameterSpec("value", getContext().getType(Object.class)));
         return spec;
     }
 
     @Override
     public TypeCastData create(TemplateMethod method, boolean invalid) {
-        TypeData targetType = resolveCastOrCheck(method);
-        TypeData sourceType = getTypeSystem().getGenericTypeData();
+        TypeMirror targetType = resolveCastOrCheck(method);
+        TypeMirror sourceType = getContext().getType(Object.class);
         return new TypeCastData(method, sourceType, targetType);
     }