Skip to content

Compiler crash when overriding Java var-arg constructor #17066

Closed
@kavedaa

Description

@kavedaa

Compiler version

3.2.2, 3.3.0-RC1

Minimized code

Java:

public class Foo {
  public Foo(String... xs) { }
}

Scala:

class Bar extends Foo {
  def this(xs: String*) = this()
}

Output (click arrow to expand)

[info] compiling 1 Scala source and 1 Java source to E:\prog\jvm\scala\bugs\java-varargs\target\scala-3.2.2\classes ...
java.lang.AssertionError: assertion failed: constructor Bar in class Bar while running MegaPhase{crossVersionChecks, protectedAccessors, extmethods, uncacheGivenAliases, elimByName, hoistSuperArgs, forwardDepChecks, specializeApplyMethods, tryCatchPatterns, patternMatcher} on E:\prog\jvm\scala\bugs\java-varargs\src\main\scala\Bar.scala
[info] exception occurred while compiling E:\prog\jvm\scala\bugs\java-varargs\src\main\scala\Bar.scala
java.lang.AssertionError: assertion failed: constructor Bar in class Bar while compiling E:\prog\jvm\scala\bugs\java-varargs\src\main\java\Foo.java, E:\prog\jvm\scala\bugs\java-varargs\src\main\scala\Bar.scala
[error] ## Exception when compiling 2 sources to E:\prog\jvm\scala\bugs\java-varargs\target\scala-3.2.2\classes
[error] java.lang.AssertionError: assertion failed: constructor Bar in class Bar
[error] scala.runtime.Scala3RunTime$.assertFailed(Scala3RunTime.scala:8)
[error] dotty.tools.dotc.transform.ForwardDepChecks.checkSelfConstructorCall(ForwardDepChecks.scala:117)
[error] dotty.tools.dotc.transform.ForwardDepChecks.transformApply(ForwardDepChecks.scala:123)
[error] dotty.tools.dotc.transform.ForwardDepChecks.transformApply(ForwardDepChecks.scala:120)
[error] dotty.tools.dotc.transform.MegaPhase.goApply(MegaPhase.scala:650)

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions