Mercurial > hg > truffle
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); }