--- old/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassWriter.java 2018-03-21 12:03:19.190141908 +0900 +++ new/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassWriter.java 2018-03-21 12:03:18.970135175 +0900 @@ -1040,7 +1040,14 @@ */ void enterInner(ClassSymbol c) { if (c.type.isCompound()) { - throw new AssertionError("Unexpected intersection type: " + c.type); + if (c.type.isIntersection()) { + types.directSupertypes(c.type).stream() + .map(t -> (ClassSymbol) t.tsym) + .forEach(this::enterInner); + return; + } else { + throw new AssertionError("Unexpected compound type: " + c.type); + } } try { c.complete();