Mercurial > hg > truffle
comparison graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/TypeSystemParser.java @ 16817:0370880ac9ce
Truffle-DSL: better caching for type checks.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Wed, 13 Aug 2014 18:06:26 +0200 |
parents | e6d15134ca86 |
children | 93e061157811 |
comparison
equal
deleted
inserted
replaced
16816:8d374faacb7e | 16817:0370880ac9ce |
---|---|
65 } | 65 } |
66 if (typeSystem.hasErrors()) { | 66 if (typeSystem.hasErrors()) { |
67 return typeSystem; | 67 return typeSystem; |
68 } | 68 } |
69 | 69 |
70 typeSystem.setTypes(parseTypes(typeSystem)); | 70 List<TypeData> types = parseTypes(typeSystem); |
71 | |
72 TypeMirror genericType = context.getType(Object.class); | |
73 TypeData voidType = new TypeData(typeSystem, types.size(), null, context.getType(void.class), context.getType(Void.class)); | |
74 types.add(voidType); | |
75 | |
76 typeSystem.setTypes(types); | |
71 if (typeSystem.hasErrors()) { | 77 if (typeSystem.hasErrors()) { |
72 return typeSystem; | 78 return typeSystem; |
73 } | 79 } |
74 | |
75 TypeMirror genericType = context.getType(Object.class); | |
76 TypeData voidType = new TypeData(typeSystem, typeSystem.getTypes().size(), null, context.getType(void.class), context.getType(Void.class)); | |
77 | 80 |
78 typeSystem.setGenericType(genericType); | 81 typeSystem.setGenericType(genericType); |
79 typeSystem.setVoidType(voidType); | 82 typeSystem.setVoidType(voidType); |
80 | 83 |
81 verifyExclusiveMethodAnnotation(typeSystem, TypeCast.class, TypeCheck.class); | 84 verifyExclusiveMethodAnnotation(typeSystem, TypeCast.class, TypeCheck.class); |
196 } | 199 } |
197 | 200 |
198 verifyTypeOrder(types); | 201 verifyTypeOrder(types); |
199 | 202 |
200 types.add(new TypeData(typeSystem, index, annotationValue, objectType, objectType)); | 203 types.add(new TypeData(typeSystem, index, annotationValue, objectType, objectType)); |
201 | |
202 return types; | 204 return types; |
203 } | 205 } |
204 | 206 |
205 private static void verifyTypeOrder(List<TypeData> types) { | 207 private static void verifyTypeOrder(List<TypeData> types) { |
206 Map<String, List<String>> invalidTypes = new HashMap<>(); | 208 Map<String, List<String>> invalidTypes = new HashMap<>(); |