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
@@ -222,7 +222,8 @@ internal fun kotlinToJsStringAdapter(x: String?): JsString? {
|
||||
}
|
||||
|
||||
internal fun jsCheckIsNullOrUndefinedAdapter(x: ExternalInterfaceType?): ExternalInterfaceType? =
|
||||
x.takeIf { !isNullish(it) }
|
||||
// We deliberately avoid usage of `takeIf` here as type erase on the inlining stage leads to infinite recursion
|
||||
if (isNullish(x)) null else x
|
||||
|
||||
// js string to kotlin string import
|
||||
// TODO Uint16Array may work with byte endian different with Wasm (i.e. little endian)
|
||||
|
||||
Reference in New Issue
Block a user