Closed
Description
Compiler version
3.3.0
Minimized code
https://scastie.scala-lang.org/wUWQ0uNJRkqyLAz19jO8xw
class MyRecord extends Selectable:
def applyDynamic(name: String, paramClasses: Class[_]*)(args: Any*): Any = {
println(name)
println(paramClasses)
println(args)
()
}
class MyRecordTransparent extends Selectable:
inline transparent def applyDynamic(name: String, paramClasses: Class[_]*)(args: Any*): Any = {
println(name)
println(paramClasses)
println(args)
()
}
type Person = MyRecord {
def test(a: String, b: Int): Unit
}
type PersonTransparent = MyRecordTransparent {
def test(a: String, b: Int): Unit
}
val person = MyRecord().asInstanceOf[Person]
val personTransparent = MyRecordTransparent().asInstanceOf[PersonTransparent]
println("Normal")
person.test("test", 42)
println("Transparent")
personTransparent.test("test", 42)
Output
Normal
test
ArraySeq(class java.lang.String, int)
ArraySeq(test, 42)
Transparent
test
ArraySeq()
ArraySeq(test, 42)
Expectation
Normal
test
ArraySeq(class java.lang.String, int)
ArraySeq(test, 42)
Transparent
test
ArraySeq(class java.lang.String, int)
ArraySeq(test, 42)