[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 swiftAnnotations = mutableListOf<FirAnnotation>()
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 -> {
@@ -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 -> {
@@ -58,7 +58,9 @@ annotation class MyRefinedAnnotationC
@Retention(AnnotationRetention.BINARY)
annotation class MyRefinedAnnotationD
@HiddenFromObjC
typealias HFOC = HiddenFromObjC
@HFOC
<!REDUNDANT_SWIFT_REFINEMENT!>@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()
@@ -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 {