[FIR] BodyResolveContext: insideClassHeader should add container as well
This container will be used during an annotation call owner search ^KT-63042
This commit is contained in:
committed by
Space Team
parent
ec180bca71
commit
ed7415ab93
+1
-1
@@ -88,7 +88,7 @@ private class LLFirAnnotationArgumentsTargetResolver(
|
||||
when {
|
||||
target is FirRegularClass -> {
|
||||
val declarationTransformer = transformer.declarationsTransformer
|
||||
declarationTransformer.context.insideClassHeader {
|
||||
declarationTransformer.context.withClassHeader(target) {
|
||||
target.transformAnnotations(declarationTransformer, ResolutionMode.ContextIndependent)
|
||||
target.transformTypeParameters(declarationTransformer, ResolutionMode.ContextIndependent)
|
||||
target.transformSuperTypeRefs(declarationTransformer, ResolutionMode.ContextIndependent)
|
||||
|
||||
+2
-2
@@ -98,11 +98,11 @@ class BodyResolveContext(
|
||||
var insideClassHeader: Boolean = false
|
||||
|
||||
@OptIn(PrivateForInline::class)
|
||||
inline fun insideClassHeader(action: () -> Unit) {
|
||||
inline fun withClassHeader(clazz: FirRegularClass, action: () -> Unit) {
|
||||
val old = insideClassHeader
|
||||
insideClassHeader = true
|
||||
try {
|
||||
action()
|
||||
withContainer(clazz, action)
|
||||
} finally {
|
||||
insideClassHeader = old
|
||||
}
|
||||
|
||||
+1
-1
@@ -664,7 +664,7 @@ open class FirDeclarationsResolveTransformer(
|
||||
}
|
||||
|
||||
if (isLocal || !implicitTypeOnly) {
|
||||
context.insideClassHeader {
|
||||
context.withClassHeader(regularClass) {
|
||||
regularClass.transformAnnotations(this, ResolutionMode.ContextIndependent)
|
||||
regularClass.transformTypeParameters(this, ResolutionMode.ContextIndependent)
|
||||
regularClass.transformSuperTypeRefs(this, ResolutionMode.ContextIndependent)
|
||||
|
||||
+1
-2
@@ -27,7 +27,6 @@ import org.jetbrains.kotlin.fir.resolve.transformers.ReturnTypeCalculator
|
||||
import org.jetbrains.kotlin.fir.resolve.transformers.ReturnTypeCalculatorForFullBodyResolve
|
||||
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.*
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirEnumEntrySymbol
|
||||
import org.jetbrains.kotlin.fir.visitors.transformSingle
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.StandardClassIds
|
||||
@@ -185,7 +184,7 @@ private class FirDeclarationsResolveTransformerForAnnotationArguments(
|
||||
}
|
||||
|
||||
override fun transformRegularClass(regularClass: FirRegularClass, data: ResolutionMode): FirRegularClass {
|
||||
context.insideClassHeader {
|
||||
context.withClassHeader(regularClass) {
|
||||
regularClass.transformAnnotations(this, ResolutionMode.ContextIndependent)
|
||||
regularClass.transformTypeParameters(this, ResolutionMode.ContextIndependent)
|
||||
regularClass.transformSuperTypeRefs(this, ResolutionMode.ContextIndependent)
|
||||
|
||||
Reference in New Issue
Block a user