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