Mercurial > hg > graal-jvmci-8
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() { |