[FIR] Add origin field to FirDeclaration

This commit is contained in:
Dmitriy Novozhilov
2020-04-30 13:44:38 +03:00
parent 7a369b3a6a
commit e515b1c823
77 changed files with 210 additions and 7 deletions
@@ -54,6 +54,8 @@ class FirJavaClass @FirImplementationDetail internal constructor(
symbol.bind(this)
}
override val origin: FirDeclarationOrigin
get() = FirDeclarationOrigin.Java
override val companionObject: FirRegularClass?
get() = null
@@ -179,6 +181,13 @@ internal class FirJavaClassBuilder : AbstractFirRegularClassBuilder, FirAnnotati
set(value) {
throw IllegalStateException()
}
@Deprecated("Modification of 'origin' has no impact for FirJavaClassBuilder", level = DeprecationLevel.HIDDEN)
override var origin: FirDeclarationOrigin
get() = throw IllegalStateException()
set(value) {
throw IllegalStateException()
}
}
internal inline fun buildJavaClass(init: FirJavaClassBuilder.() -> Unit): FirJavaClass {
@@ -51,6 +51,9 @@ class FirJavaConstructor @FirImplementationDetail constructor(
override val body: FirBlock?
get() = null
override val origin: FirDeclarationOrigin
get() = FirDeclarationOrigin.Java
override val controlFlowGraphReference: FirControlFlowGraphReference get() = FirEmptyControlFlowGraphReference
override fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirJavaConstructor {
@@ -185,6 +188,13 @@ class FirJavaConstructorBuilder : FirConstructorBuilder() {
set(value) {
throw IllegalStateException()
}
@Deprecated("Modification of 'origin' has no impact for FirJavaConstructorBuilder", level = DeprecationLevel.HIDDEN)
override var origin: FirDeclarationOrigin
get() = throw IllegalStateException()
set(value) {
throw IllegalStateException()
}
}
inline fun buildJavaConstructor(init: FirJavaConstructorBuilder.() -> Unit): FirJavaConstructor {
@@ -53,6 +53,9 @@ class FirJavaField @FirImplementationDetail constructor(
override val getter: FirPropertyAccessor? get() = null
override val setter: FirPropertyAccessor? get() = null
override val origin: FirDeclarationOrigin
get() = FirDeclarationOrigin.Java
override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirField {
returnTypeRef = returnTypeRef.transformSingle(transformer, data)
return this
@@ -160,6 +163,13 @@ internal class FirJavaFieldBuilder : FirFieldBuilder() {
isEnumEntry
)
}
@Deprecated("Modification of 'origin' has no impact for FirJavaFieldBuilder", level = DeprecationLevel.HIDDEN)
override var origin: FirDeclarationOrigin
get() = throw IllegalStateException()
set(value) {
throw IllegalStateException()
}
}
@OptIn(ExperimentalContracts::class)
@@ -58,6 +58,7 @@ class FirJavaMethod @FirImplementationDetail constructor(
source,
session,
resolvePhase,
FirDeclarationOrigin.Java,
returnTypeRef,
receiverTypeRef,
valueParameters,
@@ -82,6 +83,13 @@ class FirJavaMethodBuilder : FirSimpleFunctionBuilder() {
var isStatic: Boolean by Delegates.notNull()
override var resolvePhase: FirResolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
@Deprecated("Modification of 'origin' has no impact for FirJavaFunctionBuilder", level = DeprecationLevel.HIDDEN)
override var origin: FirDeclarationOrigin
get() = throw IllegalStateException()
set(value) {
throw IllegalStateException()
}
@OptIn(FirImplementationDetail::class)
override fun build(): FirJavaMethod {
val status = FirDeclarationStatusImpl(visibility, modality).apply {
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.fir.FirImplementationDetail
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.declarations.builder.FirValueParameterBuilder
@@ -36,6 +37,7 @@ class FirJavaValueParameter @FirImplementationDetail constructor(
source,
session,
resolvePhase,
FirDeclarationOrigin.Java,
returnTypeRef,
name,
symbol,
@@ -100,6 +102,12 @@ class FirJavaValueParameterBuilder : FirValueParameterBuilder() {
throw IllegalStateException()
}
@Deprecated("Modification of 'origin' has no impact for FirJavaValueParameterBuilder", level = DeprecationLevel.HIDDEN)
override var origin: FirDeclarationOrigin
get() = throw IllegalStateException()
set(value) {
throw IllegalStateException()
}
}
inline fun buildJavaValueParameter(init: FirJavaValueParameterBuilder.() -> Unit): FirJavaValueParameter {