Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8008276

assertion error in com.sun.tools.javac.comp.TransTypes.visitApply

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P3 P3
    • 8
    • None
    • tools
    • b82
    • Verified

      Incorrect call of method results in AssertionError

      Code:
      public class testbug {
          MapFun<String, Integer> sti;
          
          void test(String i) {
             sti = s -> mtest( s, new testclass(Integer::decode){} );
             System.out.println(sti.m(i));
          }
          Integer mtest( String S, testclass t){ return t.stoi(S); }

          public static void main(String... args){new testbug().test("123");}
      }

      interface MapFun<T,R> { R m(T n); }

      class testclass {
          MapFun<String, Integer> mf = null;
          testclass( MapFun<String, Integer> _mf ) { mf = _mf; }
          Integer stoi( String S){ return (mf!=null)? mf.m(S):null; }
          // comment below line and it's okay.
          String itos( Integer I){return (mf!=null)? mf.m(I):null;} //mf.m(I) crashes
      }

      stacktrace:

      An exception has occurred in the compiler (1.8.0-ea). Please file a bug at the Java Developer Connection (http://java.sun.com/webapps/bugreport) after checking the Bug Parade for duplicates. Include your program and the following diagnostic in your report. Thank you.
      java.lang.AssertionError
      at com.sun.tools.javac.util.Assert.error(Assert.java:126)
      at com.sun.tools.javac.util.Assert.check(Assert.java:45)
      at com.sun.tools.javac.comp.TransTypes.visitApply(TransTypes.java:640)
      at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1440)
      at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
      at com.sun.tools.javac.comp.TransTypes.translate(TransTypes.java:453)
      at com.sun.tools.javac.comp.TransTypes.visitConditional(TransTypes.java:593)
      at com.sun.tools.javac.tree.JCTree$JCConditional.accept(JCTree.java:1212)
      at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
      at com.sun.tools.javac.comp.TransTypes.translate(TransTypes.java:453)
      at com.sun.tools.javac.comp.TransTypes.visitReturn(TransTypes.java:612)
      at com.sun.tools.javac.tree.JCTree$JCReturn.accept(JCTree.java:1359)
      at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
      at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:70)
      at com.sun.tools.javac.tree.TreeTranslator.visitBlock(TreeTranslator.java:161)
      at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:884)
      at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
      at com.sun.tools.javac.comp.TransTypes.translate(TransTypes.java:453)
      at com.sun.tools.javac.comp.TransTypes.visitMethodDef(TransTypes.java:488)
      at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:771)
      at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
      at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:70)
      at com.sun.tools.javac.tree.TreeTranslator.visitClassDef(TreeTranslator.java:134)
      at com.sun.tools.javac.comp.TransTypes.translateClass(TransTypes.java:929)
      at com.sun.tools.javac.comp.TransTypes.visitClassDef(TransTypes.java:474)
      at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:686)
      at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
      at com.sun.tools.javac.comp.TransTypes.translate(TransTypes.java:453)
      at com.sun.tools.javac.comp.TransTypes.translateTopLevelClass(TransTypes.java:956)
      at com.sun.tools.javac.main.JavaCompiler.desugar(JavaCompiler.java:1463)
      at com.sun.tools.javac.main.JavaCompiler.desugar(JavaCompiler.java:1359)
      at com.sun.tools.javac.main.JavaCompiler.desugar(JavaCompiler.java:1413)
      at com.sun.tools.javac.main.JavaCompiler.desugar(JavaCompiler.java:1359)
      at com.sun.tools.javac.main.JavaCompiler.compile2(JavaCompiler.java:909)
      at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:868)
      at com.sun.tools.javac.main.Main.compile(Main.java:506)
      at com.sun.tools.javac.main.Main.compile(Main.java:365)
      at com.sun.tools.javac.main.Main.compile(Main.java:354)
      at com.sun.tools.javac.main.Main.compile(Main.java:345)
      at com.sun.tools.javac.Main.compile(Main.java:76)
      at com.sun.tools.javac.Main.main(Main.java:61)

            mcimadamore Maurizio Cimadamore
            ssides Steve Sides
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: