[FIR2IR] Cache type parameters for existing IR classes properly
Before this commit, we just recreated class header for external IR class found by signature. However, it's not required, because super-types, type parameters, etc. are already initialized. So now we just read type parameters and build cache for them.
This commit is contained in:
@@ -429,7 +429,10 @@ class Fir2IrClassifierStorage(
|
||||
symbolTable.referenceClassIfAny(signature)?.let { irClassSymbol ->
|
||||
val irClass = irClassSymbol.owner
|
||||
classCache[firClass as FirRegularClass] = irClass
|
||||
processClassHeader(firClass, irClass)
|
||||
val mappedTypeParameters = firClass.typeParameters.filterIsInstance<FirTypeParameter>().zip(irClass.typeParameters)
|
||||
for ((firTypeParameter, irTypeParameter) in mappedTypeParameters) {
|
||||
typeParameterCache[firTypeParameter] = irTypeParameter
|
||||
}
|
||||
declarationStorage.preCacheBuiltinClassMembers(firClass, irClass)
|
||||
return irClassSymbol
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user