[FIR] Introduce different synthetic origins for FIR declarations
This is needed to be able to precisely distinguish different synthetic declarations (like fields for delegates and functions for data classes) in fir2ir
This commit is contained in:
committed by
Space Team
parent
5b7b885dac
commit
69a35970eb
+11
-1
@@ -23,7 +23,17 @@ sealed class FirDeclarationOrigin(
|
||||
object Library : Java("Java(Library)")
|
||||
}
|
||||
|
||||
object Synthetic : FirDeclarationOrigin()
|
||||
sealed class Synthetic : FirDeclarationOrigin() {
|
||||
object DataClassMember : Synthetic()
|
||||
object ValueClassMember : Synthetic()
|
||||
object JavaProperty : Synthetic()
|
||||
object DelegateField : Synthetic()
|
||||
object PluginFile : Synthetic()
|
||||
object Error : Synthetic()
|
||||
object TypeAliasConstructor : Synthetic()
|
||||
object FakeFunction : Synthetic()
|
||||
object ForwardDeclaration : Synthetic()
|
||||
}
|
||||
object DynamicScope : FirDeclarationOrigin()
|
||||
object SamConstructor : FirDeclarationOrigin()
|
||||
object Enhancement : FirDeclarationOrigin()
|
||||
|
||||
+1
-1
@@ -51,7 +51,7 @@ class FirSyntheticProperty(
|
||||
get() = null
|
||||
|
||||
override val origin: FirDeclarationOrigin
|
||||
get() = FirDeclarationOrigin.Synthetic
|
||||
get() = FirDeclarationOrigin.Synthetic.JavaProperty
|
||||
|
||||
override val initializer: FirExpression?
|
||||
get() = null
|
||||
|
||||
+1
-1
@@ -34,7 +34,7 @@ class FirSyntheticPropertyAccessor(
|
||||
get() = delegate.moduleData
|
||||
|
||||
override val origin: FirDeclarationOrigin
|
||||
get() = FirDeclarationOrigin.Synthetic
|
||||
get() = FirDeclarationOrigin.Synthetic.JavaProperty
|
||||
|
||||
override val returnTypeRef: FirTypeRef
|
||||
get() = delegate.returnTypeRef
|
||||
|
||||
+1
-1
@@ -34,7 +34,7 @@ inline val FirDeclaration.isFromLibrary: Boolean
|
||||
inline val FirDeclaration.isPrecompiled: Boolean
|
||||
get() = origin == FirDeclarationOrigin.Precompiled
|
||||
inline val FirDeclaration.isSynthetic: Boolean
|
||||
get() = origin == FirDeclarationOrigin.Synthetic
|
||||
get() = origin is FirDeclarationOrigin.Synthetic
|
||||
|
||||
// NB: This function checks transitive localness. That is,
|
||||
// if a declaration `isNonLocal`, then its parent also `isNonLocal`.
|
||||
|
||||
Reference in New Issue
Block a user