[FIR] Add two kinds of Java origin to distinguish source and library declarations
This commit is contained in:
committed by
teamcity
parent
26df9d74e8
commit
fb57e1ecd5
+1
-1
@@ -50,7 +50,7 @@ internal tailrec fun FirDeclaration.ktSymbolOrigin(): KtSymbolOrigin = when (ori
|
|||||||
}
|
}
|
||||||
FirDeclarationOrigin.Precompiled -> KtSymbolOrigin.SOURCE
|
FirDeclarationOrigin.Precompiled -> KtSymbolOrigin.SOURCE
|
||||||
FirDeclarationOrigin.Library, FirDeclarationOrigin.BuiltIns -> KtSymbolOrigin.LIBRARY
|
FirDeclarationOrigin.Library, FirDeclarationOrigin.BuiltIns -> KtSymbolOrigin.LIBRARY
|
||||||
FirDeclarationOrigin.Java -> KtSymbolOrigin.JAVA
|
is FirDeclarationOrigin.Java -> KtSymbolOrigin.JAVA
|
||||||
FirDeclarationOrigin.SamConstructor -> KtSymbolOrigin.SAM_CONSTRUCTOR
|
FirDeclarationOrigin.SamConstructor -> KtSymbolOrigin.SAM_CONSTRUCTOR
|
||||||
FirDeclarationOrigin.Enhancement -> KtSymbolOrigin.JAVA
|
FirDeclarationOrigin.Enhancement -> KtSymbolOrigin.JAVA
|
||||||
FirDeclarationOrigin.IntersectionOverride -> KtSymbolOrigin.INTERSECTION_OVERRIDE
|
FirDeclarationOrigin.IntersectionOverride -> KtSymbolOrigin.INTERSECTION_OVERRIDE
|
||||||
|
|||||||
+1
-1
@@ -82,7 +82,7 @@ internal fun FirCallableSymbol<*>.computeImportableName(useSiteSession: FirSessi
|
|||||||
val containingClass = getContainingClassSymbol(useSiteSession) ?: return null
|
val containingClass = getContainingClassSymbol(useSiteSession) ?: return null
|
||||||
|
|
||||||
// Java static members, enums, and object members can be imported
|
// Java static members, enums, and object members can be imported
|
||||||
val canBeImported = containingClass.origin == FirDeclarationOrigin.Java ||
|
val canBeImported = containingClass.origin is FirDeclarationOrigin.Java ||
|
||||||
containingClass.classKind == ClassKind.ENUM_CLASS ||
|
containingClass.classKind == ClassKind.ENUM_CLASS ||
|
||||||
containingClass.classKind == ClassKind.OBJECT
|
containingClass.classKind == ClassKind.OBJECT
|
||||||
|
|
||||||
|
|||||||
Vendored
+4
-4
@@ -1,13 +1,13 @@
|
|||||||
C:
|
C:
|
||||||
[Java]: public open field x: R|kotlin/Int| from Java enhancement scope for /C [id: 0]
|
[Java(Source)]: public open field x: R|kotlin/Int| from Java enhancement scope for /C [id: 0]
|
||||||
[Java]: private open field y: R|kotlin/Int| from Java enhancement scope for /C [id: 0]
|
[Java(Source)]: private open field y: R|kotlin/Int| from Java enhancement scope for /C [id: 0]
|
||||||
|
|
||||||
D:
|
D:
|
||||||
[Java]: public open field x: R|kotlin/Int| from Java enhancement scope for /D [id: 0]
|
[Java(Source)]: public open field x: R|kotlin/Int| from Java enhancement scope for /D [id: 0]
|
||||||
[IntersectionOverride]: public abstract val x: R|kotlin/Int| from Java enhancement scope for /D [id: 0]
|
[IntersectionOverride]: public abstract val x: R|kotlin/Int| from Java enhancement scope for /D [id: 0]
|
||||||
[Source]: public abstract val x: R|kotlin/Int| from Use site scope of /A [id: 1]
|
[Source]: public abstract val x: R|kotlin/Int| from Use site scope of /A [id: 1]
|
||||||
[Source]: public abstract val x: R|kotlin/String| from Use site scope of /B [id: 2]
|
[Source]: public abstract val x: R|kotlin/String| from Use site scope of /B [id: 2]
|
||||||
[Java]: private open field y: R|kotlin/Int| from Java enhancement scope for /D [id: 0]
|
[Java(Source)]: private open field y: R|kotlin/Int| from Java enhancement scope for /D [id: 0]
|
||||||
[Synthetic]: public abstract val y: R|kotlin/Int| from Java enhancement scope for /D [id: 0]
|
[Synthetic]: public abstract val y: R|kotlin/Int| from Java enhancement scope for /D [id: 0]
|
||||||
[Source]: public abstract val y: R|kotlin/Int| from Use site scope of /A [id: 1]
|
[Source]: public abstract val y: R|kotlin/Int| from Use site scope of /A [id: 1]
|
||||||
[Source]: public abstract val y: R|kotlin/Int| from Use site scope of /B [id: 2]
|
[Source]: public abstract val y: R|kotlin/Int| from Use site scope of /B [id: 2]
|
||||||
|
|||||||
+2
-2
@@ -39,7 +39,7 @@ object FirInterfaceDefaultMethodCallChecker : FirQualifiedAccessExpressionChecke
|
|||||||
var typeSymbol: FirRegularClassSymbol? = null
|
var typeSymbol: FirRegularClassSymbol? = null
|
||||||
if (!supportsDefaults && symbol.isStatic) {
|
if (!supportsDefaults && symbol.isStatic) {
|
||||||
typeSymbol = getTypeSymbol() ?: return
|
typeSymbol = getTypeSymbol() ?: return
|
||||||
if (typeSymbol.isInterface && typeSymbol.origin == FirDeclarationOrigin.Java) {
|
if (typeSymbol.isInterface && typeSymbol.origin is FirDeclarationOrigin.Java) {
|
||||||
reporter.reportOn(expression.source, FirJvmErrors.INTERFACE_STATIC_METHOD_CALL_FROM_JAVA6_TARGET, context)
|
reporter.reportOn(expression.source, FirJvmErrors.INTERFACE_STATIC_METHOD_CALL_FROM_JAVA6_TARGET, context)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -55,7 +55,7 @@ object FirInterfaceDefaultMethodCallChecker : FirQualifiedAccessExpressionChecke
|
|||||||
if (typeSymbol == null) typeSymbol = getTypeSymbol() ?: return
|
if (typeSymbol == null) typeSymbol = getTypeSymbol() ?: return
|
||||||
|
|
||||||
val jvmDefaultMode = context.session.jvmDefaultModeState
|
val jvmDefaultMode = context.session.jvmDefaultModeState
|
||||||
if (typeSymbol.isInterface && (typeSymbol.origin == FirDeclarationOrigin.Java || symbol.isCompiledToJvmDefault(jvmDefaultMode))) {
|
if (typeSymbol.isInterface && (typeSymbol.origin is FirDeclarationOrigin.Java || symbol.isCompiledToJvmDefault(jvmDefaultMode))) {
|
||||||
if (containingDeclaration.isInterface) {
|
if (containingDeclaration.isInterface) {
|
||||||
val containingMember = context.findContainingMember()?.symbol
|
val containingMember = context.findContainingMember()?.symbol
|
||||||
if (containingMember?.isCompiledToJvmDefault(jvmDefaultMode) == false) {
|
if (containingMember?.isCompiledToJvmDefault(jvmDefaultMode) == false) {
|
||||||
|
|||||||
+1
-1
@@ -35,7 +35,7 @@ object FirJavaAnnotationsChecker : FirAnnotationChecker() {
|
|||||||
override fun check(expression: FirAnnotation, context: CheckerContext, reporter: DiagnosticReporter) {
|
override fun check(expression: FirAnnotation, context: CheckerContext, reporter: DiagnosticReporter) {
|
||||||
if (context.containingDeclarations.lastOrNull()?.source?.kind != KtRealSourceElementKind) return
|
if (context.containingDeclarations.lastOrNull()?.source?.kind != KtRealSourceElementKind) return
|
||||||
val callableSymbol = expression.annotationTypeRef.toRegularClassSymbol(context.session)
|
val callableSymbol = expression.annotationTypeRef.toRegularClassSymbol(context.session)
|
||||||
if (callableSymbol?.origin != FirDeclarationOrigin.Java) return
|
if (callableSymbol?.origin !is FirDeclarationOrigin.Java) return
|
||||||
|
|
||||||
val lookupTag = expression.annotationTypeRef.coneTypeSafe<ConeClassLikeType>()?.lookupTag ?: return
|
val lookupTag = expression.annotationTypeRef.coneTypeSafe<ConeClassLikeType>()?.lookupTag ?: return
|
||||||
javaToKotlinNameMap[lookupTag.classId]?.let { betterName ->
|
javaToKotlinNameMap[lookupTag.classId]?.let { betterName ->
|
||||||
|
|||||||
+1
-1
@@ -127,7 +127,7 @@ fun FirClassLikeSymbol<*>.containsRepeatableAnnotation(session: FirSession): Boo
|
|||||||
getAnnotationByClassId(StandardClassIds.Annotations.JvmRepeatable) != null
|
getAnnotationByClassId(StandardClassIds.Annotations.JvmRepeatable) != null
|
||||||
) {
|
) {
|
||||||
return session.languageVersionSettings.supportsFeature(LanguageFeature.RepeatableAnnotations) ||
|
return session.languageVersionSettings.supportsFeature(LanguageFeature.RepeatableAnnotations) ||
|
||||||
getAnnotationRetention() == AnnotationRetention.SOURCE && origin == FirDeclarationOrigin.Java
|
getAnnotationRetention() == AnnotationRetention.SOURCE && origin is FirDeclarationOrigin.Java
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -43,7 +43,7 @@ object FirSealedSupertypeChecker : FirClassChecker() {
|
|||||||
val superClass = context.session.symbolProvider.getClassLikeSymbolByClassId(superClassId) as? FirRegularClassSymbol ?: continue
|
val superClass = context.session.symbolProvider.getClassLikeSymbolByClassId(superClassId) as? FirRegularClassSymbol ?: continue
|
||||||
|
|
||||||
if (!superClass.isSealed) continue
|
if (!superClass.isSealed) continue
|
||||||
if (superClass.origin == FirDeclarationOrigin.Java) {
|
if (superClass.origin is FirDeclarationOrigin.Java) {
|
||||||
reporter.reportOn(superTypeRef.source, FirErrors.CLASS_INHERITS_JAVA_SEALED_CLASS, context)
|
reporter.reportOn(superTypeRef.source, FirErrors.CLASS_INHERITS_JAVA_SEALED_CLASS, context)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -171,7 +171,7 @@ class Fir2IrLazyClass(
|
|||||||
// TODO we also come here for all deserialized / enhanced static enum members (with declaration.source == null).
|
// TODO we also come here for all deserialized / enhanced static enum members (with declaration.source == null).
|
||||||
// For such members we currently can't tell whether they are compiler-generated methods or not.
|
// For such members we currently can't tell whether they are compiler-generated methods or not.
|
||||||
// Note: we must drop declarations from Java here to avoid FirJavaTypeRefs inside
|
// Note: we must drop declarations from Java here to avoid FirJavaTypeRefs inside
|
||||||
if (declaration.source == null && declaration.origin != FirDeclarationOrigin.Java ||
|
if (declaration.source == null && declaration.origin !is FirDeclarationOrigin.Java ||
|
||||||
declaration.source?.kind == KtFakeSourceElementKind.EnumGeneratedDeclaration
|
declaration.source?.kind == KtFakeSourceElementKind.EnumGeneratedDeclaration
|
||||||
) {
|
) {
|
||||||
result += declarationStorage.getIrFunctionSymbol(declaration.symbol, forceTopLevelPrivate = isTopLevelPrivate).owner
|
result += declarationStorage.getIrFunctionSymbol(declaration.symbol, forceTopLevelPrivate = isTopLevelPrivate).owner
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ abstract class FirJavaFacade(
|
|||||||
): FirTypeParameter {
|
): FirTypeParameter {
|
||||||
return buildTypeParameter {
|
return buildTypeParameter {
|
||||||
this.moduleData = moduleData
|
this.moduleData = moduleData
|
||||||
origin = FirDeclarationOrigin.Java
|
origin = javaOrigin(isFromSource)
|
||||||
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
|
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
|
||||||
name = this@toFirTypeParameter.name
|
name = this@toFirTypeParameter.name
|
||||||
symbol = FirTypeParameterSymbol()
|
symbol = FirTypeParameterSymbol()
|
||||||
@@ -240,6 +240,7 @@ abstract class FirJavaFacade(
|
|||||||
this.moduleData = moduleData
|
this.moduleData = moduleData
|
||||||
symbol = classSymbol
|
symbol = classSymbol
|
||||||
name = javaClass.name
|
name = javaClass.name
|
||||||
|
isFromSource = javaClass.isFromSource
|
||||||
val visibility = javaClass.visibility
|
val visibility = javaClass.visibility
|
||||||
this@buildJavaClass.visibility = visibility
|
this@buildJavaClass.visibility = visibility
|
||||||
classKind = javaClass.classKind
|
classKind = javaClass.classKind
|
||||||
@@ -356,7 +357,7 @@ abstract class FirJavaFacade(
|
|||||||
if (classIsAnnotation) {
|
if (classIsAnnotation) {
|
||||||
declarations +=
|
declarations +=
|
||||||
buildConstructorForAnnotationClass(
|
buildConstructorForAnnotationClass(
|
||||||
classSource = (javaClass as? JavaElementImpl<*>)?.psi?.toKtPsiSourceElement(KtFakeSourceElementKind.ImplicitConstructor) as? KtFakeSourceElement,
|
javaClass,
|
||||||
constructorId = constructorId,
|
constructorId = constructorId,
|
||||||
ownerClassBuilder = this,
|
ownerClassBuilder = this,
|
||||||
valueParametersForAnnotationConstructor = valueParametersForAnnotationConstructor,
|
valueParametersForAnnotationConstructor = valueParametersForAnnotationConstructor,
|
||||||
@@ -412,7 +413,7 @@ abstract class FirJavaFacade(
|
|||||||
}
|
}
|
||||||
returnTypeRef = returnType.toFirJavaTypeRef(session, javaTypeParameterStack)
|
returnTypeRef = returnType.toFirJavaTypeRef(session, javaTypeParameterStack)
|
||||||
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
|
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
|
||||||
origin = FirDeclarationOrigin.Java
|
origin = javaOrigin(javaField.isFromSource)
|
||||||
// TODO: check if this works properly with annotations that take the enum class as an argument
|
// TODO: check if this works properly with annotations that take the enum class as an argument
|
||||||
annotations.addFromJava(session, javaField, javaTypeParameterStack)
|
annotations.addFromJava(session, javaField, javaTypeParameterStack)
|
||||||
}.apply {
|
}.apply {
|
||||||
@@ -423,6 +424,7 @@ abstract class FirJavaFacade(
|
|||||||
this.moduleData = moduleData
|
this.moduleData = moduleData
|
||||||
symbol = FirFieldSymbol(fieldId)
|
symbol = FirFieldSymbol(fieldId)
|
||||||
name = fieldName
|
name = fieldName
|
||||||
|
isFromSource = javaField.isFromSource
|
||||||
status = FirResolvedDeclarationStatusImpl(
|
status = FirResolvedDeclarationStatusImpl(
|
||||||
javaField.visibility,
|
javaField.visibility,
|
||||||
javaField.modality,
|
javaField.modality,
|
||||||
@@ -473,6 +475,7 @@ abstract class FirJavaFacade(
|
|||||||
source = (javaMethod as? JavaElementImpl<*>)?.psi?.toKtPsiSourceElement()
|
source = (javaMethod as? JavaElementImpl<*>)?.psi?.toKtPsiSourceElement()
|
||||||
symbol = methodSymbol
|
symbol = methodSymbol
|
||||||
name = methodName
|
name = methodName
|
||||||
|
isFromSource = javaMethod.isFromSource
|
||||||
returnTypeRef = returnType.toFirJavaTypeRef(session, javaTypeParameterStack)
|
returnTypeRef = returnType.toFirJavaTypeRef(session, javaTypeParameterStack)
|
||||||
isStatic = javaMethod.isStatic
|
isStatic = javaMethod.isStatic
|
||||||
typeParameters += javaMethod.typeParameters.convertTypeParameters(javaTypeParameterStack, methodSymbol, moduleData)
|
typeParameters += javaMethod.typeParameters.convertTypeParameters(javaTypeParameterStack, methodSymbol, moduleData)
|
||||||
@@ -518,6 +521,7 @@ abstract class FirJavaFacade(
|
|||||||
source = (javaMethod as? JavaElementImpl<*>)?.psi
|
source = (javaMethod as? JavaElementImpl<*>)?.psi
|
||||||
?.toKtPsiSourceElement(KtFakeSourceElementKind.ImplicitJavaAnnotationConstructor)
|
?.toKtPsiSourceElement(KtFakeSourceElementKind.ImplicitJavaAnnotationConstructor)
|
||||||
this.moduleData = moduleData
|
this.moduleData = moduleData
|
||||||
|
isFromSource = javaMethod.isFromSource
|
||||||
returnTypeRef = firJavaMethod.returnTypeRef
|
returnTypeRef = firJavaMethod.returnTypeRef
|
||||||
name = javaMethod.name
|
name = javaMethod.name
|
||||||
isVararg = javaMethod.returnType is JavaArrayType && javaMethod.name == VALUE_METHOD_NAME
|
isVararg = javaMethod.returnType is JavaArrayType && javaMethod.name == VALUE_METHOD_NAME
|
||||||
@@ -538,6 +542,7 @@ abstract class FirJavaFacade(
|
|||||||
return buildJavaConstructor {
|
return buildJavaConstructor {
|
||||||
source = (javaConstructor as? JavaElementImpl<*>)?.psi?.toKtPsiSourceElement()
|
source = (javaConstructor as? JavaElementImpl<*>)?.psi?.toKtPsiSourceElement()
|
||||||
this.moduleData = moduleData
|
this.moduleData = moduleData
|
||||||
|
isFromSource = javaClass.isFromSource
|
||||||
symbol = constructorSymbol
|
symbol = constructorSymbol
|
||||||
isInner = javaClass.outerClass != null && !javaClass.isStatic
|
isInner = javaClass.outerClass != null && !javaClass.isStatic
|
||||||
val isThisInner = this.isInner
|
val isThisInner = this.isInner
|
||||||
@@ -575,15 +580,18 @@ abstract class FirJavaFacade(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun buildConstructorForAnnotationClass(
|
private fun buildConstructorForAnnotationClass(
|
||||||
classSource: KtFakeSourceElement?,
|
javaClass: JavaClass,
|
||||||
constructorId: CallableId,
|
constructorId: CallableId,
|
||||||
ownerClassBuilder: FirJavaClassBuilder,
|
ownerClassBuilder: FirJavaClassBuilder,
|
||||||
valueParametersForAnnotationConstructor: ValueParametersForAnnotationConstructor,
|
valueParametersForAnnotationConstructor: ValueParametersForAnnotationConstructor,
|
||||||
moduleData: FirModuleData,
|
moduleData: FirModuleData,
|
||||||
): FirJavaConstructor {
|
): FirJavaConstructor {
|
||||||
return buildJavaConstructor {
|
return buildJavaConstructor {
|
||||||
source = classSource
|
source = (javaClass as? JavaElementImpl<*>)
|
||||||
|
?.psi
|
||||||
|
?.toKtPsiSourceElement(KtFakeSourceElementKind.ImplicitConstructor) as? KtFakeSourceElement
|
||||||
this.moduleData = moduleData
|
this.moduleData = moduleData
|
||||||
|
isFromSource = javaClass.isFromSource
|
||||||
symbol = FirConstructorSymbol(constructorId)
|
symbol = FirConstructorSymbol(constructorId)
|
||||||
status = FirResolvedDeclarationStatusImpl(Visibilities.Public, Modality.FINAL, EffectiveVisibility.Public)
|
status = FirResolvedDeclarationStatusImpl(Visibilities.Public, Modality.FINAL, EffectiveVisibility.Public)
|
||||||
returnTypeRef = buildResolvedTypeRef {
|
returnTypeRef = buildResolvedTypeRef {
|
||||||
|
|||||||
@@ -29,13 +29,13 @@ import org.jetbrains.kotlin.load.java.structure.JavaPackage
|
|||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import kotlin.properties.Delegates
|
import kotlin.properties.Delegates
|
||||||
|
|
||||||
@OptIn(FirImplementationDetail::class)
|
|
||||||
class FirJavaClass @FirImplementationDetail internal constructor(
|
class FirJavaClass @FirImplementationDetail internal constructor(
|
||||||
override val source: KtSourceElement?,
|
override val source: KtSourceElement?,
|
||||||
override val moduleData: FirModuleData,
|
override val moduleData: FirModuleData,
|
||||||
@Volatile
|
@Volatile
|
||||||
override var resolvePhase: FirResolvePhase,
|
override var resolvePhase: FirResolvePhase,
|
||||||
override val name: Name,
|
override val name: Name,
|
||||||
|
override val origin: FirDeclarationOrigin.Java,
|
||||||
override val annotations: MutableList<FirAnnotation>,
|
override val annotations: MutableList<FirAnnotation>,
|
||||||
override var status: FirDeclarationStatus,
|
override var status: FirDeclarationStatus,
|
||||||
override val classKind: ClassKind,
|
override val classKind: ClassKind,
|
||||||
@@ -59,9 +59,6 @@ class FirJavaClass @FirImplementationDetail internal constructor(
|
|||||||
symbol.bind(this)
|
symbol.bind(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
override val origin: FirDeclarationOrigin
|
|
||||||
get() = FirDeclarationOrigin.Java
|
|
||||||
|
|
||||||
override val attributes: FirDeclarationAttributes = FirDeclarationAttributes()
|
override val attributes: FirDeclarationAttributes = FirDeclarationAttributes()
|
||||||
|
|
||||||
override fun replaceSuperTypeRefs(newSuperTypeRefs: List<FirTypeRef>) {
|
override fun replaceSuperTypeRefs(newSuperTypeRefs: List<FirTypeRef>) {
|
||||||
@@ -131,6 +128,7 @@ class FirJavaClass @FirImplementationDetail internal constructor(
|
|||||||
internal class FirJavaClassBuilder : FirRegularClassBuilder(), FirAnnotationContainerBuilder {
|
internal class FirJavaClassBuilder : FirRegularClassBuilder(), FirAnnotationContainerBuilder {
|
||||||
lateinit var visibility: Visibility
|
lateinit var visibility: Visibility
|
||||||
var modality: Modality? = null
|
var modality: Modality? = null
|
||||||
|
var isFromSource: Boolean by Delegates.notNull()
|
||||||
var isTopLevel: Boolean by Delegates.notNull()
|
var isTopLevel: Boolean by Delegates.notNull()
|
||||||
var isStatic: Boolean by Delegates.notNull()
|
var isStatic: Boolean by Delegates.notNull()
|
||||||
var isNotSam: Boolean by Delegates.notNull()
|
var isNotSam: Boolean by Delegates.notNull()
|
||||||
@@ -153,6 +151,7 @@ internal class FirJavaClassBuilder : FirRegularClassBuilder(), FirAnnotationCont
|
|||||||
moduleData,
|
moduleData,
|
||||||
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES,
|
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES,
|
||||||
name,
|
name,
|
||||||
|
origin = javaOrigin(isFromSource),
|
||||||
annotations,
|
annotations,
|
||||||
status,
|
status,
|
||||||
classKind,
|
classKind,
|
||||||
|
|||||||
+3
-3
@@ -31,6 +31,7 @@ class FirJavaConstructor @FirImplementationDetail constructor(
|
|||||||
override val source: KtSourceElement?,
|
override val source: KtSourceElement?,
|
||||||
override val moduleData: FirModuleData,
|
override val moduleData: FirModuleData,
|
||||||
override val symbol: FirConstructorSymbol,
|
override val symbol: FirConstructorSymbol,
|
||||||
|
override val origin: FirDeclarationOrigin.Java,
|
||||||
override val isPrimary: Boolean,
|
override val isPrimary: Boolean,
|
||||||
override var returnTypeRef: FirTypeRef,
|
override var returnTypeRef: FirTypeRef,
|
||||||
override val valueParameters: MutableList<FirValueParameter>,
|
override val valueParameters: MutableList<FirValueParameter>,
|
||||||
@@ -54,9 +55,6 @@ class FirJavaConstructor @FirImplementationDetail constructor(
|
|||||||
override val body: FirBlock?
|
override val body: FirBlock?
|
||||||
get() = null
|
get() = null
|
||||||
|
|
||||||
override val origin: FirDeclarationOrigin
|
|
||||||
get() = FirDeclarationOrigin.Java
|
|
||||||
|
|
||||||
override val attributes: FirDeclarationAttributes = FirDeclarationAttributes()
|
override val attributes: FirDeclarationAttributes = FirDeclarationAttributes()
|
||||||
|
|
||||||
override val controlFlowGraphReference: FirControlFlowGraphReference? get() = null
|
override val controlFlowGraphReference: FirControlFlowGraphReference? get() = null
|
||||||
@@ -156,6 +154,7 @@ class FirJavaConstructorBuilder : FirConstructorBuilder() {
|
|||||||
lateinit var visibility: Visibility
|
lateinit var visibility: Visibility
|
||||||
var isInner: Boolean by Delegates.notNull()
|
var isInner: Boolean by Delegates.notNull()
|
||||||
var isPrimary: Boolean by Delegates.notNull()
|
var isPrimary: Boolean by Delegates.notNull()
|
||||||
|
var isFromSource: Boolean by Delegates.notNull()
|
||||||
lateinit var annotationBuilder: () -> List<FirAnnotation>
|
lateinit var annotationBuilder: () -> List<FirAnnotation>
|
||||||
|
|
||||||
@OptIn(FirImplementationDetail::class)
|
@OptIn(FirImplementationDetail::class)
|
||||||
@@ -164,6 +163,7 @@ class FirJavaConstructorBuilder : FirConstructorBuilder() {
|
|||||||
source,
|
source,
|
||||||
moduleData,
|
moduleData,
|
||||||
symbol,
|
symbol,
|
||||||
|
origin = javaOrigin(isFromSource),
|
||||||
isPrimary,
|
isPrimary,
|
||||||
returnTypeRef,
|
returnTypeRef,
|
||||||
valueParameters,
|
valueParameters,
|
||||||
|
|||||||
@@ -31,10 +31,10 @@ import kotlin.contracts.InvocationKind
|
|||||||
import kotlin.contracts.contract
|
import kotlin.contracts.contract
|
||||||
import kotlin.properties.Delegates
|
import kotlin.properties.Delegates
|
||||||
|
|
||||||
@OptIn(FirImplementationDetail::class)
|
|
||||||
class FirJavaField @FirImplementationDetail constructor(
|
class FirJavaField @FirImplementationDetail constructor(
|
||||||
override val source: KtSourceElement?,
|
override val source: KtSourceElement?,
|
||||||
override val moduleData: FirModuleData,
|
override val moduleData: FirModuleData,
|
||||||
|
override val origin: FirDeclarationOrigin.Java,
|
||||||
override val symbol: FirFieldSymbol,
|
override val symbol: FirFieldSymbol,
|
||||||
override val name: Name,
|
override val name: Name,
|
||||||
@Volatile
|
@Volatile
|
||||||
@@ -58,8 +58,6 @@ class FirJavaField @FirImplementationDetail constructor(
|
|||||||
override val setter: FirPropertyAccessor? get() = null
|
override val setter: FirPropertyAccessor? get() = null
|
||||||
override val backingField: FirBackingField? = null
|
override val backingField: FirBackingField? = null
|
||||||
override val controlFlowGraphReference: FirControlFlowGraphReference? get() = null
|
override val controlFlowGraphReference: FirControlFlowGraphReference? get() = null
|
||||||
override val origin: FirDeclarationOrigin
|
|
||||||
get() = FirDeclarationOrigin.Java
|
|
||||||
|
|
||||||
override val annotations: List<FirAnnotation> by lazy { annotationBuilder() }
|
override val annotations: List<FirAnnotation> by lazy { annotationBuilder() }
|
||||||
|
|
||||||
@@ -170,6 +168,7 @@ internal class FirJavaFieldBuilder : FirFieldBuilder() {
|
|||||||
var modality: Modality? = null
|
var modality: Modality? = null
|
||||||
lateinit var visibility: Visibility
|
lateinit var visibility: Visibility
|
||||||
var isStatic: Boolean by Delegates.notNull()
|
var isStatic: Boolean by Delegates.notNull()
|
||||||
|
var isFromSource: Boolean by Delegates.notNull()
|
||||||
lateinit var annotationBuilder: () -> List<FirAnnotation>
|
lateinit var annotationBuilder: () -> List<FirAnnotation>
|
||||||
|
|
||||||
override var resolvePhase: FirResolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
|
override var resolvePhase: FirResolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
|
||||||
@@ -179,6 +178,7 @@ internal class FirJavaFieldBuilder : FirFieldBuilder() {
|
|||||||
return FirJavaField(
|
return FirJavaField(
|
||||||
source,
|
source,
|
||||||
moduleData,
|
moduleData,
|
||||||
|
origin = javaOrigin(isFromSource),
|
||||||
symbol,
|
symbol,
|
||||||
name,
|
name,
|
||||||
resolvePhase,
|
resolvePhase,
|
||||||
|
|||||||
@@ -46,10 +46,10 @@ import kotlin.contracts.InvocationKind
|
|||||||
import kotlin.contracts.contract
|
import kotlin.contracts.contract
|
||||||
import kotlin.properties.Delegates
|
import kotlin.properties.Delegates
|
||||||
|
|
||||||
@OptIn(FirImplementationDetail::class)
|
|
||||||
class FirJavaMethod @FirImplementationDetail constructor(
|
class FirJavaMethod @FirImplementationDetail constructor(
|
||||||
override val source: KtSourceElement?,
|
override val source: KtSourceElement?,
|
||||||
override val moduleData: FirModuleData,
|
override val moduleData: FirModuleData,
|
||||||
|
override val origin: FirDeclarationOrigin.Java,
|
||||||
@Volatile
|
@Volatile
|
||||||
override var resolvePhase: FirResolvePhase,
|
override var resolvePhase: FirResolvePhase,
|
||||||
override val attributes: FirDeclarationAttributes,
|
override val attributes: FirDeclarationAttributes,
|
||||||
@@ -75,9 +75,6 @@ class FirJavaMethod @FirImplementationDetail constructor(
|
|||||||
override val containerSource: DeserializedContainerSource?
|
override val containerSource: DeserializedContainerSource?
|
||||||
get() = null
|
get() = null
|
||||||
|
|
||||||
override val origin: FirDeclarationOrigin
|
|
||||||
get() = FirDeclarationOrigin.Java
|
|
||||||
|
|
||||||
override val contractDescription: FirContractDescription
|
override val contractDescription: FirContractDescription
|
||||||
get() = FirEmptyContractDescription
|
get() = FirEmptyContractDescription
|
||||||
|
|
||||||
@@ -207,6 +204,7 @@ class FirJavaMethodBuilder : FirFunctionBuilder, FirTypeParametersOwnerBuilder,
|
|||||||
override val typeParameters: MutableList<FirTypeParameter> = mutableListOf()
|
override val typeParameters: MutableList<FirTypeParameter> = mutableListOf()
|
||||||
var isStatic: Boolean by Delegates.notNull()
|
var isStatic: Boolean by Delegates.notNull()
|
||||||
override var resolvePhase: FirResolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
|
override var resolvePhase: FirResolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
|
||||||
|
var isFromSource: Boolean by Delegates.notNull()
|
||||||
lateinit var annotationBuilder: () -> List<FirAnnotation>
|
lateinit var annotationBuilder: () -> List<FirAnnotation>
|
||||||
|
|
||||||
@Deprecated("Modification of 'deprecation' has no impact for FirJavaFunctionBuilder", level = DeprecationLevel.HIDDEN)
|
@Deprecated("Modification of 'deprecation' has no impact for FirJavaFunctionBuilder", level = DeprecationLevel.HIDDEN)
|
||||||
@@ -239,6 +237,7 @@ class FirJavaMethodBuilder : FirFunctionBuilder, FirTypeParametersOwnerBuilder,
|
|||||||
return FirJavaMethod(
|
return FirJavaMethod(
|
||||||
source,
|
source,
|
||||||
moduleData,
|
moduleData,
|
||||||
|
origin = javaOrigin(isFromSource),
|
||||||
resolvePhase,
|
resolvePhase,
|
||||||
attributes,
|
attributes,
|
||||||
returnTypeRef as FirJavaTypeRef,
|
returnTypeRef as FirJavaTypeRef,
|
||||||
@@ -274,6 +273,7 @@ inline fun buildJavaMethodCopy(original: FirSimpleFunction, init: FirJavaMethodB
|
|||||||
copyBuilder.dispatchReceiverType = original.dispatchReceiverType
|
copyBuilder.dispatchReceiverType = original.dispatchReceiverType
|
||||||
copyBuilder.name = original.name
|
copyBuilder.name = original.name
|
||||||
copyBuilder.symbol = original.symbol
|
copyBuilder.symbol = original.symbol
|
||||||
|
copyBuilder.isFromSource = original.origin.fromSource
|
||||||
copyBuilder.annotations.addAll(original.annotations)
|
copyBuilder.annotations.addAll(original.annotations)
|
||||||
copyBuilder.typeParameters.addAll(original.typeParameters)
|
copyBuilder.typeParameters.addAll(original.typeParameters)
|
||||||
val annotations = original.annotations
|
val annotations = original.annotations
|
||||||
|
|||||||
+6
-4
@@ -25,11 +25,13 @@ import org.jetbrains.kotlin.serialization.deserialization.descriptors.Deserializ
|
|||||||
import kotlin.contracts.ExperimentalContracts
|
import kotlin.contracts.ExperimentalContracts
|
||||||
import kotlin.contracts.InvocationKind
|
import kotlin.contracts.InvocationKind
|
||||||
import kotlin.contracts.contract
|
import kotlin.contracts.contract
|
||||||
|
import kotlin.properties.Delegates
|
||||||
|
|
||||||
@OptIn(FirImplementationDetail::class)
|
@OptIn(FirImplementationDetail::class)
|
||||||
class FirJavaValueParameter @FirImplementationDetail constructor(
|
class FirJavaValueParameter @FirImplementationDetail constructor(
|
||||||
override val source: KtSourceElement?,
|
override val source: KtSourceElement?,
|
||||||
override val moduleData: FirModuleData,
|
override val moduleData: FirModuleData,
|
||||||
|
override val origin: FirDeclarationOrigin.Java,
|
||||||
@Volatile
|
@Volatile
|
||||||
override var resolvePhase: FirResolvePhase,
|
override var resolvePhase: FirResolvePhase,
|
||||||
override val attributes: FirDeclarationAttributes,
|
override val attributes: FirDeclarationAttributes,
|
||||||
@@ -58,9 +60,6 @@ class FirJavaValueParameter @FirImplementationDetail constructor(
|
|||||||
|
|
||||||
override val annotations: List<FirAnnotation> by lazy { annotationBuilder() }
|
override val annotations: List<FirAnnotation> by lazy { annotationBuilder() }
|
||||||
|
|
||||||
override val origin: FirDeclarationOrigin
|
|
||||||
get() = FirDeclarationOrigin.Java
|
|
||||||
|
|
||||||
override val receiverTypeRef: FirTypeRef?
|
override val receiverTypeRef: FirTypeRef?
|
||||||
get() = null
|
get() = null
|
||||||
|
|
||||||
@@ -199,13 +198,15 @@ class FirJavaValueParameterBuilder {
|
|||||||
lateinit var name: Name
|
lateinit var name: Name
|
||||||
lateinit var annotationBuilder: () -> List<FirAnnotation>
|
lateinit var annotationBuilder: () -> List<FirAnnotation>
|
||||||
var defaultValue: FirExpression? = null
|
var defaultValue: FirExpression? = null
|
||||||
var isVararg: Boolean by kotlin.properties.Delegates.notNull()
|
var isVararg: Boolean by Delegates.notNull()
|
||||||
|
var isFromSource: Boolean by Delegates.notNull()
|
||||||
|
|
||||||
@OptIn(FirImplementationDetail::class)
|
@OptIn(FirImplementationDetail::class)
|
||||||
fun build(): FirJavaValueParameter {
|
fun build(): FirJavaValueParameter {
|
||||||
return FirJavaValueParameter(
|
return FirJavaValueParameter(
|
||||||
source,
|
source,
|
||||||
moduleData,
|
moduleData,
|
||||||
|
origin = javaOrigin(isFromSource),
|
||||||
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES,
|
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES,
|
||||||
attributes,
|
attributes,
|
||||||
returnTypeRef,
|
returnTypeRef,
|
||||||
@@ -231,6 +232,7 @@ inline fun buildJavaValueParameterCopy(original: FirValueParameter, init: FirJav
|
|||||||
copyBuilder.source = original.source
|
copyBuilder.source = original.source
|
||||||
copyBuilder.moduleData = original.moduleData
|
copyBuilder.moduleData = original.moduleData
|
||||||
copyBuilder.attributes = original.attributes.copy()
|
copyBuilder.attributes = original.attributes.copy()
|
||||||
|
copyBuilder.isFromSource = original.origin.fromSource
|
||||||
copyBuilder.returnTypeRef = original.returnTypeRef
|
copyBuilder.returnTypeRef = original.returnTypeRef
|
||||||
copyBuilder.name = original.name
|
copyBuilder.name = original.name
|
||||||
val annotations = original.annotations
|
val annotations = original.annotations
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.fir.java.declarations
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
||||||
|
|
||||||
|
internal fun javaOrigin(isFromSource: Boolean): FirDeclarationOrigin.Java {
|
||||||
|
return if (isFromSource) FirDeclarationOrigin.Java.Source else FirDeclarationOrigin.Java.Library
|
||||||
|
}
|
||||||
+2
-1
@@ -127,6 +127,7 @@ class FirSignatureEnhancement(
|
|||||||
this.symbol = symbol
|
this.symbol = symbol
|
||||||
this.name = name
|
this.name = name
|
||||||
returnTypeRef = newReturnTypeRef
|
returnTypeRef = newReturnTypeRef
|
||||||
|
isFromSource = original.origin.fromSource
|
||||||
|
|
||||||
// TODO: Use some kind of copy mechanism
|
// TODO: Use some kind of copy mechanism
|
||||||
visibility = firElement.visibility
|
visibility = firElement.visibility
|
||||||
@@ -550,7 +551,7 @@ private class EnhancementSignatureParts(
|
|||||||
override fun KotlinTypeMarker.isArrayOrPrimitiveArray(): Boolean = (this as ConeKotlinType).isArrayOrPrimitiveArray
|
override fun KotlinTypeMarker.isArrayOrPrimitiveArray(): Boolean = (this as ConeKotlinType).isArrayOrPrimitiveArray
|
||||||
|
|
||||||
override val TypeParameterMarker.isFromJava: Boolean
|
override val TypeParameterMarker.isFromJava: Boolean
|
||||||
get() = (this as ConeTypeParameterLookupTag).symbol.fir.origin == FirDeclarationOrigin.Java
|
get() = (this as ConeTypeParameterLookupTag).symbol.fir.origin is FirDeclarationOrigin.Java
|
||||||
}
|
}
|
||||||
|
|
||||||
class FirEnhancedSymbolsStorage(val session: FirSession) : FirSessionComponent {
|
class FirEnhancedSymbolsStorage(val session: FirSession) : FirSessionComponent {
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ internal fun JavaValueParameter.toFirValueParameter(
|
|||||||
): FirValueParameter {
|
): FirValueParameter {
|
||||||
return buildJavaValueParameter {
|
return buildJavaValueParameter {
|
||||||
source = (this@toFirValueParameter as? JavaElementImpl<*>)?.psi?.toKtPsiSourceElement()
|
source = (this@toFirValueParameter as? JavaElementImpl<*>)?.psi?.toKtPsiSourceElement()
|
||||||
|
isFromSource = this@toFirValueParameter.isFromSource
|
||||||
this.moduleData = moduleData
|
this.moduleData = moduleData
|
||||||
name = this@toFirValueParameter.name ?: Name.identifier("p$index")
|
name = this@toFirValueParameter.name ?: Name.identifier("p$index")
|
||||||
returnTypeRef = type.toFirJavaTypeRef(session, javaTypeParameterStack)
|
returnTypeRef = type.toFirJavaTypeRef(session, javaTypeParameterStack)
|
||||||
|
|||||||
@@ -510,7 +510,7 @@ fun FirFunction.getAsForbiddenNamedArgumentsTarget(session: FirSession): Forbidd
|
|||||||
// (org.jetbrains.kotlin.resolve.OverridingUtil#selectMostSpecificMember), from which the `hasStableParameterNames` status is
|
// (org.jetbrains.kotlin.resolve.OverridingUtil#selectMostSpecificMember), from which the `hasStableParameterNames` status is
|
||||||
// copied.
|
// copied.
|
||||||
FirDeclarationOrigin.IntersectionOverride -> originalForIntersectionOverrideAttr?.getAsForbiddenNamedArgumentsTarget(session)
|
FirDeclarationOrigin.IntersectionOverride -> originalForIntersectionOverrideAttr?.getAsForbiddenNamedArgumentsTarget(session)
|
||||||
FirDeclarationOrigin.Java, FirDeclarationOrigin.Enhancement -> ForbiddenNamedArgumentsTarget.NON_KOTLIN_FUNCTION
|
is FirDeclarationOrigin.Java, FirDeclarationOrigin.Enhancement -> ForbiddenNamedArgumentsTarget.NON_KOTLIN_FUNCTION
|
||||||
FirDeclarationOrigin.SamConstructor -> null
|
FirDeclarationOrigin.SamConstructor -> null
|
||||||
FirDeclarationOrigin.SubstitutionOverride -> originalForSubstitutionOverrideAttr?.getAsForbiddenNamedArgumentsTarget(session)
|
FirDeclarationOrigin.SubstitutionOverride -> originalForSubstitutionOverrideAttr?.getAsForbiddenNamedArgumentsTarget(session)
|
||||||
// referenced function of a Kotlin function type
|
// referenced function of a Kotlin function type
|
||||||
|
|||||||
+1
-3
@@ -30,7 +30,6 @@ import org.jetbrains.kotlin.fir.types.coneType
|
|||||||
import org.jetbrains.kotlin.fir.types.toSymbol
|
import org.jetbrains.kotlin.fir.types.toSymbol
|
||||||
import org.jetbrains.kotlin.fir.visitors.transformSingle
|
import org.jetbrains.kotlin.fir.visitors.transformSingle
|
||||||
|
|
||||||
@OptIn(AdapterForResolveProcessor::class)
|
|
||||||
class FirStatusResolveProcessor(
|
class FirStatusResolveProcessor(
|
||||||
session: FirSession,
|
session: FirSession,
|
||||||
scopeSession: ScopeSession
|
scopeSession: ScopeSession
|
||||||
@@ -392,9 +391,8 @@ abstract class AbstractFirStatusResolveTransformer(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@OptIn(ExperimentalStdlibApi::class)
|
|
||||||
private fun forceResolveStatusesOfClass(regularClass: FirRegularClass) {
|
private fun forceResolveStatusesOfClass(regularClass: FirRegularClass) {
|
||||||
if (regularClass.origin == FirDeclarationOrigin.Java || regularClass.origin == FirDeclarationOrigin.Precompiled) {
|
if (regularClass.origin is FirDeclarationOrigin.Java || regularClass.origin == FirDeclarationOrigin.Precompiled) {
|
||||||
/*
|
/*
|
||||||
* If regular class has no corresponding file then it is platform class,
|
* If regular class has no corresponding file then it is platform class,
|
||||||
* so we need to resolve supertypes of this class because they could
|
* so we need to resolve supertypes of this class because they could
|
||||||
|
|||||||
+12
-3
@@ -5,12 +5,21 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.fir.declarations
|
package org.jetbrains.kotlin.fir.declarations
|
||||||
|
|
||||||
sealed class FirDeclarationOrigin(private val displayName: String? = null, val fromSupertypes: Boolean = false, val generated: Boolean = false) {
|
sealed class FirDeclarationOrigin(
|
||||||
object Source : FirDeclarationOrigin()
|
private val displayName: String? = null,
|
||||||
|
val fromSupertypes: Boolean = false,
|
||||||
|
val generated: Boolean = false,
|
||||||
|
val fromSource: Boolean = false
|
||||||
|
) {
|
||||||
|
object Source : FirDeclarationOrigin(fromSource = true)
|
||||||
object Library : FirDeclarationOrigin()
|
object Library : FirDeclarationOrigin()
|
||||||
object Precompiled : FirDeclarationOrigin() // currently used for incremental compilation
|
object Precompiled : FirDeclarationOrigin() // currently used for incremental compilation
|
||||||
object BuiltIns : FirDeclarationOrigin()
|
object BuiltIns : FirDeclarationOrigin()
|
||||||
object Java : FirDeclarationOrigin()
|
sealed class Java(displayName: String, fromSource: Boolean = false) : FirDeclarationOrigin(displayName, fromSource = fromSource) {
|
||||||
|
object Source : Java("Java(Source)", fromSource = true)
|
||||||
|
object Library : Java("Java(Library)")
|
||||||
|
}
|
||||||
|
|
||||||
object Synthetic : FirDeclarationOrigin()
|
object Synthetic : FirDeclarationOrigin()
|
||||||
object DynamicScope : FirDeclarationOrigin()
|
object DynamicScope : FirDeclarationOrigin()
|
||||||
object SamConstructor : FirDeclarationOrigin()
|
object SamConstructor : FirDeclarationOrigin()
|
||||||
|
|||||||
+6
-4
@@ -47,16 +47,18 @@ val FirQualifiedAccess.referredPropertySymbol: FirPropertySymbol?
|
|||||||
}
|
}
|
||||||
|
|
||||||
inline val FirDeclaration.isJava: Boolean
|
inline val FirDeclaration.isJava: Boolean
|
||||||
get() = origin == FirDeclarationOrigin.Java
|
get() = origin is FirDeclarationOrigin.Java
|
||||||
|
inline val FirDeclaration.isJavaSource: Boolean
|
||||||
|
get() = origin == FirDeclarationOrigin.Java.Source
|
||||||
inline val FirDeclaration.isFromLibrary: Boolean
|
inline val FirDeclaration.isFromLibrary: Boolean
|
||||||
get() = origin == FirDeclarationOrigin.Library
|
get() = origin == FirDeclarationOrigin.Library || origin == FirDeclarationOrigin.Java.Library
|
||||||
inline val FirDeclaration.isPrecompiled: Boolean
|
inline val FirDeclaration.isPrecompiled: Boolean
|
||||||
get() = origin == FirDeclarationOrigin.Precompiled
|
get() = origin == FirDeclarationOrigin.Precompiled
|
||||||
inline val FirDeclaration.isSynthetic: Boolean
|
inline val FirDeclaration.isSynthetic: Boolean
|
||||||
get() = origin == FirDeclarationOrigin.Synthetic
|
get() = origin == FirDeclarationOrigin.Synthetic
|
||||||
|
|
||||||
inline val FirDeclaration.isJavaOrEnhancement: Boolean
|
inline val FirDeclaration.isJavaOrEnhancement: Boolean
|
||||||
get() = origin == FirDeclarationOrigin.Java || origin == FirDeclarationOrigin.Enhancement
|
get() = origin is FirDeclarationOrigin.Java || origin == FirDeclarationOrigin.Enhancement
|
||||||
inline val FirBasedSymbol<*>.isJavaOrEnhancement: Boolean
|
inline val FirBasedSymbol<*>.isJavaOrEnhancement: Boolean
|
||||||
get() = origin == FirDeclarationOrigin.Java || origin == FirDeclarationOrigin.Enhancement
|
get() = origin is FirDeclarationOrigin.Java || origin == FirDeclarationOrigin.Enhancement
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user