comparison graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/NodeParser.java @ 18811:d2ec5f50dcd0

Truffle-DSL: fixed name clashes were still possible on a OS with case insensitive file system.
author Christian Humer <christian.humer@gmail.com>
date Sat, 10 Jan 2015 13:44:47 +0100
parents b9cf6f3150ea
children ae81dd154fb6
comparison
equal deleted inserted replaced
18810:aaff308f290c 18811:d2ec5f50dcd0
937 937
938 private static boolean renameDuplicateIds(List<String> signatures) { 938 private static boolean renameDuplicateIds(List<String> signatures) {
939 boolean changed = false; 939 boolean changed = false;
940 Map<String, Integer> counts = new HashMap<>(); 940 Map<String, Integer> counts = new HashMap<>();
941 for (String s1 : signatures) { 941 for (String s1 : signatures) {
942 Integer count = counts.get(s1); 942 Integer count = counts.get(s1.toLowerCase());
943 if (count == null) { 943 if (count == null) {
944 count = 0; 944 count = 0;
945 } 945 }
946 count++; 946 count++;
947 counts.put(s1, count); 947 counts.put(s1.toLowerCase(), count);
948 } 948 }
949 949
950 for (String s : counts.keySet()) { 950 for (String s : counts.keySet()) {
951 int count = counts.get(s); 951 int count = counts.get(s);
952 if (count > 1) { 952 if (count > 1) {
953 changed = true; 953 changed = true;
954 int number = 0; 954 int number = 0;
955 for (ListIterator<String> iterator = signatures.listIterator(); iterator.hasNext();) { 955 for (ListIterator<String> iterator = signatures.listIterator(); iterator.hasNext();) {
956 String s2 = iterator.next(); 956 String s2 = iterator.next();
957 if (s.equals(s2)) { 957 if (s.equalsIgnoreCase(s2)) {
958 iterator.set(s2 + number); 958 iterator.set(s2 + number);
959 number++; 959 number++;
960 } 960 }
961 } 961 }
962 } 962 }