[LL FIR] LLFirAnnotationArgumentsLazyResolver: add missed checks for context receivers

This commit is contained in:
Dmitrii Gridin
2024-02-19 16:14:13 +01:00
committed by Space Team
parent fe4ead751f
commit 7048184acf
2 changed files with 12 additions and 7 deletions
@@ -43,9 +43,7 @@ internal object LLFirAnnotationArgumentsLazyResolver : LLFirLazyResolver(FirReso
checkAnnotationsAreResolved(target, receiverParameter.typeRef)
}
for (contextReceiver in target.contextReceivers) {
checkAnnotationsAreResolved(target, contextReceiver.typeRef)
}
checkAnnotationsAreResolved(target.contextReceivers, target)
}
is FirTypeParameter -> {
@@ -54,15 +52,16 @@ internal object LLFirAnnotationArgumentsLazyResolver : LLFirLazyResolver(FirReso
}
}
is FirClass -> {
is FirRegularClass -> {
for (typeRef in target.superTypeRefs) {
checkAnnotationsAreResolved(target, typeRef)
}
checkAnnotationsAreResolved(target.contextReceivers, target)
}
is FirTypeAlias -> {
checkAnnotationsAreResolved(target, target.expandedTypeRef)
}
is FirScript -> checkAnnotationsAreResolved(target.contextReceivers, target)
is FirTypeAlias -> checkAnnotationsAreResolved(target, target.expandedTypeRef)
}
}
}
@@ -214,6 +214,12 @@ internal fun checkAnnotationsAreResolved(owner: FirAnnotationContainer, typeRef:
typeRef.accept(AnnotationChecker, owner)
}
internal fun checkAnnotationsAreResolved(contextReceivers: List<FirContextReceiver>, owner: FirDeclaration) {
for (contextReceiver in contextReceivers) {
checkAnnotationsAreResolved(owner, contextReceiver.typeRef)
}
}
internal fun FirAbstractBodyResolveTransformerDispatcher.checkAnnotationCallIsResolved(
symbol: FirBasedSymbol<*>,
annotationCall: FirAnnotationCall,