Erase non-reified type parameters by-default when inlining.
Substitution of type arguments to non-reified type parameters may lead to accidental reification, which should not be done (see ^KT-60174 for examples). So, we should erase them, except the few cases. ^KT-60174: Fixed ^KT-60175: Fixed
This commit is contained in:
committed by
Space Team
parent
29ecc4d987
commit
f318b5969d
@@ -0,0 +1,15 @@
|
||||
// FILE: 1.kt
|
||||
|
||||
inline fun <T: Unit?> myrun(block: () -> T) = block()
|
||||
|
||||
// FILE: 2.kt
|
||||
|
||||
fun box(): String {
|
||||
var x = "Fail"
|
||||
myrun L@{
|
||||
if (false) return@L Unit
|
||||
x = "OK"
|
||||
null
|
||||
}
|
||||
return x
|
||||
}
|
||||
Reference in New Issue
Block a user