Skip to content

ClassCastException: class cannot be cast to class scala.runtime.Nothing$ #22204

Open
@jtjeferreira

Description

@jtjeferreira

Compiler version

Scala 3.6.2, 3.5.2, 3.3.4

Minimized code

import com.fasterxml.jackson.databind.JsonNode
import com.fasterxml.jackson.databind.node.{
  JsonNodeFactory,
  ObjectNode,
  TextNode
}

val json: ObjectNode = JsonNodeFactory.instance.objectNode()

def foo(a: String): Unit = {
  a match {
    case "a" =>
      json.set("type", TextNode.valueOf("value"))
    case _ =>
      json.set("type", TextNode.valueOf("value"))

  }
}
foo("")

method set is a java method:

public <T extends JsonNode> T set(String propertyName, JsonNode value)

https://scastie.scala-lang.org/i507EyzXTdO1BM362YaOhA

Output

Caused by: java.lang.ClassCastException: class com.fasterxml.jackson.databind.node.ObjectNode cannot be cast to class scala.runtime.Nothing$

Expectation

That it does not crash like in scala2 https://scastie.scala-lang.org/gvqImCf7QeKBXahfClCZHA

Metadata

Metadata

Assignees

No one assigned

    Labels

    compat:javaitype:bugitype:soundnessSoundness bug (it lets us compile code that crashes at runtime with a ClassCastException)stat:needs minimizationNeeds a self contained minimization

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions