diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java index 933f582a2e6..badaf1bf158 100644 --- a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java @@ -1407,9 +1407,6 @@ public class Types { Map tMap = new HashMap<>(); for (Type ti : interfaces(t)) { - if (tMap.containsKey(ti)) { - throw new AssertionError("Malformed intersection"); - } tMap.put(ti.tsym, ti); } for (Type si : interfaces(s)) { diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java index 513122317f1..aa480afa3ba 100644 --- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java @@ -5116,11 +5116,11 @@ public class Attr extends JCTree.Visitor { } Type checkIntersection(JCTree tree, List bounds) { - Set boundSet = new HashSet<>(); + Set boundSet = new HashSet<>(); if (bounds.nonEmpty()) { // accept class or interface or typevar as first bound. bounds.head.type = checkBase(bounds.head.type, bounds.head, env, false, false, false); - boundSet.add(types.erasure(bounds.head.type)); + boundSet.add(types.erasure(bounds.head.type).tsym); if (bounds.head.type.isErroneous()) { return bounds.head.type; } diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java index e1dbbabb8f7..893ba5699e6 100644 --- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java @@ -2872,11 +2872,11 @@ public class Check { /** Enter interface into into set. * If it existed already, issue a "repeated interface" error. */ - void checkNotRepeated(DiagnosticPosition pos, Type it, Set its) { - if (its.contains(it)) + void checkNotRepeated(DiagnosticPosition pos, Type it, Set its) { + if (its.contains(it.tsym)) log.error(pos, Errors.RepeatedInterface); else { - its.add(it); + its.add(it.tsym); } } diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.java index cd767f7db3b..ce6eca795fd 100644 --- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.java +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.java @@ -845,7 +845,7 @@ public class TypeEnter implements Completer { fillPermits(tree, baseEnv); - Set interfaceSet = new HashSet<>(); + Set interfaceSet = new HashSet<>(); for (JCExpression iface : tree.implementing) { Type it = iface.type;