[IR] Make contextReceiverParametersCount abstract in IrFunction

This commit is contained in:
Anastasiya Shadrina
2021-10-27 19:01:42 +07:00
committed by TeamCityServer
parent 3a9cf042d7
commit d0794e6741
10 changed files with 20 additions and 3 deletions
@@ -97,6 +97,8 @@ class Fir2IrLazyConstructor(
error("Mutating Fir2Ir lazy elements is not possible") error("Mutating Fir2Ir lazy elements is not possible")
} }
override var contextReceiverParametersCount: Int = 0
override var valueParameters: List<IrValueParameter> by lazyVar(lock) { override var valueParameters: List<IrValueParameter> by lazyVar(lock) {
declarationStorage.enterScope(this) declarationStorage.enterScope(this)
fir.valueParameters.mapIndexed { index, valueParameter -> fir.valueParameters.mapIndexed { index, valueParameter ->
@@ -73,6 +73,8 @@ class Fir2IrLazyPropertyAccessor(
} }
} }
override var contextReceiverParametersCount: Int = 0
override var valueParameters: List<IrValueParameter> by lazyVar(lock) { override var valueParameters: List<IrValueParameter> by lazyVar(lock) {
if (!isSetter) emptyList() if (!isSetter) emptyList()
else { else {
@@ -61,6 +61,8 @@ class Fir2IrLazySimpleFunction(
} }
} }
override var contextReceiverParametersCount: Int = 0
override var valueParameters: List<IrValueParameter> by lazyVar(lock) { override var valueParameters: List<IrValueParameter> by lazyVar(lock) {
declarationStorage.enterScope(this) declarationStorage.enterScope(this)
fir.valueParameters.mapIndexed { index, valueParameter -> fir.valueParameters.mapIndexed { index, valueParameter ->
@@ -62,6 +62,7 @@ class IrConstructorImpl(
override var dispatchReceiverParameter: IrValueParameter? = null override var dispatchReceiverParameter: IrValueParameter? = null
override var extensionReceiverParameter: IrValueParameter? = null override var extensionReceiverParameter: IrValueParameter? = null
override var contextReceiverParametersCount: Int = 0
override var valueParameters: List<IrValueParameter> = emptyList() override var valueParameters: List<IrValueParameter> = emptyList()
override var body: IrBody? = null override var body: IrBody? = null
@@ -54,6 +54,8 @@ abstract class IrFunctionCommonImpl(
override var extensionReceiverParameter: IrValueParameter? = null override var extensionReceiverParameter: IrValueParameter? = null
override var valueParameters: List<IrValueParameter> = emptyList() override var valueParameters: List<IrValueParameter> = emptyList()
override var contextReceiverParametersCount: Int = 0
override var body: IrBody? = null override var body: IrBody? = null
override var metadata: MetadataSource? = null override var metadata: MetadataSource? = null
@@ -168,6 +168,8 @@ internal class PersistentIrConstructor(
} }
} }
override var contextReceiverParametersCount: Int = 0
override var metadata: MetadataSource? = null override var metadata: MetadataSource? = null
override var visibilityField: DescriptorVisibility = visibility override var visibilityField: DescriptorVisibility = visibility
@@ -152,6 +152,8 @@ internal abstract class PersistentIrFunctionCommon(
} }
} }
override var contextReceiverParametersCount: Int = 0
override var bodyField: IrBody? = null override var bodyField: IrBody? = null
override var body: IrBody? override var body: IrBody?
@@ -46,12 +46,12 @@ abstract class IrFunction :
abstract var extensionReceiverParameter: IrValueParameter? abstract var extensionReceiverParameter: IrValueParameter?
abstract var valueParameters: List<IrValueParameter> abstract var valueParameters: List<IrValueParameter>
abstract var body: IrBody?
/** /**
* The first `contextReceiverParametersCount` value parameters are context receivers * The first `contextReceiverParametersCount` value parameters are context receivers
*/ */
var contextReceiverParametersCount: Int = 0 abstract var contextReceiverParametersCount: Int
abstract var body: IrBody?
override fun <D> acceptChildren(visitor: IrElementVisitor<Unit, D>, data: D) { override fun <D> acceptChildren(visitor: IrElementVisitor<Unit, D>, data: D) {
typeParameters.forEach { it.accept(visitor, data) } typeParameters.forEach { it.accept(visitor, data) }
@@ -89,6 +89,8 @@ class IrLazyConstructor(
override var valueParameters: List<IrValueParameter> by lazyVar(stubGenerator.lock) { createValueParameters() } override var valueParameters: List<IrValueParameter> by lazyVar(stubGenerator.lock) { createValueParameters() }
override var contextReceiverParametersCount: Int = descriptor.contextReceiverParameters.size
override var metadata: MetadataSource? override var metadata: MetadataSource?
get() = null get() = null
set(_) = error("We should never need to store metadata of external declarations.") set(_) = error("We should never need to store metadata of external declarations.")
@@ -71,6 +71,8 @@ class IrLazyFunction(
if (tryLoadIr()) valueParameters else createValueParameters() if (tryLoadIr()) valueParameters else createValueParameters()
} }
override var contextReceiverParametersCount: Int = descriptor.contextReceiverParameters.size
override var metadata: MetadataSource? override var metadata: MetadataSource?
get() = null get() = null
set(_) = error("We should never need to store metadata of external declarations.") set(_) = error("We should never need to store metadata of external declarations.")