mirror of
https://github.com/openjdk/jdk.git
synced 2026-02-11 02:48:20 +00:00
8037804: Implement specified test for related functional interface types
Reviewed-by: vromero
This commit is contained in:
parent
5cffc0a3ab
commit
448079796f
@ -1149,8 +1149,28 @@ public class Resolve {
|
||||
private boolean unrelatedFunctionalInterfaces(Type t, Type s) {
|
||||
return types.isFunctionalInterface(t.tsym) &&
|
||||
types.isFunctionalInterface(s.tsym) &&
|
||||
types.asSuper(t, s.tsym) == null &&
|
||||
types.asSuper(s, t.tsym) == null;
|
||||
unrelatedInterfaces(t, s);
|
||||
}
|
||||
|
||||
/** Whether {@code t} and {@code s} are unrelated interface types; recurs on intersections. **/
|
||||
private boolean unrelatedInterfaces(Type t, Type s) {
|
||||
if (t.isCompound()) {
|
||||
for (Type ti : types.interfaces(t)) {
|
||||
if (!unrelatedInterfaces(ti, s)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
} else if (s.isCompound()) {
|
||||
for (Type si : types.interfaces(s)) {
|
||||
if (!unrelatedInterfaces(t, si)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
} else {
|
||||
return types.asSuper(t, s.tsym) == null && types.asSuper(s, t.tsym) == null;
|
||||
}
|
||||
}
|
||||
|
||||
/** Parameters {@code t} and {@code s} are unrelated functional interface types. */
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user