From 343b856cfc8ea75a72d83130a83f89ea8d876904 Mon Sep 17 00:00:00 2001 From: Nikolay Lunyak Date: Mon, 16 Jan 2023 13:56:13 +0200 Subject: [PATCH] [FIR] Expand typealiases in FirNativeObjC checkers --- .../native/checkers/FirNativeObjCRefinementChecker.kt | 3 +-- .../checkers/FirNativeObjCRefinementOverridesChecker.kt | 4 ++-- compiler/testData/diagnostics/nativeTests/objCRefinement.kt | 6 ++++-- .../testData/diagnostics/nativeTests/objCRefinement.txt | 5 +++-- 4 files changed, 10 insertions(+), 8 deletions(-) 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 {