Javac throws AssertionError(Unexpected intersection type) for CompoundTypeGenerics

bitter_fox bitterfoxc at gmail.com
Mon Jan 9 01:41:29 PST 2012


Javac(Revision: 1245) throws AssertionError when I compile this program:

import java.util.*;

public class Test3
{
    interface Marker1
    {}

    interface Marker2
    {}

    static class Object1 implements Marker1, Marker2
    {}

    static class Object2 implements Marker1, Marker2
    {}

    interface SAM1<RET, ARG1>
    {
        RET invoke(ARG1 arg1);
    }

    public static void main(String[] args)
    {
        Test3.test(Arrays.asList(new Object1(), new Object2()), e -> e);
    }

    public static <T> void test(Iterable<T> iterable, SAM1<T, T> sam)
    {}
}

This is the StackTrace:

java.lang.AssertionError: Unexpected intersection type:
java.lang.Object&Main.M
arker1&Main.Marker2
        at
com.sun.tools.javac.jvm.ClassWriter.enterInner(ClassWriter.java:895)
        at
com.sun.tools.javac.jvm.ClassWriter.assembleClassSig(ClassWriter.java
:383)
        at
com.sun.tools.javac.jvm.ClassWriter.assembleSig(ClassWriter.java:307)

        at
com.sun.tools.javac.jvm.ClassWriter.assembleSig(ClassWriter.java:410)

        at
com.sun.tools.javac.jvm.ClassWriter.assembleClassSig(ClassWriter.java
:402)
        at
com.sun.tools.javac.jvm.ClassWriter.assembleSig(ClassWriter.java:307)

        at
com.sun.tools.javac.jvm.ClassWriter.writeClassFile(ClassWriter.java:1
592)
        at
com.sun.tools.javac.jvm.ClassWriter.writeClass(ClassWriter.java:1506)

        at
com.sun.tools.javac.main.JavaCompiler.genCode(JavaCompiler.java:728)
        at
com.sun.tools.javac.main.JavaCompiler.generate(JavaCompiler.java:1466
)
        at
com.sun.tools.javac.main.JavaCompiler.generate(JavaCompiler.java:1434
)
        at
com.sun.tools.javac.main.JavaCompiler.compile2(JavaCompiler.java:885)

        at
com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:844)
        at com.sun.tools.javac.main.Main.compile(Main.java:430)
        at com.sun.tools.javac.main.Main.compile(Main.java:344)
        at com.sun.tools.javac.main.Main.compile(Main.java:335)
        at com.sun.tools.javac.Main.compile(Main.java:76)
        at com.sun.tools.javac.Main.main(Main.java:61)

Was this problem already known?

Thank you,
bitter_fox


More information about the lambda-dev mailing list