[FIR] Expand typealiases in FirNativeObjC checkers

This commit is contained in:
Nikolay Lunyak
2023-01-16 13:56:13 +02:00
committed by Space Team
parent f8643c90eb
commit 343b856cfc
4 changed files with 10 additions and 8 deletions
@@ -44,8 +44,7 @@ object FirNativeObjCRefinementChecker : FirCallableDeclarationChecker() {
val objCAnnotations = mutableListOf<FirAnnotation>() val objCAnnotations = mutableListOf<FirAnnotation>()
val swiftAnnotations = mutableListOf<FirAnnotation>() val swiftAnnotations = mutableListOf<FirAnnotation>()
for (annotation in annotations) { for (annotation in annotations) {
val metaAnnotations = annotation.unexpandedConeClassLikeType?.lookupTag val metaAnnotations = annotation.toAnnotationClassLikeSymbol(session)?.resolvedAnnotationsWithClassIds.orEmpty()
?.toSymbol(session)?.resolvedAnnotationsWithClassIds.orEmpty()
for (metaAnnotation in metaAnnotations) { for (metaAnnotation in metaAnnotations) {
when (metaAnnotation.toAnnotationClassId(session)) { when (metaAnnotation.toAnnotationClassId(session)) {
hidesFromObjCClassId -> { hidesFromObjCClassId -> {
@@ -18,6 +18,7 @@ import org.jetbrains.kotlin.fir.containingClassLookupTag
import org.jetbrains.kotlin.fir.declarations.FirClass import org.jetbrains.kotlin.fir.declarations.FirClass
import org.jetbrains.kotlin.fir.declarations.FirDeclaration import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.declarations.toAnnotationClassId 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.FirAnnotation
import org.jetbrains.kotlin.fir.expressions.unexpandedConeClassLikeType import org.jetbrains.kotlin.fir.expressions.unexpandedConeClassLikeType
import org.jetbrains.kotlin.fir.isIntersectionOverride import org.jetbrains.kotlin.fir.isIntersectionOverride
@@ -83,8 +84,7 @@ object FirNativeObjCRefinementOverridesChecker : FirClassChecker() {
var hasObjC = false var hasObjC = false
var hasSwift = false var hasSwift = false
for (annotation in resolvedAnnotationsWithClassIds) { for (annotation in resolvedAnnotationsWithClassIds) {
val metaAnnotations = annotation.unexpandedConeClassLikeType?.lookupTag val metaAnnotations = annotation.toAnnotationClassLikeSymbol(session)?.resolvedAnnotationsWithClassIds.orEmpty()
?.toSymbol(session)?.resolvedAnnotationsWithClassIds.orEmpty()
for (metaAnnotation in metaAnnotations) { for (metaAnnotation in metaAnnotations) {
when (metaAnnotation.toAnnotationClassId(session)) { when (metaAnnotation.toAnnotationClassId(session)) {
hidesFromObjCClassId -> { hidesFromObjCClassId -> {
@@ -58,7 +58,9 @@ annotation class MyRefinedAnnotationC
@Retention(AnnotationRetention.BINARY) @Retention(AnnotationRetention.BINARY)
annotation class MyRefinedAnnotationD annotation class MyRefinedAnnotationD
@HiddenFromObjC typealias HFOC = HiddenFromObjC
@HFOC
<!REDUNDANT_SWIFT_REFINEMENT!>@ShouldRefineInSwift<!> <!REDUNDANT_SWIFT_REFINEMENT!>@ShouldRefineInSwift<!>
var refinedProperty: Int = 0 var refinedProperty: Int = 0
@@ -92,7 +94,7 @@ interface InterfaceB {
val barA: Int val barA: Int
@ShouldRefineInSwift @ShouldRefineInSwift
val barB: Int val barB: Int
@HiddenFromObjC @HFOC
fun fooA() fun fooA()
@HiddenFromObjC @HiddenFromObjC
fun fooB() fun fooB()
@@ -1,6 +1,6 @@
package 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 @kotlin.native.ShouldRefineInSwift @plugin.PluginShouldRefineInSwift public fun multipleMixedRefinementsFunction(): kotlin.Unit
@kotlin.native.HiddenFromObjC @plugin.PluginHiddenFromObjC public fun multipleObjCRefinementsFunction(): kotlin.Unit @kotlin.native.HiddenFromObjC @plugin.PluginHiddenFromObjC public fun multipleObjCRefinementsFunction(): kotlin.Unit
@kotlin.native.ShouldRefineInSwift @plugin.PluginShouldRefineInSwift public fun multipleSwiftRefinementsFunction(): 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 public abstract val barA: kotlin.Int
@kotlin.native.ShouldRefineInSwift public abstract val barB: 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 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 @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 hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String 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 hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
public typealias HFOC = kotlin.native.HiddenFromObjC
package kotlin { package kotlin {