JVM_IR: use non-nullable types as SAM super types

The wrappers for conversions to nullable and non-nullable SAM types are
the same, so differentiating those has no effect other than class name
collisions.
This commit is contained in:
pyos
2020-03-17 18:25:02 +01:00
committed by Alexander Udalov
parent 164f25937f
commit a75408b1ed
6 changed files with 44 additions and 2 deletions
@@ -104,8 +104,8 @@ abstract class SingleAbstractMethodLowering(val context: CommonBackendContext) :
val inInlineFunctionScope = allScopes.any { scope -> (scope.irElement as? IrFunction)?.isInline ?: false }
val cache = if (inInlineFunctionScope) inlineCachedImplementations else cachedImplementations
val implementation = cache.getOrPut(superType) {
createObjectProxy(superType, inInlineFunctionScope, expression)
val implementation = cache.getOrPut(erasedSuperType) {
createObjectProxy(erasedSuperType, inInlineFunctionScope, expression)
}
return if (superType.isNullable() && invokable.type.isNullable()) {