Mercurial > hg > graal-jvmci-8
comparison graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/TypeSystemParser.java @ 18783:7d67a33e1bbb
Truffle-DSL: made type name verification more robust. Added some tests. (GRAAL-468 #resolve)
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Mon, 05 Jan 2015 20:23:22 +0100 |
parents | 3ea386a1036f |
children | 18c0f02fa4d2 |
comparison
equal
deleted
inserted
replaced
18782:3ea386a1036f | 18783:7d67a33e1bbb |
---|---|
278 typeSystem.addError("Method starting with the pattern expect${typeName} must not be declared manually."); | 278 typeSystem.addError("Method starting with the pattern expect${typeName} must not be declared manually."); |
279 return false; | 279 return false; |
280 } | 280 } |
281 | 281 |
282 private static void verifyNamesUnique(TypeSystemData typeSystem) { | 282 private static void verifyNamesUnique(TypeSystemData typeSystem) { |
283 List<TypeData> types = typeSystem.getTypes(); | 283 Set<String> usedNames = new HashSet<>(); |
284 for (int i = 0; i < types.size(); i++) { | 284 for (TypeData type : typeSystem.getTypes()) { |
285 for (int j = i + 1; j < types.size(); j++) { | 285 String boxedName = ElementUtils.getSimpleName(type.getBoxedType()); |
286 String name1 = ElementUtils.getSimpleName(types.get(i).getBoxedType()); | 286 String primitiveName = ElementUtils.getSimpleName(type.getPrimitiveType()); |
287 String name2 = ElementUtils.getSimpleName(types.get(j).getBoxedType()); | 287 if (usedNames.contains(boxedName)) { |
288 if (name1.equalsIgnoreCase(name2)) { | 288 typeSystem.addError("Two types result in the same boxed name: %s.", boxedName); |
289 typeSystem.addError("Two types result in the same name: %s, %s.", name1, name2); | 289 } else if (usedNames.contains(primitiveName)) { |
290 } | 290 typeSystem.addError("Two types result in the same primitive name: %s.", primitiveName); |
291 } | 291 } |
292 usedNames.add(boxedName); | |
293 usedNames.add(primitiveName); | |
292 } | 294 } |
293 } | 295 } |
294 } | 296 } |