K2: fix/universalize logic to determine that member is from Java

This commit is contained in:
Mikhail Glukhikh
2022-11-10 15:12:04 +01:00
committed by Space Team
parent d35dedcb72
commit 4dc7b6dddc
15 changed files with 109 additions and 17 deletions
@@ -7,9 +7,11 @@ package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.descriptors.ClassKind
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.PrivateForInline
import org.jetbrains.kotlin.fir.declarations.utils.isInline
import org.jetbrains.kotlin.fir.resolve.fullyExpandedType
import org.jetbrains.kotlin.fir.scopes.impl.declaredMemberScope
import org.jetbrains.kotlin.fir.scopes.impl.importedFromObjectOrStaticData
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
import org.jetbrains.kotlin.fir.symbols.impl.*
import org.jetbrains.kotlin.fir.types.ConeClassLikeType
@@ -99,3 +101,18 @@ fun FirRegularClassSymbol.isInlineOrValueClass(): Boolean {
return isInline
}
@PrivateForInline
inline val FirDeclarationOrigin.isJavaOrEnhancement: Boolean
get() = this is FirDeclarationOrigin.Java || this == FirDeclarationOrigin.Enhancement
@OptIn(PrivateForInline::class)
val FirDeclaration.isJavaOrEnhancement: Boolean
get() = origin.isJavaOrEnhancement ||
(this as? FirCallableDeclaration)?.importedFromObjectOrStaticData?.original?.isJavaOrEnhancement == true
@OptIn(PrivateForInline::class)
inline val FirBasedSymbol<*>.isJavaOrEnhancement: Boolean
get() = origin.isJavaOrEnhancement ||
(fir as? FirCallableDeclaration)?.importedFromObjectOrStaticData?.original?.isJavaOrEnhancement == true
@@ -11,7 +11,6 @@ import org.jetbrains.kotlin.fir.FirAnnotationContainer
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.caches.FirCachesFactory
import org.jetbrains.kotlin.fir.declarations.utils.isJavaOrEnhancement
import org.jetbrains.kotlin.fir.expressions.*
import org.jetbrains.kotlin.fir.languageVersionSettings
import org.jetbrains.kotlin.fir.references.FirNamedReference