Skip to content

Cannot use varargs from Java #11057

@MasseGuillaume

Description

@MasseGuillaume
// build.sbt
scalaVersion := "2.13.0-M4"
// src/main/scala/C.scala
object VarArgs {
  @annotation.varargs
  def call(args: Int*): Int = args.size
}
// src/main/java/VarArgsUsage.java
public class VarArgsUsage {
  public void usage() {
    VarArgs.call(1, 2, 3);
  }
}
[error] /home/gui/scala213/test/junit/java/VarArgsUsage.java:4: method call in class VarArgs cannot be applied to given types;
[error]   required: scala.collection.immutable.Seq<java.lang.Object>
[error]   found: int,int,int
[error]   reason: actual and formal argument lists differ in length
[error]     VarArgs.call(1, 2, 3);

javap result from 2.13.X

public final class VarArgs {
  public static int call(scala.collection.immutable.Seq<java.lang.Object>);
}

javap result from 2.12.X

public final class VarArgs {
  public static int call(int...);
  public static int call(scala.collection.Seq<java.lang.Object>);
}

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions