comparison 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
comparison
equal deleted inserted replaced
20937:37ea76052733 20938:18c0f02fa4d2
39 } 39 }
40 40
41 @Override 41 @Override
42 public MethodSpec createSpecification(ExecutableElement method, AnnotationMirror mirror) { 42 public MethodSpec createSpecification(ExecutableElement method, AnnotationMirror mirror) {
43 TypeMirror targetTypeMirror = ElementUtils.getAnnotationValue(TypeMirror.class, mirror, "value"); 43 TypeMirror targetTypeMirror = ElementUtils.getAnnotationValue(TypeMirror.class, mirror, "value");
44 MethodSpec spec = new MethodSpec(new ParameterSpec("returnType", targetTypeMirror)); 44 ParameterSpec returnTypeSpec = new ParameterSpec("returnType", targetTypeMirror);
45 spec.addRequired(new ParameterSpec("value", getTypeSystem().getGenericType())); 45 returnTypeSpec.setAllowSubclasses(false);
46 MethodSpec spec = new MethodSpec(returnTypeSpec);
47 spec.addRequired(new ParameterSpec("value", getContext().getType(Object.class)));
46 return spec; 48 return spec;
47 } 49 }
48 50
49 @Override 51 @Override
50 public TypeCastData create(TemplateMethod method, boolean invalid) { 52 public TypeCastData create(TemplateMethod method, boolean invalid) {
51 TypeData targetType = resolveCastOrCheck(method); 53 TypeMirror targetType = resolveCastOrCheck(method);
52 TypeData sourceType = getTypeSystem().getGenericTypeData(); 54 TypeMirror sourceType = getContext().getType(Object.class);
53 return new TypeCastData(method, sourceType, targetType); 55 return new TypeCastData(method, sourceType, targetType);
54 } 56 }
55 57
56 @Override 58 @Override
57 public Class<? extends Annotation> getAnnotationType() { 59 public Class<? extends Annotation> getAnnotationType() {