aboutsummaryrefslogtreecommitdiff
path: root/src/share/classes/com/sun/tools/javac/comp/Resolve.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/share/classes/com/sun/tools/javac/comp/Resolve.java')
-rw-r--r--src/share/classes/com/sun/tools/javac/comp/Resolve.java7
1 files changed, 2 insertions, 5 deletions
diff --git a/src/share/classes/com/sun/tools/javac/comp/Resolve.java b/src/share/classes/com/sun/tools/javac/comp/Resolve.java
index 301a3aeb..94ddd16f 100644
--- a/src/share/classes/com/sun/tools/javac/comp/Resolve.java
+++ b/src/share/classes/com/sun/tools/javac/comp/Resolve.java
@@ -770,12 +770,9 @@ public class Resolve {
return ambiguityError(m1, m2);
// both abstract, neither overridden; merge throws clause and result type
Symbol mostSpecific;
- Type result2 = mt2.getReturnType();
- if (mt2.tag == FORALL)
- result2 = types.subst(result2, ((ForAll)mt2).tvars, ((ForAll)mt1).tvars);
- if (types.isSubtype(mt1.getReturnType(), result2))
+ if (types.returnTypeSubstitutable(mt1, mt2))
mostSpecific = m1;
- else if (types.isSubtype(result2, mt1.getReturnType()))
+ else if (types.returnTypeSubstitutable(mt2, mt1))
mostSpecific = m2;
else {
// Theoretically, this can't happen, but it is possible