comparison graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/ElementUtils.java @ 20998:8e5f9310f3aa

Truffle-DSL: fixed wrong order for implicit casts.
author Christian Humer <christian.humer@gmail.com>
date Thu, 16 Apr 2015 21:29:56 +0200
parents 6361fa2e3321
children
comparison
equal deleted inserted replaced
20997:370dbf93f0ca 20998:8e5f9310f3aa
1170 } else { 1170 } else {
1171 throw new AssertionError("unsupported element type"); 1171 throw new AssertionError("unsupported element type");
1172 } 1172 }
1173 } 1173 }
1174 1174
1175 public static List<TypeMirror> sortTypes(List<TypeMirror> list) { 1175 public static List<TypeMirror> sortTypes(List<TypeMirror> list, final boolean reverse) {
1176 Collections.sort(list, new Comparator<TypeMirror>() { 1176 Collections.sort(list, new Comparator<TypeMirror>() {
1177 public int compare(TypeMirror o1, TypeMirror o2) { 1177 public int compare(TypeMirror o1, TypeMirror o2) {
1178 return compareType(o1, o2); 1178 if (reverse) {
1179 return compareType(o2, o1);
1180 } else {
1181 return compareType(o1, o2);
1182 }
1179 } 1183 }
1180 }); 1184 });
1181 return list; 1185 return list;
1182 } 1186 }
1183 1187
1203 } 1207 }
1204 } 1208 }
1205 return ElementUtils.getSimpleName(signature1).compareTo(ElementUtils.getSimpleName(signature2)); 1209 return ElementUtils.getSimpleName(signature1).compareTo(ElementUtils.getSimpleName(signature2));
1206 } 1210 }
1207 1211
1208 public static List<TypeMirror> uniqueSortedTypes(Collection<TypeMirror> types) { 1212 public static List<TypeMirror> uniqueSortedTypes(Collection<TypeMirror> types, boolean reverse) {
1209 if (types.isEmpty()) { 1213 if (types.isEmpty()) {
1210 return new ArrayList<>(0); 1214 return new ArrayList<>(0);
1211 } else if (types.size() <= 1) { 1215 } else if (types.size() <= 1) {
1212 if (types instanceof List) { 1216 if (types instanceof List) {
1213 return (List<TypeMirror>) types; 1217 return (List<TypeMirror>) types;
1217 } 1221 }
1218 Map<String, TypeMirror> sourceTypes = new HashMap<>(); 1222 Map<String, TypeMirror> sourceTypes = new HashMap<>();
1219 for (TypeMirror type : types) { 1223 for (TypeMirror type : types) {
1220 sourceTypes.put(ElementUtils.getTypeId(type), type); 1224 sourceTypes.put(ElementUtils.getTypeId(type), type);
1221 } 1225 }
1222 return sortTypes(new ArrayList<>(sourceTypes.values())); 1226 return sortTypes(new ArrayList<>(sourceTypes.values()), reverse);
1223 } 1227 }
1224 1228
1225 public static int compareMethod(ExecutableElement method1, ExecutableElement method2) { 1229 public static int compareMethod(ExecutableElement method1, ExecutableElement method2) {
1226 List<? extends VariableElement> parameters1 = method1.getParameters(); 1230 List<? extends VariableElement> parameters1 = method1.getParameters();
1227 List<? extends VariableElement> parameters2 = method2.getParameters(); 1231 List<? extends VariableElement> parameters2 = method2.getParameters();