Skip to content

java interop: not auto box #8588

Closed
Closed
@ohze

Description

@ohze

minimized code

  • ConfigFactory.java
import java.util.Map;
public class ConfigFactory {
    public static void parseMap(Map<String, ? extends Object> values) { }
}
  • Test.scala
import scala.jdk.CollectionConverters._
object Test {
  ConfigFactory.parseMap(Map("a" -> 1).asJava)
  ConfigFactory.parseMap(Map("a" -> "", "b" -> true).asJava)
}

Compilation output

[error] -- [E007] Type Mismatch Error: /Users/thanhbv/ohze/dotty-example/src/main/scala/Test.scala:3:39 
[error] 3 |  ConfigFactory.parseMap(Map("a" -> 1).asJava)
[error]   |                         ^^^^^^^^^^^^^^^^^^^^
[error]   |                         Found:    java.util.Map[String, Int]
[error]   |                         Required: java.util.Map[String, ? <: Object]
[error] -- [E007] Type Mismatch Error: /Users/thanhbv/ohze/dotty-example/src/main/scala/Test.scala:4:53 
[error] 4 |  ConfigFactory.parseMap(Map("a" -> "", "b" -> true).asJava)
[error]   |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[error]   |                         Found:    java.util.Map[String, Any]
[error]   |                         Required: java.util.Map[String, ? <: Object]

expectation

Compile successfully as in scala 2
Use case: When using "com.typesafe" % "config" library

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions