diff --git a/compiler/fir/checkers/checkers.native/src/org/jetbrains/kotlin/fir/analysis/native/checkers/FirNativeObjCRefinementChecker.kt b/compiler/fir/checkers/checkers.native/src/org/jetbrains/kotlin/fir/analysis/native/checkers/FirNativeObjCRefinementChecker.kt index f222615a96e..5e327cfbb6c 100644 --- a/compiler/fir/checkers/checkers.native/src/org/jetbrains/kotlin/fir/analysis/native/checkers/FirNativeObjCRefinementChecker.kt +++ b/compiler/fir/checkers/checkers.native/src/org/jetbrains/kotlin/fir/analysis/native/checkers/FirNativeObjCRefinementChecker.kt @@ -44,8 +44,7 @@ object FirNativeObjCRefinementChecker : FirCallableDeclarationChecker() { val objCAnnotations = mutableListOf() val swiftAnnotations = mutableListOf() for (annotation in annotations) { - val metaAnnotations = annotation.unexpandedConeClassLikeType?.lookupTag - ?.toSymbol(session)?.resolvedAnnotationsWithClassIds.orEmpty() + val metaAnnotations = annotation.toAnnotationClassLikeSymbol(session)?.resolvedAnnotationsWithClassIds.orEmpty() for (metaAnnotation in metaAnnotations) { when (metaAnnotation.toAnnotationClassId(session)) { hidesFromObjCClassId -> { diff --git a/compiler/fir/checkers/checkers.native/src/org/jetbrains/kotlin/fir/analysis/native/checkers/FirNativeObjCRefinementOverridesChecker.kt b/compiler/fir/checkers/checkers.native/src/org/jetbrains/kotlin/fir/analysis/native/checkers/FirNativeObjCRefinementOverridesChecker.kt index be4a929c2ee..7415f70ddda 100644 --- a/compiler/fir/checkers/checkers.native/src/org/jetbrains/kotlin/fir/analysis/native/checkers/FirNativeObjCRefinementOverridesChecker.kt +++ b/compiler/fir/checkers/checkers.native/src/org/jetbrains/kotlin/fir/analysis/native/checkers/FirNativeObjCRefinementOverridesChecker.kt @@ -18,6 +18,7 @@ import org.jetbrains.kotlin.fir.containingClassLookupTag import org.jetbrains.kotlin.fir.declarations.FirClass import org.jetbrains.kotlin.fir.declarations.FirDeclaration import org.jetbrains.kotlin.fir.declarations.toAnnotationClassId +import org.jetbrains.kotlin.fir.declarations.toAnnotationClassLikeSymbol import org.jetbrains.kotlin.fir.expressions.FirAnnotation import org.jetbrains.kotlin.fir.expressions.unexpandedConeClassLikeType import org.jetbrains.kotlin.fir.isIntersectionOverride @@ -83,8 +84,7 @@ object FirNativeObjCRefinementOverridesChecker : FirClassChecker() { var hasObjC = false var hasSwift = false for (annotation in resolvedAnnotationsWithClassIds) { - val metaAnnotations = annotation.unexpandedConeClassLikeType?.lookupTag - ?.toSymbol(session)?.resolvedAnnotationsWithClassIds.orEmpty() + val metaAnnotations = annotation.toAnnotationClassLikeSymbol(session)?.resolvedAnnotationsWithClassIds.orEmpty() for (metaAnnotation in metaAnnotations) { when (metaAnnotation.toAnnotationClassId(session)) { hidesFromObjCClassId -> { diff --git a/compiler/testData/diagnostics/nativeTests/objCRefinement.kt b/compiler/testData/diagnostics/nativeTests/objCRefinement.kt index 270c150a62f..79d28ac2608 100644 --- a/compiler/testData/diagnostics/nativeTests/objCRefinement.kt +++ b/compiler/testData/diagnostics/nativeTests/objCRefinement.kt @@ -58,7 +58,9 @@ annotation class MyRefinedAnnotationC @Retention(AnnotationRetention.BINARY) annotation class MyRefinedAnnotationD -@HiddenFromObjC +typealias HFOC = HiddenFromObjC + +@HFOC @ShouldRefineInSwift var refinedProperty: Int = 0 @@ -92,7 +94,7 @@ interface InterfaceB { val barA: Int @ShouldRefineInSwift val barB: Int - @HiddenFromObjC + @HFOC fun fooA() @HiddenFromObjC fun fooB() diff --git a/compiler/testData/diagnostics/nativeTests/objCRefinement.txt b/compiler/testData/diagnostics/nativeTests/objCRefinement.txt index 3f0a362ca56..7440eceb870 100644 --- a/compiler/testData/diagnostics/nativeTests/objCRefinement.txt +++ b/compiler/testData/diagnostics/nativeTests/objCRefinement.txt @@ -1,6 +1,6 @@ package -@kotlin.native.HiddenFromObjC @kotlin.native.ShouldRefineInSwift public var refinedProperty: kotlin.Int +@HFOC /* = kotlin.native.HiddenFromObjC */ @kotlin.native.ShouldRefineInSwift public var refinedProperty: kotlin.Int @kotlin.native.HiddenFromObjC @plugin.PluginHiddenFromObjC @kotlin.native.ShouldRefineInSwift @plugin.PluginShouldRefineInSwift public fun multipleMixedRefinementsFunction(): kotlin.Unit @kotlin.native.HiddenFromObjC @plugin.PluginHiddenFromObjC public fun multipleObjCRefinementsFunction(): kotlin.Unit @kotlin.native.ShouldRefineInSwift @plugin.PluginShouldRefineInSwift public fun multipleSwiftRefinementsFunction(): kotlin.Unit @@ -75,7 +75,7 @@ public interface InterfaceB { public abstract val barA: kotlin.Int @kotlin.native.ShouldRefineInSwift public abstract val barB: kotlin.Int public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - @kotlin.native.HiddenFromObjC public abstract fun fooA(): kotlin.Unit + @HFOC /* = kotlin.native.HiddenFromObjC */ public abstract fun fooA(): kotlin.Unit @kotlin.native.HiddenFromObjC public abstract fun fooB(): kotlin.Unit public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String @@ -108,6 +108,7 @@ public interface InterfaceB { public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } +public typealias HFOC = kotlin.native.HiddenFromObjC package kotlin {