Skip to content

Export vararg method from Java does not adapt Seq to array #10884

Closed
@bishabosha

Description

@bishabosha

Minimized code

The following compiles ok, but fails at runtime

// JavaExporter.java
public class JavaExporter {
  public static String varargExample(String... args) {
    return "";
  }
}
object Exporter:
  export JavaExporter._

import Exporter._

@main def Test =
  println(varargExample("a", "b", "c"))

Output

~/Workspace/dotty/sandbox/ctx(fix-10724*) » scala -classpath out Test
Exception in thread "main" java.lang.ClassCastException: scala.collection.immutable.ArraySeq$ofRef cannot be cast to [Ljava.lang.String;
	at Foo$package$.test3(Foo.scala:16)
	at Foo$package$.Test(Foo.scala:21)
	at Test.main(Foo.scala:18)

Expectation

the vararg forwarder should adapt the varargs for java

Metadata

Metadata

Assignees

Labels

area:desugarDesugaring happens after parsing but before typing, see desugar.scalacompat:javaitype:bug

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions