[IR FAKE OVERRIDES] Properly account for outer class type parameters
This commit is contained in:
committed by
Stanislav Erokhin
parent
1ef17c6f3a
commit
c076d81f0c
+2
-1
@@ -33,6 +33,7 @@ import org.jetbrains.kotlin.ir.symbols.impl.IrPropertySymbolImpl
|
||||
import org.jetbrains.kotlin.ir.types.IrSimpleType
|
||||
import org.jetbrains.kotlin.ir.types.IrType
|
||||
import org.jetbrains.kotlin.ir.types.IrTypeProjection
|
||||
import org.jetbrains.kotlin.ir.types.extractTypeParameters
|
||||
import org.jetbrains.kotlin.ir.types.getClass
|
||||
import org.jetbrains.kotlin.ir.util.SymbolTable
|
||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
|
||||
@@ -76,7 +77,7 @@ class FakeOverrideBuilder(
|
||||
val classifier = superType.classifier
|
||||
require(classifier is IrClassSymbol) { "superType classifier is not IrClassSymbol: $classifier" }
|
||||
|
||||
val typeParameters = classifier.owner.typeParameters.map { it.symbol }
|
||||
val typeParameters = extractTypeParameters(classifier.owner).map { it.symbol }
|
||||
val typeArguments = superType.arguments.map {
|
||||
require(it is IrTypeProjection) { "Unexpected super type argument: $it" }
|
||||
assert(it.variance == Variance.INVARIANT) { "Unexpected variance in super type argument: ${it.variance}" }
|
||||
|
||||
Reference in New Issue
Block a user