Skip to content

Union of function types leads to ClassCastException #5202

Closed
@Jasper-M

Description

@Jasper-M

I don't know why or how, but:

scala> val f: (Int => Int) | (String => Int) = (a: Int) => a + 3                
val f: (Int => Int) | (String => Int) = Lambda$1427/1583001542@5583098b

scala> f(5)                                                                     
val res0: Int = 8

scala> f("c")
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
	at scala.runtime.BoxesRunTime.unboxToInt(BoxesRunTime.java:101)
	at scala.compat.java8.JFunction1$mcII$sp.apply(JFunction1$mcII$sp.java:12)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions