[FIR] introduce FirValueParameter.containingFunctionSymbol

^KT-55034 fixed
This commit is contained in:
Ilya Kirillov
2022-07-20 16:01:48 +02:00
parent c8e3103af9
commit 7781ad67d4
39 changed files with 175 additions and 76 deletions
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirValueParameterSymbol
import org.jetbrains.kotlin.fir.types.ConeSimpleKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
@@ -49,6 +50,7 @@ abstract class FirValueParameter : FirVariable(), FirControlFlowGraphOwner {
abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
abstract override val symbol: FirValueParameterSymbol
abstract val defaultValue: FirExpression?
abstract val containingFunctionSymbol: FirFunctionSymbol<*>
abstract val isCrossinline: Boolean
abstract val isNoinline: Boolean
abstract val isVararg: Boolean
@@ -29,6 +29,7 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusIm
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirValueParameterSymbol
import org.jetbrains.kotlin.fir.types.ConeSimpleKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
@@ -64,6 +65,7 @@ class FirDefaultSetterValueParameterBuilder : FirAnnotationContainerBuilder {
override val annotations: MutableList<FirAnnotation> = mutableListOf()
lateinit var symbol: FirValueParameterSymbol
var defaultValue: FirExpression? = null
lateinit var containingFunctionSymbol: FirFunctionSymbol<*>
var isCrossinline: Boolean = false
var isNoinline: Boolean = false
var isVararg: Boolean = false
@@ -91,6 +93,7 @@ class FirDefaultSetterValueParameterBuilder : FirAnnotationContainerBuilder {
annotations,
symbol,
defaultValue,
containingFunctionSymbol,
isCrossinline,
isNoinline,
isVararg,
@@ -29,6 +29,7 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirValueParameterImpl
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirValueParameterSymbol
import org.jetbrains.kotlin.fir.types.ConeSimpleKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
@@ -58,6 +59,7 @@ open class FirValueParameterBuilder : FirAnnotationContainerBuilder {
override val annotations: MutableList<FirAnnotation> = mutableListOf()
open lateinit var symbol: FirValueParameterSymbol
open var defaultValue: FirExpression? = null
open lateinit var containingFunctionSymbol: FirFunctionSymbol<*>
open var isCrossinline: Boolean by kotlin.properties.Delegates.notNull<Boolean>()
open var isNoinline: Boolean by kotlin.properties.Delegates.notNull<Boolean>()
open var isVararg: Boolean by kotlin.properties.Delegates.notNull<Boolean>()
@@ -79,6 +81,7 @@ open class FirValueParameterBuilder : FirAnnotationContainerBuilder {
annotations,
symbol,
defaultValue,
containingFunctionSymbol,
isCrossinline,
isNoinline,
isVararg,
@@ -116,6 +119,7 @@ inline fun buildValueParameterCopy(original: FirValueParameter, init: FirValuePa
copyBuilder.annotations.addAll(original.annotations)
copyBuilder.symbol = original.symbol
copyBuilder.defaultValue = original.defaultValue
copyBuilder.containingFunctionSymbol = original.containingFunctionSymbol
copyBuilder.isCrossinline = original.isCrossinline
copyBuilder.isNoinline = original.isNoinline
copyBuilder.isVararg = original.isVararg
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusIm
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirValueParameterSymbol
import org.jetbrains.kotlin.fir.types.ConeSimpleKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
@@ -59,6 +60,7 @@ internal class FirDefaultSetterValueParameter(
override val annotations: MutableList<FirAnnotation>,
override val symbol: FirValueParameterSymbol,
override var defaultValue: FirExpression?,
override val containingFunctionSymbol: FirFunctionSymbol<*>,
override val isCrossinline: Boolean,
override val isNoinline: Boolean,
override val isVararg: Boolean,
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusIm
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirValueParameterSymbol
import org.jetbrains.kotlin.fir.types.ConeSimpleKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
@@ -53,6 +54,7 @@ internal class FirValueParameterImpl(
override val annotations: MutableList<FirAnnotation>,
override val symbol: FirValueParameterSymbol,
override var defaultValue: FirExpression?,
override val containingFunctionSymbol: FirFunctionSymbol<*>,
override val isCrossinline: Boolean,
override val isNoinline: Boolean,
override val isVararg: Boolean,