[FIR] disable lazy resolve checks on building deserialized annotation arguments
During converting library annotations to FIR nodes and building required scopes inside, lazyResolveToPhase may be called. For such cases it's okay to skip the lazy resolve contract checks as those declarations are always fully resolved and lazy resolve will do nothing.
This commit is contained in:
committed by
Space Team
parent
b07d353fd4
commit
43775a5912
+4
-1
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.fir.scopes.FakeOverrideTypeCalculator
|
||||
import org.jetbrains.kotlin.fir.scopes.getDeclaredConstructors
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.lazyDeclarationResolver
|
||||
import org.jetbrains.kotlin.fir.types.*
|
||||
import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef
|
||||
import org.jetbrains.kotlin.metadata.ProtoBuf
|
||||
@@ -182,7 +183,9 @@ abstract class AbstractAnnotationDeserializer(
|
||||
annotationTypeRef = buildResolvedTypeRef {
|
||||
type = ConeClassLikeLookupTagImpl(classId).constructClassType(emptyArray(), isNullable = false)
|
||||
}
|
||||
this.argumentMapping = createArgumentMapping(proto, classId, nameResolver)
|
||||
session.lazyDeclarationResolver.disableLazyResolveContractChecksInside {
|
||||
this.argumentMapping = createArgumentMapping(proto, classId, nameResolver)
|
||||
}
|
||||
useSiteTarget?.let {
|
||||
this.useSiteTarget = it
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user