From 42440f50dcabba841a3d5071fe8b7a0228dd56c4 Mon Sep 17 00:00:00 2001 From: Stanislav Erokhin Date: Thu, 15 Dec 2016 06:14:21 +0300 Subject: [PATCH] Remove soft keyword `coroutine` & isCoroutine from ValueParameterDescriptor. --- .../kotlin/codegen/coroutines/CoroutineCodegen.kt | 4 ++-- .../codegen/coroutines/coroutineCodegenUtil.kt | 2 +- .../load/java/sam/SingleAbstractMethodUtils.java | 2 -- .../kotlinSignature/SignaturesPropagationData.java | 2 -- .../impl/LocalVariableAccessorDescriptor.kt | 2 +- .../src/org/jetbrains/kotlin/lexer/KtTokens.java | 5 ++--- .../kotlin/resolve/DataClassDescriptorResolver.kt | 2 +- .../kotlin/resolve/DescriptorResolver.java | 1 - .../kotlin/resolve/FunctionDescriptorResolver.kt | 1 - .../jetbrains/kotlin/resolve/ModifiersChecker.kt | 2 -- .../kotlin/resolve/calls/tasks/dynamicCalls.kt | 1 - .../checkers/HeaderImplDeclarationChecker.kt | 2 +- .../lazy/descriptors/LazyScriptClassMemberScope.kt | 1 - .../expressions/ControlStructureTypingUtils.java | 1 - .../kotlin/backend/jvm/descriptors/Util.kt | 2 +- .../kotlin/backend/jvm/lower/InterfaceLowering.kt | 4 ++-- .../backend/jvm/lower/LocalFunctionsLowering.kt | 2 +- .../kotlin/backend/jvm/lower/descriptorUtils.kt | 4 ++-- .../jetbrains/kotlin/ir/descriptors/IrBuiltIns.kt | 2 +- .../ir/descriptors/IrBuiltinFunctionDescriptor.kt | 1 - .../resolve/calls/tasks/synthesizedInvokes.kt | 2 +- .../resolve/calls/util/functionTypeResolveUtils.kt | 1 - .../kotlin/serialization/DescriptorSerializer.kt | 2 +- compiler/testData/psi/SoftKeywords.kt | 1 - compiler/testData/psi/SoftKeywords.txt | 2 -- core/builtins/src/kotlin/reflect/KParameter.kt | 6 ------ .../jetbrains/kotlin/load/java/descriptors/util.kt | 2 -- .../lazy/descriptors/LazyJavaClassMemberScope.kt | 1 - .../load/java/lazy/descriptors/LazyJavaScope.kt | 1 - .../builtins/functions/FunctionInvokeDescriptor.kt | 1 - .../kotlin/descriptors/ValueParameterDescriptor.kt | 2 -- .../descriptors/impl/FunctionDescriptorImpl.java | 1 - .../impl/PropertySetterDescriptorImpl.java | 1 - .../impl/ValueParameterDescriptorImpl.kt | 14 ++++++-------- .../kotlin/renderer/DescriptorRendererImpl.kt | 4 ---- .../kotlin/resolve/DescriptorFactory.java | 1 - .../org/jetbrains/kotlin/serialization/Flags.java | 5 +---- .../deserialization/MemberDeserializer.kt | 1 - .../kotlin/reflect/jvm/internal/KParameterImpl.kt | 3 --- .../decompiler/stubBuilder/TypeClsStubBuilder.kt | 3 --- .../quickfix/ChangeMemberFunctionSignatureFix.kt | 2 +- .../translate/reference/CallArgumentTranslator.kt | 2 +- 42 files changed, 26 insertions(+), 75 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/coroutines/CoroutineCodegen.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/coroutines/CoroutineCodegen.kt index 6bacbee20d5..5547f572cd5 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/coroutines/CoroutineCodegen.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/coroutines/CoroutineCodegen.kt @@ -74,14 +74,14 @@ class CoroutineCodegen( this@doResume, null, 0, Annotations.EMPTY, Name.identifier("data"), module.builtIns.nullableAnyType, /* isDefault = */ false, /* isCrossinline = */ false, - /* isNoinline = */ false, /* isCoroutine = */ false, + /* isNoinline = */ false, /* varargElementType = */ null, SourceElement.NO_SOURCE ), ValueParameterDescriptorImpl( this@doResume, null, 1, Annotations.EMPTY, Name.identifier("throwable"), module.builtIns.throwable.defaultType.makeNullable(), /* isDefault = */ false, /* isCrossinline = */ false, - /* isNoinline = */ false, /* isCoroutine = */ false, + /* isNoinline = */ false, /* varargElementType = */ null, SourceElement.NO_SOURCE ) ), diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/coroutines/coroutineCodegenUtil.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/coroutines/coroutineCodegenUtil.kt index 5eb976bccce..32a373b4ab8 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/coroutines/coroutineCodegenUtil.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/coroutines/coroutineCodegenUtil.kt @@ -195,7 +195,7 @@ fun createJvmSuspendFunctionView(function: D): D { function, null, function.valueParameters.size, Annotations.EMPTY, Name.identifier("\$continuation"), function.getContinuationParameterTypeOfSuspendFunction(), /* declaresDefaultValue = */ false, /* isCrossinline = */ false, - /* isNoinline = */ false, /* isCoroutine = */ false, /* varargElementType = */ null, SourceElement.NO_SOURCE + /* isNoinline = */ false, /* varargElementType = */ null, SourceElement.NO_SOURCE ) return function.createCustomCopy { diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/load/java/sam/SingleAbstractMethodUtils.java b/compiler/frontend.java/src/org/jetbrains/kotlin/load/java/sam/SingleAbstractMethodUtils.java index 9cc2ee712f0..41674180de9 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/load/java/sam/SingleAbstractMethodUtils.java +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/load/java/sam/SingleAbstractMethodUtils.java @@ -181,7 +181,6 @@ public class SingleAbstractMethodUtils { /* declaresDefaultValue = */ false, /* isCrossinline = */ false, /* isNoinline = */ false, - /* isCoroutine = */ false, null, SourceElement.NO_SOURCE); KotlinType returnType = typeParameters.substitutor.substitute(unsubstitutedSamType, Variance.OUT_VARIANCE); @@ -309,7 +308,6 @@ public class SingleAbstractMethodUtils { /* declaresDefaultValue = */ false, /* isCrossinline = */ false, /* isNoinline = */ false, - /* isCoroutine = */ false, null, SourceElement.NO_SOURCE ); valueParameters.add(newParam); diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/kotlinSignature/SignaturesPropagationData.java b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/kotlinSignature/SignaturesPropagationData.java index 279d28e3816..c461a640cfa 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/kotlinSignature/SignaturesPropagationData.java +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/kotlinSignature/SignaturesPropagationData.java @@ -34,7 +34,6 @@ import org.jetbrains.kotlin.name.FqNameUnsafe; import org.jetbrains.kotlin.name.Name; import org.jetbrains.kotlin.resolve.DescriptorUtils; import org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilsKt; -import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodSignature; import org.jetbrains.kotlin.resolve.jvm.jvmSignature.KotlinToJvmSignatureMapper; import org.jetbrains.kotlin.resolve.jvm.jvmSignature.KotlinToJvmSignatureMapperKt; import org.jetbrains.kotlin.types.KotlinType; @@ -175,7 +174,6 @@ public class SignaturesPropagationData { originalParam.declaresDefaultValue(), originalParam.isCrossinline(), originalParam.isNoinline(), - originalParam.isCoroutine(), varargCheckResult.isVararg ? DescriptorUtilsKt.getBuiltIns(originalParam).getArrayElementType(altType) : null, SourceElement.NO_SOURCE )); diff --git a/compiler/frontend/src/org/jetbrains/kotlin/descriptors/impl/LocalVariableAccessorDescriptor.kt b/compiler/frontend/src/org/jetbrains/kotlin/descriptors/impl/LocalVariableAccessorDescriptor.kt index bcac3b7cd27..63b24b825b0 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/descriptors/impl/LocalVariableAccessorDescriptor.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/descriptors/impl/LocalVariableAccessorDescriptor.kt @@ -44,7 +44,7 @@ sealed class LocalVariableAccessorDescriptor( private fun createValueParameter(name: Name, type: KotlinType): ValueParameterDescriptorImpl { return ValueParameterDescriptorImpl(this, null, 0, Annotations.EMPTY, name, type, - false, false, false, false, null, SourceElement.NO_SOURCE) + false, false, false, null, SourceElement.NO_SOURCE) } } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/lexer/KtTokens.java b/compiler/frontend/src/org/jetbrains/kotlin/lexer/KtTokens.java index bd4421deb1e..a2a224c4fcd 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/lexer/KtTokens.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/lexer/KtTokens.java @@ -186,7 +186,6 @@ public interface KtTokens { KtModifierKeywordToken CONST_KEYWORD = KtModifierKeywordToken.softKeywordModifier("const"); - KtModifierKeywordToken COROUTINE_KEYWORD = KtModifierKeywordToken.softKeywordModifier("coroutine"); KtModifierKeywordToken SUSPEND_KEYWORD = KtModifierKeywordToken.softKeywordModifier("suspend"); KtModifierKeywordToken HEADER_KEYWORD = KtModifierKeywordToken.softKeywordModifier("header"); @@ -212,7 +211,7 @@ public interface KtTokens { LATEINIT_KEYWORD, DATA_KEYWORD, INLINE_KEYWORD, NOINLINE_KEYWORD, TAILREC_KEYWORD, EXTERNAL_KEYWORD, ANNOTATION_KEYWORD, CROSSINLINE_KEYWORD, CONST_KEYWORD, OPERATOR_KEYWORD, INFIX_KEYWORD, - COROUTINE_KEYWORD, SUSPEND_KEYWORD, HEADER_KEYWORD, IMPL_KEYWORD + SUSPEND_KEYWORD, HEADER_KEYWORD, IMPL_KEYWORD ); /* @@ -226,7 +225,7 @@ public interface KtTokens { PUBLIC_KEYWORD, INTERNAL_KEYWORD, PROTECTED_KEYWORD, OUT_KEYWORD, IN_KEYWORD, FINAL_KEYWORD, VARARG_KEYWORD, REIFIED_KEYWORD, COMPANION_KEYWORD, SEALED_KEYWORD, LATEINIT_KEYWORD, DATA_KEYWORD, INLINE_KEYWORD, NOINLINE_KEYWORD, TAILREC_KEYWORD, EXTERNAL_KEYWORD, ANNOTATION_KEYWORD, CROSSINLINE_KEYWORD, - CONST_KEYWORD, OPERATOR_KEYWORD, INFIX_KEYWORD, COROUTINE_KEYWORD, SUSPEND_KEYWORD, HEADER_KEYWORD, IMPL_KEYWORD + CONST_KEYWORD, OPERATOR_KEYWORD, INFIX_KEYWORD, SUSPEND_KEYWORD, HEADER_KEYWORD, IMPL_KEYWORD }; TokenSet MODIFIER_KEYWORDS = TokenSet.create(MODIFIER_KEYWORDS_ARRAY); diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/DataClassDescriptorResolver.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/DataClassDescriptorResolver.kt index d1252d6dcea..abf6a69dc0b 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/DataClassDescriptorResolver.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/DataClassDescriptorResolver.kt @@ -137,7 +137,7 @@ object DataClassDescriptorResolver { val declaresDefaultValue = propertyDescriptor != null val parameterDescriptor = ValueParameterDescriptorImpl( functionDescriptor, null, parameter.index, parameter.annotations, parameter.name, parameter.type, declaresDefaultValue, - parameter.isCrossinline, parameter.isNoinline, parameter.isCoroutine, parameter.varargElementType, parameter.source + parameter.isCrossinline, parameter.isNoinline, parameter.varargElementType, parameter.source ) parameterDescriptors.add(parameterDescriptor) if (declaresDefaultValue) { diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/DescriptorResolver.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/DescriptorResolver.java index 454e83830a8..7b2852f2dca 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/DescriptorResolver.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/DescriptorResolver.java @@ -378,7 +378,6 @@ public class DescriptorResolver { valueParameter.hasDefaultValue(), valueParameter.hasModifier(CROSSINLINE_KEYWORD), valueParameter.hasModifier(NOINLINE_KEYWORD), - valueParameter.hasModifier(COROUTINE_KEYWORD), varargElementType, KotlinSourceElementKt.toSourceElement(valueParameter), destructuringVariables diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/FunctionDescriptorResolver.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/FunctionDescriptorResolver.kt index fcb5db08ba2..c1eaf8c015d 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/FunctionDescriptorResolver.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/FunctionDescriptorResolver.kt @@ -209,7 +209,6 @@ class FunctionDescriptorResolver( val it = ValueParameterDescriptorImpl(functionDescriptor, null, 0, Annotations.EMPTY, Name.identifier("it"), expectedParameterTypes!!.single(), valueParameterDescriptor.declaresDefaultValue(), valueParameterDescriptor.isCrossinline, valueParameterDescriptor.isNoinline, - valueParameterDescriptor.isCoroutine, valueParameterDescriptor.varargElementType, SourceElement.NO_SOURCE) trace.record(BindingContext.AUTO_CREATED_IT, it) return listOf(it) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/ModifiersChecker.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/ModifiersChecker.kt index ebb4b8a4e18..d7350258628 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/ModifiersChecker.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/ModifiersChecker.kt @@ -81,7 +81,6 @@ object ModifierCheckerCore { DATA_KEYWORD to EnumSet.of(CLASS_ONLY, INNER_CLASS, LOCAL_CLASS), INLINE_KEYWORD to EnumSet.of(FUNCTION, PROPERTY, PROPERTY_GETTER, PROPERTY_SETTER), NOINLINE_KEYWORD to EnumSet.of(VALUE_PARAMETER), - COROUTINE_KEYWORD to EnumSet.of(VALUE_PARAMETER), TAILREC_KEYWORD to EnumSet.of(FUNCTION), SUSPEND_KEYWORD to EnumSet.of(FUNCTION), EXTERNAL_KEYWORD to EnumSet.of(FUNCTION, PROPERTY, PROPERTY_GETTER, PROPERTY_SETTER, CLASS), @@ -95,7 +94,6 @@ object ModifierCheckerCore { ) val featureDependencies = mapOf( - COROUTINE_KEYWORD to LanguageFeature.Coroutines, SUSPEND_KEYWORD to LanguageFeature.Coroutines, INLINE_KEYWORD to LanguageFeature.InlineProperties, HEADER_KEYWORD to LanguageFeature.MultiPlatformProjects, diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tasks/dynamicCalls.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tasks/dynamicCalls.kt index 2b16c053dff..00eaf8a4828 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tasks/dynamicCalls.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tasks/dynamicCalls.kt @@ -171,7 +171,6 @@ class DynamicCallableDescriptors(storageManager: StorageManager, builtIns: Kotli /* declaresDefaultValue = */ false, /* isCrossinline = */ false, /* isNoinline = */ false, - /* isCoroutine = */ false, varargElementType, SourceElement.NO_SOURCE )) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/HeaderImplDeclarationChecker.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/HeaderImplDeclarationChecker.kt index 78ccc4a0ad5..12e6999dd23 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/HeaderImplDeclarationChecker.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/HeaderImplDeclarationChecker.kt @@ -252,7 +252,7 @@ class HeaderImplDeclarationChecker(val moduleToCheck: ModuleDescriptor? = null) areCompatibleTypeParameters(aTypeParams, bTypeParams, substitutor).let { if (it != Compatible) return it } if (!equalsBy(aParams, bParams, ValueParameterDescriptor::declaresDefaultValue)) return Incompatible.ValueParameterHasDefault - if (!equalsBy(aParams, bParams, { p -> listOf(p.varargElementType != null, p.isCoroutine, p.isCrossinline, p.isNoinline) })) return Incompatible.ValueParameterModifiers + if (!equalsBy(aParams, bParams, { p -> listOf(p.varargElementType != null, p.isCrossinline, p.isNoinline) })) return Incompatible.ValueParameterModifiers when { a is FunctionDescriptor && b is FunctionDescriptor -> areCompatibleFunctions(a, b).let { if (it != Compatible) return it } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyScriptClassMemberScope.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyScriptClassMemberScope.kt index 7ad3ef52d1e..f794b3d962e 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyScriptClassMemberScope.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyScriptClassMemberScope.kt @@ -55,7 +55,6 @@ class LazyScriptClassMemberScope( /* declaresDefaultValue = */ false, /* isCrossinline = */ false, /* isNoinline = */ false, - /* isCoroutine = */ false, null, SourceElement.NO_SOURCE ) } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ControlStructureTypingUtils.java b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ControlStructureTypingUtils.java index 95998bf7578..36b484da670 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ControlStructureTypingUtils.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ControlStructureTypingUtils.java @@ -162,7 +162,6 @@ public class ControlStructureTypingUtils { /* declaresDefaultValue = */ false, /* isCrossinline = */ false, /* isNoinline = */ false, - /* isCoroutine = */ false, null, SourceElement.NO_SOURCE ); valueParameters.add(valueParameter); diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/descriptors/Util.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/descriptors/Util.kt index 1de68006071..b727213b896 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/descriptors/Util.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/descriptors/Util.kt @@ -44,5 +44,5 @@ fun CallableMemberDescriptor.createValueParameter(index: Int, name: String, type Annotations.EMPTY, Name.identifier(name), type, - false, false, false, false, null, SourceElement.NO_SOURCE + false, false, false, null, SourceElement.NO_SOURCE ) diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/InterfaceLowering.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/InterfaceLowering.kt index db6c43d2073..771115db2fe 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/InterfaceLowering.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/InterfaceLowering.kt @@ -110,12 +110,12 @@ class InterfaceLowering(val state: GenerationState) : IrElementTransformerVoid() val dispatchReceiver = ValueParameterDescriptorImpl.createWithDestructuringDeclarations( newFunction, null, 0, AnnotationsImpl(emptyList()), Name.identifier("this"), - interfaceDescriptor.defaultType, false, false, false, false, null, interfaceDescriptor.source, null) + interfaceDescriptor.defaultType, false, false, false, null, interfaceDescriptor.source, null) val oldExtensionReceiver = descriptor.extensionReceiverParameter val extensionReceiver = if (oldExtensionReceiver != null ) ValueParameterDescriptorImpl.createWithDestructuringDeclarations( newFunction, null, 1, AnnotationsImpl(emptyList()), Name.identifier("receiver"), - oldExtensionReceiver.value.type, false, false, false, false, null, oldExtensionReceiver.source, null) + oldExtensionReceiver.value.type, false, false, false, null, oldExtensionReceiver.source, null) else null val valueParameters = listOf(dispatchReceiver, extensionReceiver).filterNotNull() + diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/LocalFunctionsLowering.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/LocalFunctionsLowering.kt index c6244717116..9e8a41df1c6 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/LocalFunctionsLowering.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/LocalFunctionsLowering.kt @@ -314,7 +314,7 @@ class LocalFunctionsLowering(val context: JvmBackendContext): ClassLoweringPass valueDescriptor.annotations, suggestNameForCapturedValueParameter(valueDescriptor), valueDescriptor.type, - false, false, false, false, null, valueDescriptor.source + false, false, false, null, valueDescriptor.source ) private fun createUnsubstitutedParameter( diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/descriptorUtils.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/descriptorUtils.kt index 2382eeb8fe6..e8774cfc730 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/descriptorUtils.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/descriptorUtils.kt @@ -38,14 +38,14 @@ fun FunctionDescriptor.toStatic( offset++ ValueParameterDescriptorImpl.createWithDestructuringDeclarations( newFunction, null, 0, AnnotationsImpl(emptyList()), Name.identifier("this"), - dispatchReceiverClass!!.defaultType, false, false, false, false, null, dispatchReceiverClass.source, null) + dispatchReceiverClass!!.defaultType, false, false, false, null, dispatchReceiverClass.source, null) } val extensionReceiver = extensionReceiverParameter?.let { offset++ ValueParameterDescriptorImpl.createWithDestructuringDeclarations( newFunction, null, 1, AnnotationsImpl(emptyList()), Name.identifier("receiver"), - it.value.type, false, false, false, false, null, it.source, null) + it.value.type, false, false, false, null, it.source, null) } val valueParameters = listOf(dispatchReceiver, extensionReceiver).filterNotNull() + diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/descriptors/IrBuiltIns.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/descriptors/IrBuiltIns.kt index 59e010b0536..a2acfd15227 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/descriptors/IrBuiltIns.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/descriptors/IrBuiltIns.kt @@ -75,7 +75,7 @@ class IrBuiltIns(val builtIns: KotlinBuiltIns) { val valueParameterName = ValueParameterDescriptorImpl( this, null, 0, Annotations.EMPTY, Name.identifier("name"), builtIns.stringType, - false, false, false, false, null, org.jetbrains.kotlin.descriptors.SourceElement.NO_SOURCE + false, false, false, null, org.jetbrains.kotlin.descriptors.SourceElement.NO_SOURCE ) val returnType = KotlinTypeFactory.simpleType(Annotations.EMPTY, typeParameterT.typeConstructor, listOf(), false) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/descriptors/IrBuiltinFunctionDescriptor.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/descriptors/IrBuiltinFunctionDescriptor.kt index c74735f5d60..4a319fd7c4d 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/descriptors/IrBuiltinFunctionDescriptor.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/descriptors/IrBuiltinFunctionDescriptor.kt @@ -98,7 +98,6 @@ class IrBuiltinValueParameterDescriptorImpl( override fun declaresDefaultValue(): Boolean = false override fun getOriginal(): ValueParameterDescriptor = this override fun getOverriddenDescriptors(): Collection = emptyList() - override val isCoroutine: Boolean get() = false override val isCrossinline: Boolean get() = false override val isNoinline: Boolean get() = false override val varargElementType: KotlinType? get() = null diff --git a/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/tasks/synthesizedInvokes.kt b/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/tasks/synthesizedInvokes.kt index dad9968c4a3..e42f0656abd 100644 --- a/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/tasks/synthesizedInvokes.kt +++ b/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/tasks/synthesizedInvokes.kt @@ -76,7 +76,7 @@ private fun createSynthesizedFunctionWithFirstParameterAsReceiver(descriptor: Fu original.valueParameters.drop(1).map { p -> ValueParameterDescriptorImpl( result, null, p.index - 1, p.annotations, Name.identifier("p${p.index + 1}"), p.type, - p.declaresDefaultValue(), p.isCrossinline, p.isNoinline, p.isCoroutine, p.varargElementType, p.source + p.declaresDefaultValue(), p.isCrossinline, p.isNoinline, p.varargElementType, p.source ) }, original.returnType, diff --git a/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/util/functionTypeResolveUtils.kt b/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/util/functionTypeResolveUtils.kt index 5f445817cca..ef9f15fdb4f 100644 --- a/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/util/functionTypeResolveUtils.kt +++ b/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/util/functionTypeResolveUtils.kt @@ -37,7 +37,6 @@ fun createValueParametersForInvokeInFunctionType( /* declaresDefaultValue = */ false, /* isCrossinline = */ false, /* isNoinline = */ false, - /* isCoroutine = */ false, null, SourceElement.NO_SOURCE ) } diff --git a/compiler/serialization/src/org/jetbrains/kotlin/serialization/DescriptorSerializer.kt b/compiler/serialization/src/org/jetbrains/kotlin/serialization/DescriptorSerializer.kt index 4c79bded823..1dc2f80b1d7 100644 --- a/compiler/serialization/src/org/jetbrains/kotlin/serialization/DescriptorSerializer.kt +++ b/compiler/serialization/src/org/jetbrains/kotlin/serialization/DescriptorSerializer.kt @@ -330,7 +330,7 @@ class DescriptorSerializer private constructor( val flags = Flags.getValueParameterFlags( hasAnnotations(descriptor), descriptor.declaresDefaultValue(), - descriptor.isCrossinline, descriptor.isNoinline, descriptor.isCoroutine + descriptor.isCrossinline, descriptor.isNoinline ) if (flags != builder.flags) { builder.flags = flags diff --git a/compiler/testData/psi/SoftKeywords.kt b/compiler/testData/psi/SoftKeywords.kt index fded29646c5..06b4c3c4875 100644 --- a/compiler/testData/psi/SoftKeywords.kt +++ b/compiler/testData/psi/SoftKeywords.kt @@ -17,7 +17,6 @@ internal in out suspend -coroutine class Bar List)? ): ValueParameterDescriptorImpl = if (destructuringVariables == null) ValueParameterDescriptorImpl(containingDeclaration, original, index, annotations, name, outType, - declaresDefaultValue, isCrossinline, isNoinline, isCoroutine, varargElementType, source) + declaresDefaultValue, isCrossinline, isNoinline, varargElementType, source) else WithDestructuringDeclaration(containingDeclaration, original, index, annotations, name, outType, - declaresDefaultValue, isCrossinline, isNoinline, isCoroutine, varargElementType, source, + declaresDefaultValue, isCrossinline, isNoinline, varargElementType, source, destructuringVariables) } @@ -72,12 +70,12 @@ open class ValueParameterDescriptorImpl( outType: KotlinType, declaresDefaultValue: Boolean, isCrossinline: Boolean, - isNoinline: Boolean, isCoroutine: Boolean, varargElementType: KotlinType?, + isNoinline: Boolean, varargElementType: KotlinType?, source: SourceElement, destructuringVariables: () -> List ) : ValueParameterDescriptorImpl( containingDeclaration, original, index, annotations, name, outType, declaresDefaultValue, - isCrossinline, isNoinline, isCoroutine, + isCrossinline, isNoinline, varargElementType, source) { // It's forced to be lazy because its resolution depends on receiver of relevant lambda, that is being created at the same moment // as value parameters. @@ -110,7 +108,7 @@ open class ValueParameterDescriptorImpl( override fun copy(newOwner: CallableDescriptor, newName: Name, newIndex: Int): ValueParameterDescriptor { return ValueParameterDescriptorImpl( newOwner, null, newIndex, annotations, newName, type, declaresDefaultValue(), - isCrossinline, isNoinline, isCoroutine, varargElementType, SourceElement.NO_SOURCE + isCrossinline, isNoinline, varargElementType, SourceElement.NO_SOURCE ) } diff --git a/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererImpl.kt b/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererImpl.kt index acc908a8acf..4a607109393 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererImpl.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererImpl.kt @@ -798,10 +798,6 @@ internal class DescriptorRendererImpl( builder.append("noinline ") } - if (valueParameter.isCoroutine) { - builder.append("coroutine ") - } - renderVariable(valueParameter, includeName, builder, topLevel) val withDefaultValue = renderDefaultValues && (if (debugMode) valueParameter.declaresDefaultValue() else valueParameter.hasDefaultValue()) diff --git a/core/descriptors/src/org/jetbrains/kotlin/resolve/DescriptorFactory.java b/core/descriptors/src/org/jetbrains/kotlin/resolve/DescriptorFactory.java index 5547df66c44..e980eb1a838 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/resolve/DescriptorFactory.java +++ b/core/descriptors/src/org/jetbrains/kotlin/resolve/DescriptorFactory.java @@ -144,7 +144,6 @@ public class DescriptorFactory { /* declaresDefaultValue = */ false, /* isCrossinline = */ false, /* isNoinline = */ false, - /* isCoroutine = */ false, null, enumClass.getSource() ); diff --git a/core/deserialization/src/org/jetbrains/kotlin/serialization/Flags.java b/core/deserialization/src/org/jetbrains/kotlin/serialization/Flags.java index 8653329124c..3d69bb78d72 100644 --- a/core/deserialization/src/org/jetbrains/kotlin/serialization/Flags.java +++ b/core/deserialization/src/org/jetbrains/kotlin/serialization/Flags.java @@ -69,7 +69,6 @@ public class Flags { public static final BooleanFlagField DECLARES_DEFAULT_VALUE = FlagField.booleanAfter(HAS_ANNOTATIONS); public static final BooleanFlagField IS_CROSSINLINE = FlagField.booleanAfter(DECLARES_DEFAULT_VALUE); public static final BooleanFlagField IS_NOINLINE = FlagField.booleanAfter(IS_CROSSINLINE); - public static final BooleanFlagField IS_COROUTINE = FlagField.booleanAfter(IS_NOINLINE); // Accessors @@ -256,14 +255,12 @@ public class Flags { boolean hasAnnotations, boolean declaresDefaultValue, boolean isCrossinline, - boolean isNoinline, - boolean isCoroutine + boolean isNoinline ) { return HAS_ANNOTATIONS.toFlags(hasAnnotations) | DECLARES_DEFAULT_VALUE.toFlags(declaresDefaultValue) | IS_CROSSINLINE.toFlags(isCrossinline) | IS_NOINLINE.toFlags(isNoinline) - | IS_COROUTINE.toFlags(isCoroutine) ; } diff --git a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/MemberDeserializer.kt b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/MemberDeserializer.kt index acd7534b73a..80677b9f4c9 100644 --- a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/MemberDeserializer.kt +++ b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/MemberDeserializer.kt @@ -263,7 +263,6 @@ class MemberDeserializer(private val c: DeserializationContext) { Flags.DECLARES_DEFAULT_VALUE.get(flags), Flags.IS_CROSSINLINE.get(flags), Flags.IS_NOINLINE.get(flags), - Flags.IS_COROUTINE.get(flags), proto.varargElementType(c.typeTable)?.let { c.typeDeserializer.type(it) }, SourceElement.NO_SOURCE ) diff --git a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/KParameterImpl.kt b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/KParameterImpl.kt index f4eb48974e9..4598d2f1598 100644 --- a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/KParameterImpl.kt +++ b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/KParameterImpl.kt @@ -48,9 +48,6 @@ internal class KParameterImpl( override val isVararg: Boolean get() = descriptor.let { it is ValueParameterDescriptor && it.varargElementType != null } - override val isCoroutine: Boolean - get() = descriptor.let { it is ValueParameterDescriptor && it.isCoroutine } - override fun equals(other: Any?) = other is KParameterImpl && callable == other.callable && descriptor == other.descriptor diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/stubBuilder/TypeClsStubBuilder.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/stubBuilder/TypeClsStubBuilder.kt index 21d63154fbd..2a681583cc0 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/stubBuilder/TypeClsStubBuilder.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/stubBuilder/TypeClsStubBuilder.kt @@ -205,9 +205,6 @@ class TypeClsStubBuilder(private val c: ClsStubBuilderContext) { if (varargElementType != null) { modifiers.add(KtTokens.VARARG_KEYWORD) } if (Flags.IS_CROSSINLINE.get(valueParameterProto.flags)) { modifiers.add(KtTokens.CROSSINLINE_KEYWORD) } if (Flags.IS_NOINLINE.get(valueParameterProto.flags)) { modifiers.add(KtTokens.NOINLINE_KEYWORD) } - if (Flags.IS_COROUTINE.get(valueParameterProto.flags)) { - modifiers.add(KtTokens.COROUTINE_KEYWORD) - } val modifierList = createModifierListStub(parameterStub, modifiers) val parameterAnnotations = c.components.annotationLoader.loadValueParameterAnnotations( diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeMemberFunctionSignatureFix.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeMemberFunctionSignatureFix.kt index 0158c03a087..1663fceb303 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeMemberFunctionSignatureFix.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeMemberFunctionSignatureFix.kt @@ -206,7 +206,7 @@ class ChangeMemberFunctionSignatureFix private constructor( ValueParameterDescriptorImpl( descriptor, null, index, parameter.annotations, parameter.name, parameter.returnType!!, parameter.declaresDefaultValue(), - parameter.isCrossinline, parameter.isNoinline, parameter.isCoroutine, parameter.varargElementType, SourceElement.NO_SOURCE + parameter.isCrossinline, parameter.isNoinline, parameter.varargElementType, SourceElement.NO_SOURCE ) } diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/translate/reference/CallArgumentTranslator.kt b/js/js.translator/src/org/jetbrains/kotlin/js/translate/reference/CallArgumentTranslator.kt index 705695df93a..f2469d75111 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/translate/reference/CallArgumentTranslator.kt +++ b/js/js.translator/src/org/jetbrains/kotlin/js/translate/reference/CallArgumentTranslator.kt @@ -206,7 +206,7 @@ class CallArgumentTranslator private constructor( val parenthesizedArgumentExpression = valueArguments[0].getArgumentExpression()!! val argumentExpression = KtPsiUtil.deparenthesize(parenthesizedArgumentExpression) - result += if (parameterDescriptor.isCoroutine && argumentExpression is KtLambdaExpression) { + result += if (/*parameterDescriptor.isCoroutine=*/false && argumentExpression is KtLambdaExpression) { val continuationType = parameterDescriptor.type.arguments.last().type val continuationDescriptor = continuationType.constructor.declarationDescriptor as ClassDescriptor val controllerType = parameterDescriptor.type.arguments[0].type