diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/BodyGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/BodyGenerator.kt index c6ef5b4e58d..cfc845c8889 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/BodyGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/BodyGenerator.kt @@ -184,7 +184,7 @@ class BodyGenerator( val classDescriptor = (scopeOwner as ClassConstructorDescriptor).containingDeclaration if (classDescriptor.contextReceivers.isNotEmpty()) { - generateSetAdditionalFieldForPrimaryConstructorBody(classDescriptor, irConstructor, irBlockBody) + generateSetContextReceiverFieldForPrimaryConstructorBody(classDescriptor, irConstructor, irBlockBody) } irBlockBody.statements.add( IrInstanceInitializerCallImpl( @@ -334,7 +334,7 @@ class BodyGenerator( pregenerateCall(constructorCall) ) - private fun generateSetAdditionalFieldForPrimaryConstructorBody( + private fun generateSetContextReceiverFieldForPrimaryConstructorBody( classDescriptor: ClassDescriptor, irConstructor: IrConstructor, irBlockBody: IrBlockBody diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ClassGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ClassGenerator.kt index 044396e6c94..cb2a9b0eec7 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ClassGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ClassGenerator.kt @@ -98,7 +98,7 @@ class ClassGenerator( classDescriptor.thisAsReceiverParameter.type.toIrType() ) - generateFieldsForAdditionalReceivers(irClass, classDescriptor) + generateFieldsForContextReceivers(irClass, classDescriptor) val irPrimaryConstructor = generatePrimaryConstructor(irClass, ktClassOrObject) if (irPrimaryConstructor != null) { @@ -434,13 +434,13 @@ class ClassGenerator( EnumClassMembersGenerator(declarationGenerator).generateSpecialMembers(irClass) } - private fun generateFieldsForAdditionalReceivers(irClass: IrClass, classDescriptor: ClassDescriptor) { + private fun generateFieldsForContextReceivers(irClass: IrClass, classDescriptor: ClassDescriptor) { for ((fieldIndex, receiverDescriptor) in classDescriptor.contextReceivers.withIndex()) { val irField = context.irFactory.createField( UNDEFINED_OFFSET, UNDEFINED_OFFSET, IrDeclarationOrigin.FIELD_FOR_CLASS_CONTEXT_RECEIVER, IrFieldSymbolImpl(), - Name.identifier("additionalReceiverField$fieldIndex"), + Name.identifier("contextReceiverField$fieldIndex"), receiverDescriptor.type.toIrType(), DescriptorVisibilities.PRIVATE, isFinal = true, diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/DescriptorStorageForAdditionalReceivers.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/DescriptorStorageForContextReceivers.kt similarity index 96% rename from compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/DescriptorStorageForAdditionalReceivers.kt rename to compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/DescriptorStorageForContextReceivers.kt index bf4e389282d..d4d9dfe2dd6 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/DescriptorStorageForAdditionalReceivers.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/DescriptorStorageForContextReceivers.kt @@ -10,7 +10,7 @@ import org.jetbrains.kotlin.ir.declarations.IrField import org.jetbrains.kotlin.psi.KtExpression import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue -class DescriptorStorageForAdditionalReceivers { +class DescriptorStorageForContextReceivers { private val variableStorage: MutableMap = mutableMapOf() private val syntheticFieldStorage: MutableMap = mutableMapOf() diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/FunctionGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/FunctionGenerator.kt index 5ca5c7c0ccd..efe15ef3711 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/FunctionGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/FunctionGenerator.kt @@ -329,8 +329,8 @@ class FunctionGenerator(declarationGenerator: DeclarationGenerator) : Declaratio val contextReceiverParametersCount = functionDescriptor.contextReceiverParameters.size irFunction.contextReceiverParametersCount = contextReceiverParametersCount - irFunction.valueParameters += functionDescriptor.contextReceiverParameters.mapIndexed { i, additionalReceiver -> - declareParameter(additionalReceiver, ktContextReceiverParameterElements.getOrNull(i) ?: ktParameterOwner, irFunction, null, i) + irFunction.valueParameters += functionDescriptor.contextReceiverParameters.mapIndexed { i, contextReceiver -> + declareParameter(contextReceiver, ktContextReceiverParameterElements.getOrNull(i) ?: ktParameterOwner, irFunction, null, i) } // Declare all the value parameters up first. diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/GeneratorContext.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/GeneratorContext.kt index 84a171e67cb..f93b373418c 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/GeneratorContext.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/GeneratorContext.kt @@ -71,7 +71,7 @@ class GeneratorContext private constructor( // TODO: inject a correct StorageManager instance, or store NotFoundClasses inside ModuleDescriptor val reflectionTypes = ReflectionTypes(moduleDescriptor, NotFoundClasses(LockBasedStorageManager.NO_LOCKS, moduleDescriptor)) - val additionalDescriptorStorage: DescriptorStorageForAdditionalReceivers = DescriptorStorageForAdditionalReceivers() + val additionalDescriptorStorage: DescriptorStorageForContextReceivers = DescriptorStorageForContextReceivers() val samTypeApproximator = SamTypeApproximator(moduleDescriptor.builtIns, languageVersionSettings) diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/PropertyLValue.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/PropertyLValue.kt index d49024fa869..af1804d7acb 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/PropertyLValue.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/PropertyLValue.kt @@ -52,7 +52,7 @@ abstract class PropertyLValueBase( val extensionReceiverValue2 = extensionReceiverVariable2?.let { VariableLValue(context, it) } val contextReceiverVariables2 = contextReceiverValues.mapIndexed { i, value -> - scope.createTemporaryVariable(value.load(), "additionalReceiver$i") + scope.createTemporaryVariable(value.load(), "contextReceiver$i") } val contextReceiversValues2 = contextReceiverVariables2.map { VariableLValue(context, it) } diff --git a/compiler/testData/ir/irText/declarations/contextReceivers/class.kt.txt b/compiler/testData/ir/irText/declarations/contextReceivers/class.kt.txt index 25fc4cc7bdf..0bfc1050624 100644 --- a/compiler/testData/ir/irText/declarations/contextReceivers/class.kt.txt +++ b/compiler/testData/ir/irText/declarations/contextReceivers/class.kt.txt @@ -12,16 +12,16 @@ class Outer { } class Inner { - private /* final field */ val additionalReceiverField0: Outer + private /* final field */ val contextReceiverField0: Outer constructor(: Outer, arg: Any) /* primary */ { super/*Any*/() - .#additionalReceiverField0 = + .#contextReceiverField0 = /* () */ } fun bar(): Int { - return .#additionalReceiverField0.() + return .#contextReceiverField0.() } } diff --git a/compiler/testData/ir/irText/declarations/contextReceivers/class.txt b/compiler/testData/ir/irText/declarations/contextReceivers/class.txt index d85161c1c26..ad2ea8af626 100644 --- a/compiler/testData/ir/irText/declarations/contextReceivers/class.txt +++ b/compiler/testData/ir/irText/declarations/contextReceivers/class.txt @@ -31,13 +31,13 @@ FILE fqName: fileName:/class.kt $this: VALUE_PARAMETER name: type:kotlin.Any CLASS CLASS name:Inner modality:FINAL visibility:public superTypes:[kotlin.Any] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.Inner - FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:additionalReceiverField0 type:.Outer visibility:private [final] + FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:.Outer visibility:private [final] CONSTRUCTOR visibility:public <> (:.Outer, arg:kotlin.Any) returnType:.Inner [primary] VALUE_PARAMETER name: index:0 type:.Outer VALUE_PARAMETER name:arg index:1 type:kotlin.Any BLOCK_BODY DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' - SET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:additionalReceiverField0 type:.Outer visibility:private [final]' type=kotlin.Unit origin=null + SET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:.Outer visibility:private [final]' type=kotlin.Unit origin=null receiver: GET_VAR ': .Inner declared in .Inner' type=.Inner origin=null value: GET_VAR ': .Outer declared in .Inner.' type=.Outer origin=null INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Inner modality:FINAL visibility:public superTypes:[kotlin.Any]' @@ -46,7 +46,7 @@ FILE fqName: fileName:/class.kt BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun bar (): kotlin.Int declared in .Inner' CALL 'public final fun (): kotlin.Int declared in .Outer' type=kotlin.Int origin=GET_PROPERTY - $this: GET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:additionalReceiverField0 type:.Outer visibility:private [final]' type=.Outer origin=null + $this: GET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:.Outer visibility:private [final]' type=.Outer origin=null receiver: GET_VAR ': .Inner declared in .Inner.bar' type=.Inner origin=null FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] overridden: diff --git a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/ClassConstructorDescriptorImpl.java b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/ClassConstructorDescriptorImpl.java index db7196db79b..ef8d3b295e6 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/ClassConstructorDescriptorImpl.java +++ b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/ClassConstructorDescriptorImpl.java @@ -70,7 +70,7 @@ public class ClassConstructorDescriptorImpl extends FunctionDescriptorImpl imple @NotNull List typeParameterDescriptors ) { super.initialize( - null, calculateDispatchReceiverParameter(), calculateAdditionalReceiverParameters(), + null, calculateDispatchReceiverParameter(), calculateContextReceiverParameters(), typeParameterDescriptors, unsubstitutedValueParameters, null, Modality.FINAL, visibility); @@ -98,7 +98,7 @@ public class ClassConstructorDescriptorImpl extends FunctionDescriptorImpl imple } @NotNull - List calculateAdditionalReceiverParameters() { + private List calculateContextReceiverParameters() { ClassDescriptor classDescriptor = getContainingDeclaration(); if (!classDescriptor.getContextReceivers().isEmpty()) { return classDescriptor.getContextReceivers();