Mercurial > hg > truffle
diff truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/ElementUtils.java @ 22516:687bc1dda125
Truffle-DSL: fix wrong resolution when multiple public static methods are imported from a cached type.
author | Christian Humer <christian.humer@oracle.com> |
---|---|
date | Fri, 18 Dec 2015 14:41:06 +0100 |
parents | dc83cc1f94f2 |
children |
line wrap: on
line diff
--- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/ElementUtils.java Fri Dec 18 14:47:13 2015 +0100 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/ElementUtils.java Fri Dec 18 14:41:06 2015 +0100 @@ -1055,6 +1055,20 @@ return 0; } + public static int compareByTypeHierarchy(TypeMirror t1, Set<String> t1SuperSet, TypeMirror t2, Set<String> t2SuperSet) { + if (typeEquals(t1, t2)) { + return 0; + } + if (t1SuperSet.contains(getQualifiedName(t2))) { + return -1; + } + + if (t2SuperSet.contains(getQualifiedName(t1))) { + return 1; + } + return 0; + } + public static boolean canThrowType(List<? extends TypeMirror> thrownTypes, TypeMirror exceptionType) { if (ElementUtils.containsType(thrownTypes, exceptionType)) { return true;