Skip to content

Instantly share code, notes, and snippets.

@lrytz
Created August 8, 2018 07:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lrytz/42c8dc374d735ca581aa1065a1dd4713 to your computer and use it in GitHub Desktop.
Save lrytz/42c8dc374d735ca581aa1065a1dd4713 to your computer and use it in GitHub Desktop.

Here's a javac crash with an incomplete compilation classpath.

$> rm *.class

$> java -version
java version "1.8.0_172"
Java(TM) SE Runtime Environment (build 1.8.0_172-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.172-b11, mixed mode)

$> cat C.scala
class C {
  def m(l: List[Int]): Int = 0
}

$> ~/scala/scala-2.12.6/bin/scalac C.scala

$> cat Test.java
class Test {
  void m() {
    (new C()).m(1, 2, 3);
  }
}

$> javac Test.java
An exception has occurred in the compiler (1.8.0_172). Please file a bug against the Java compiler via the Java bug reporting page (http://bugreport.java.com) after checking the Bug Database (http://bugs.java.com) for duplicates. Include your program and the following diagnostic in your report. Thank you.
java.lang.NullPointerException
	at com.sun.tools.javac.comp.TransTypes.visitSelect(TransTypes.java:826)
	at com.sun.tools.javac.tree.JCTree$JCFieldAccess.accept(JCTree.java:1897)
	at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
	at com.sun.tools.javac.comp.TransTypes.translate(TransTypes.java:490)
	at com.sun.tools.javac.comp.TransTypes.visitApply(TransTypes.java:666)
	at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1465)
	at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
	at com.sun.tools.javac.comp.TransTypes.translate(TransTypes.java:490)
	at com.sun.tools.javac.comp.TransTypes.visitExec(TransTypes.java:644)
	at com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.java:1296)
	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:162)
	at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:909)
	at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
	at com.sun.tools.javac.comp.TransTypes.translate(TransTypes.java:490)
	at com.sun.tools.javac.comp.TransTypes.visitMethodDef(TransTypes.java:525)
	at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:778)
	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:1007)
	at com.sun.tools.javac.comp.TransTypes.visitClassDef(TransTypes.java:511)
	at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:693)
	at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
	at com.sun.tools.javac.comp.TransTypes.translate(TransTypes.java:490)
	at com.sun.tools.javac.comp.TransTypes.translateTopLevelClass(TransTypes.java:1035)
	at com.sun.tools.javac.main.JavaCompiler.desugar(JavaCompiler.java:1486)
	at com.sun.tools.javac.main.JavaCompiler.desugar(JavaCompiler.java:1356)
	at com.sun.tools.javac.main.JavaCompiler.compile2(JavaCompiler.java:901)
	at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:860)
	at com.sun.tools.javac.main.Main.compile(Main.java:523)
	at com.sun.tools.javac.main.Main.compile(Main.java:381)
	at com.sun.tools.javac.main.Main.compile(Main.java:370)
	at com.sun.tools.javac.main.Main.compile(Main.java:361)
	at com.sun.tools.javac.Main.compile(Main.java:56)
	at com.sun.tools.javac.Main.main(Main.java:42)

$> javac -cp ~/scala/scala-2.12.6/lib/scala-library.jar:. Test.java
Test.java:3: error: method m in class C cannot be applied to given types;
    (new C()).m(1, 2, 3);
             ^
  required: List<Object>
  found: int,int,int
  reason: actual and formal argument lists differ in length
1 error

$>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment