Remove soft keyword coroutine & isCoroutine from ValueParameterDescriptor.
This commit is contained in:
@@ -74,14 +74,14 @@ class CoroutineCodegen(
|
|||||||
this@doResume, null, 0, Annotations.EMPTY, Name.identifier("data"),
|
this@doResume, null, 0, Annotations.EMPTY, Name.identifier("data"),
|
||||||
module.builtIns.nullableAnyType,
|
module.builtIns.nullableAnyType,
|
||||||
/* isDefault = */ false, /* isCrossinline = */ false,
|
/* isDefault = */ false, /* isCrossinline = */ false,
|
||||||
/* isNoinline = */ false, /* isCoroutine = */ false,
|
/* isNoinline = */ false,
|
||||||
/* varargElementType = */ null, SourceElement.NO_SOURCE
|
/* varargElementType = */ null, SourceElement.NO_SOURCE
|
||||||
),
|
),
|
||||||
ValueParameterDescriptorImpl(
|
ValueParameterDescriptorImpl(
|
||||||
this@doResume, null, 1, Annotations.EMPTY, Name.identifier("throwable"),
|
this@doResume, null, 1, Annotations.EMPTY, Name.identifier("throwable"),
|
||||||
module.builtIns.throwable.defaultType.makeNullable(),
|
module.builtIns.throwable.defaultType.makeNullable(),
|
||||||
/* isDefault = */ false, /* isCrossinline = */ false,
|
/* isDefault = */ false, /* isCrossinline = */ false,
|
||||||
/* isNoinline = */ false, /* isCoroutine = */ false,
|
/* isNoinline = */ false,
|
||||||
/* varargElementType = */ null, SourceElement.NO_SOURCE
|
/* varargElementType = */ null, SourceElement.NO_SOURCE
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
|||||||
+1
-1
@@ -195,7 +195,7 @@ fun <D : FunctionDescriptor> createJvmSuspendFunctionView(function: D): D {
|
|||||||
function, null, function.valueParameters.size, Annotations.EMPTY, Name.identifier("\$continuation"),
|
function, null, function.valueParameters.size, Annotations.EMPTY, Name.identifier("\$continuation"),
|
||||||
function.getContinuationParameterTypeOfSuspendFunction(),
|
function.getContinuationParameterTypeOfSuspendFunction(),
|
||||||
/* declaresDefaultValue = */ false, /* isCrossinline = */ false,
|
/* declaresDefaultValue = */ false, /* isCrossinline = */ false,
|
||||||
/* isNoinline = */ false, /* isCoroutine = */ false, /* varargElementType = */ null, SourceElement.NO_SOURCE
|
/* isNoinline = */ false, /* varargElementType = */ null, SourceElement.NO_SOURCE
|
||||||
)
|
)
|
||||||
|
|
||||||
return function.createCustomCopy {
|
return function.createCustomCopy {
|
||||||
|
|||||||
-2
@@ -181,7 +181,6 @@ public class SingleAbstractMethodUtils {
|
|||||||
/* declaresDefaultValue = */ false,
|
/* declaresDefaultValue = */ false,
|
||||||
/* isCrossinline = */ false,
|
/* isCrossinline = */ false,
|
||||||
/* isNoinline = */ false,
|
/* isNoinline = */ false,
|
||||||
/* isCoroutine = */ false,
|
|
||||||
null, SourceElement.NO_SOURCE);
|
null, SourceElement.NO_SOURCE);
|
||||||
|
|
||||||
KotlinType returnType = typeParameters.substitutor.substitute(unsubstitutedSamType, Variance.OUT_VARIANCE);
|
KotlinType returnType = typeParameters.substitutor.substitute(unsubstitutedSamType, Variance.OUT_VARIANCE);
|
||||||
@@ -309,7 +308,6 @@ public class SingleAbstractMethodUtils {
|
|||||||
/* declaresDefaultValue = */ false,
|
/* declaresDefaultValue = */ false,
|
||||||
/* isCrossinline = */ false,
|
/* isCrossinline = */ false,
|
||||||
/* isNoinline = */ false,
|
/* isNoinline = */ false,
|
||||||
/* isCoroutine = */ false,
|
|
||||||
null, SourceElement.NO_SOURCE
|
null, SourceElement.NO_SOURCE
|
||||||
);
|
);
|
||||||
valueParameters.add(newParam);
|
valueParameters.add(newParam);
|
||||||
|
|||||||
-2
@@ -34,7 +34,6 @@ import org.jetbrains.kotlin.name.FqNameUnsafe;
|
|||||||
import org.jetbrains.kotlin.name.Name;
|
import org.jetbrains.kotlin.name.Name;
|
||||||
import org.jetbrains.kotlin.resolve.DescriptorUtils;
|
import org.jetbrains.kotlin.resolve.DescriptorUtils;
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilsKt;
|
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.KotlinToJvmSignatureMapper;
|
||||||
import org.jetbrains.kotlin.resolve.jvm.jvmSignature.KotlinToJvmSignatureMapperKt;
|
import org.jetbrains.kotlin.resolve.jvm.jvmSignature.KotlinToJvmSignatureMapperKt;
|
||||||
import org.jetbrains.kotlin.types.KotlinType;
|
import org.jetbrains.kotlin.types.KotlinType;
|
||||||
@@ -175,7 +174,6 @@ public class SignaturesPropagationData {
|
|||||||
originalParam.declaresDefaultValue(),
|
originalParam.declaresDefaultValue(),
|
||||||
originalParam.isCrossinline(),
|
originalParam.isCrossinline(),
|
||||||
originalParam.isNoinline(),
|
originalParam.isNoinline(),
|
||||||
originalParam.isCoroutine(),
|
|
||||||
varargCheckResult.isVararg ? DescriptorUtilsKt.getBuiltIns(originalParam).getArrayElementType(altType) : null,
|
varargCheckResult.isVararg ? DescriptorUtilsKt.getBuiltIns(originalParam).getArrayElementType(altType) : null,
|
||||||
SourceElement.NO_SOURCE
|
SourceElement.NO_SOURCE
|
||||||
));
|
));
|
||||||
|
|||||||
+1
-1
@@ -44,7 +44,7 @@ sealed class LocalVariableAccessorDescriptor(
|
|||||||
|
|
||||||
private fun createValueParameter(name: Name, type: KotlinType): ValueParameterDescriptorImpl {
|
private fun createValueParameter(name: Name, type: KotlinType): ValueParameterDescriptorImpl {
|
||||||
return ValueParameterDescriptorImpl(this, null, 0, Annotations.EMPTY, name, type,
|
return ValueParameterDescriptorImpl(this, null, 0, Annotations.EMPTY, name, type,
|
||||||
false, false, false, false, null, SourceElement.NO_SOURCE)
|
false, false, false, null, SourceElement.NO_SOURCE)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -186,7 +186,6 @@ public interface KtTokens {
|
|||||||
|
|
||||||
KtModifierKeywordToken CONST_KEYWORD = KtModifierKeywordToken.softKeywordModifier("const");
|
KtModifierKeywordToken CONST_KEYWORD = KtModifierKeywordToken.softKeywordModifier("const");
|
||||||
|
|
||||||
KtModifierKeywordToken COROUTINE_KEYWORD = KtModifierKeywordToken.softKeywordModifier("coroutine");
|
|
||||||
KtModifierKeywordToken SUSPEND_KEYWORD = KtModifierKeywordToken.softKeywordModifier("suspend");
|
KtModifierKeywordToken SUSPEND_KEYWORD = KtModifierKeywordToken.softKeywordModifier("suspend");
|
||||||
|
|
||||||
KtModifierKeywordToken HEADER_KEYWORD = KtModifierKeywordToken.softKeywordModifier("header");
|
KtModifierKeywordToken HEADER_KEYWORD = KtModifierKeywordToken.softKeywordModifier("header");
|
||||||
@@ -212,7 +211,7 @@ public interface KtTokens {
|
|||||||
LATEINIT_KEYWORD,
|
LATEINIT_KEYWORD,
|
||||||
DATA_KEYWORD, INLINE_KEYWORD, NOINLINE_KEYWORD, TAILREC_KEYWORD, EXTERNAL_KEYWORD,
|
DATA_KEYWORD, INLINE_KEYWORD, NOINLINE_KEYWORD, TAILREC_KEYWORD, EXTERNAL_KEYWORD,
|
||||||
ANNOTATION_KEYWORD, CROSSINLINE_KEYWORD, CONST_KEYWORD, OPERATOR_KEYWORD, INFIX_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,
|
PUBLIC_KEYWORD, INTERNAL_KEYWORD, PROTECTED_KEYWORD, OUT_KEYWORD, IN_KEYWORD, FINAL_KEYWORD, VARARG_KEYWORD,
|
||||||
REIFIED_KEYWORD, COMPANION_KEYWORD, SEALED_KEYWORD, LATEINIT_KEYWORD,
|
REIFIED_KEYWORD, COMPANION_KEYWORD, SEALED_KEYWORD, LATEINIT_KEYWORD,
|
||||||
DATA_KEYWORD, INLINE_KEYWORD, NOINLINE_KEYWORD, TAILREC_KEYWORD, EXTERNAL_KEYWORD, ANNOTATION_KEYWORD, CROSSINLINE_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);
|
TokenSet MODIFIER_KEYWORDS = TokenSet.create(MODIFIER_KEYWORDS_ARRAY);
|
||||||
|
|||||||
@@ -137,7 +137,7 @@ object DataClassDescriptorResolver {
|
|||||||
val declaresDefaultValue = propertyDescriptor != null
|
val declaresDefaultValue = propertyDescriptor != null
|
||||||
val parameterDescriptor = ValueParameterDescriptorImpl(
|
val parameterDescriptor = ValueParameterDescriptorImpl(
|
||||||
functionDescriptor, null, parameter.index, parameter.annotations, parameter.name, parameter.type, declaresDefaultValue,
|
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)
|
parameterDescriptors.add(parameterDescriptor)
|
||||||
if (declaresDefaultValue) {
|
if (declaresDefaultValue) {
|
||||||
|
|||||||
@@ -378,7 +378,6 @@ public class DescriptorResolver {
|
|||||||
valueParameter.hasDefaultValue(),
|
valueParameter.hasDefaultValue(),
|
||||||
valueParameter.hasModifier(CROSSINLINE_KEYWORD),
|
valueParameter.hasModifier(CROSSINLINE_KEYWORD),
|
||||||
valueParameter.hasModifier(NOINLINE_KEYWORD),
|
valueParameter.hasModifier(NOINLINE_KEYWORD),
|
||||||
valueParameter.hasModifier(COROUTINE_KEYWORD),
|
|
||||||
varargElementType,
|
varargElementType,
|
||||||
KotlinSourceElementKt.toSourceElement(valueParameter),
|
KotlinSourceElementKt.toSourceElement(valueParameter),
|
||||||
destructuringVariables
|
destructuringVariables
|
||||||
|
|||||||
@@ -209,7 +209,6 @@ class FunctionDescriptorResolver(
|
|||||||
val it = ValueParameterDescriptorImpl(functionDescriptor, null, 0, Annotations.EMPTY, Name.identifier("it"),
|
val it = ValueParameterDescriptorImpl(functionDescriptor, null, 0, Annotations.EMPTY, Name.identifier("it"),
|
||||||
expectedParameterTypes!!.single(), valueParameterDescriptor.declaresDefaultValue(),
|
expectedParameterTypes!!.single(), valueParameterDescriptor.declaresDefaultValue(),
|
||||||
valueParameterDescriptor.isCrossinline, valueParameterDescriptor.isNoinline,
|
valueParameterDescriptor.isCrossinline, valueParameterDescriptor.isNoinline,
|
||||||
valueParameterDescriptor.isCoroutine,
|
|
||||||
valueParameterDescriptor.varargElementType, SourceElement.NO_SOURCE)
|
valueParameterDescriptor.varargElementType, SourceElement.NO_SOURCE)
|
||||||
trace.record(BindingContext.AUTO_CREATED_IT, it)
|
trace.record(BindingContext.AUTO_CREATED_IT, it)
|
||||||
return listOf(it)
|
return listOf(it)
|
||||||
|
|||||||
@@ -81,7 +81,6 @@ object ModifierCheckerCore {
|
|||||||
DATA_KEYWORD to EnumSet.of(CLASS_ONLY, INNER_CLASS, LOCAL_CLASS),
|
DATA_KEYWORD to EnumSet.of(CLASS_ONLY, INNER_CLASS, LOCAL_CLASS),
|
||||||
INLINE_KEYWORD to EnumSet.of(FUNCTION, PROPERTY, PROPERTY_GETTER, PROPERTY_SETTER),
|
INLINE_KEYWORD to EnumSet.of(FUNCTION, PROPERTY, PROPERTY_GETTER, PROPERTY_SETTER),
|
||||||
NOINLINE_KEYWORD to EnumSet.of(VALUE_PARAMETER),
|
NOINLINE_KEYWORD to EnumSet.of(VALUE_PARAMETER),
|
||||||
COROUTINE_KEYWORD to EnumSet.of(VALUE_PARAMETER),
|
|
||||||
TAILREC_KEYWORD to EnumSet.of(FUNCTION),
|
TAILREC_KEYWORD to EnumSet.of(FUNCTION),
|
||||||
SUSPEND_KEYWORD to EnumSet.of(FUNCTION),
|
SUSPEND_KEYWORD to EnumSet.of(FUNCTION),
|
||||||
EXTERNAL_KEYWORD to EnumSet.of(FUNCTION, PROPERTY, PROPERTY_GETTER, PROPERTY_SETTER, CLASS),
|
EXTERNAL_KEYWORD to EnumSet.of(FUNCTION, PROPERTY, PROPERTY_GETTER, PROPERTY_SETTER, CLASS),
|
||||||
@@ -95,7 +94,6 @@ object ModifierCheckerCore {
|
|||||||
)
|
)
|
||||||
|
|
||||||
val featureDependencies = mapOf(
|
val featureDependencies = mapOf(
|
||||||
COROUTINE_KEYWORD to LanguageFeature.Coroutines,
|
|
||||||
SUSPEND_KEYWORD to LanguageFeature.Coroutines,
|
SUSPEND_KEYWORD to LanguageFeature.Coroutines,
|
||||||
INLINE_KEYWORD to LanguageFeature.InlineProperties,
|
INLINE_KEYWORD to LanguageFeature.InlineProperties,
|
||||||
HEADER_KEYWORD to LanguageFeature.MultiPlatformProjects,
|
HEADER_KEYWORD to LanguageFeature.MultiPlatformProjects,
|
||||||
|
|||||||
@@ -171,7 +171,6 @@ class DynamicCallableDescriptors(storageManager: StorageManager, builtIns: Kotli
|
|||||||
/* declaresDefaultValue = */ false,
|
/* declaresDefaultValue = */ false,
|
||||||
/* isCrossinline = */ false,
|
/* isCrossinline = */ false,
|
||||||
/* isNoinline = */ false,
|
/* isNoinline = */ false,
|
||||||
/* isCoroutine = */ false,
|
|
||||||
varargElementType,
|
varargElementType,
|
||||||
SourceElement.NO_SOURCE
|
SourceElement.NO_SOURCE
|
||||||
))
|
))
|
||||||
|
|||||||
+1
-1
@@ -252,7 +252,7 @@ class HeaderImplDeclarationChecker(val moduleToCheck: ModuleDescriptor? = null)
|
|||||||
areCompatibleTypeParameters(aTypeParams, bTypeParams, substitutor).let { if (it != Compatible) return it }
|
areCompatibleTypeParameters(aTypeParams, bTypeParams, substitutor).let { if (it != Compatible) return it }
|
||||||
|
|
||||||
if (!equalsBy(aParams, bParams, ValueParameterDescriptor::declaresDefaultValue)) return Incompatible.ValueParameterHasDefault
|
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 {
|
when {
|
||||||
a is FunctionDescriptor && b is FunctionDescriptor -> areCompatibleFunctions(a, b).let { if (it != Compatible) return it }
|
a is FunctionDescriptor && b is FunctionDescriptor -> areCompatibleFunctions(a, b).let { if (it != Compatible) return it }
|
||||||
|
|||||||
-1
@@ -55,7 +55,6 @@ class LazyScriptClassMemberScope(
|
|||||||
/* declaresDefaultValue = */ false,
|
/* declaresDefaultValue = */ false,
|
||||||
/* isCrossinline = */ false,
|
/* isCrossinline = */ false,
|
||||||
/* isNoinline = */ false,
|
/* isNoinline = */ false,
|
||||||
/* isCoroutine = */ false,
|
|
||||||
null, SourceElement.NO_SOURCE
|
null, SourceElement.NO_SOURCE
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
-1
@@ -162,7 +162,6 @@ public class ControlStructureTypingUtils {
|
|||||||
/* declaresDefaultValue = */ false,
|
/* declaresDefaultValue = */ false,
|
||||||
/* isCrossinline = */ false,
|
/* isCrossinline = */ false,
|
||||||
/* isNoinline = */ false,
|
/* isNoinline = */ false,
|
||||||
/* isCoroutine = */ false,
|
|
||||||
null, SourceElement.NO_SOURCE
|
null, SourceElement.NO_SOURCE
|
||||||
);
|
);
|
||||||
valueParameters.add(valueParameter);
|
valueParameters.add(valueParameter);
|
||||||
|
|||||||
@@ -44,5 +44,5 @@ fun CallableMemberDescriptor.createValueParameter(index: Int, name: String, type
|
|||||||
Annotations.EMPTY,
|
Annotations.EMPTY,
|
||||||
Name.identifier(name),
|
Name.identifier(name),
|
||||||
type,
|
type,
|
||||||
false, false, false, false, null, SourceElement.NO_SOURCE
|
false, false, false, null, SourceElement.NO_SOURCE
|
||||||
)
|
)
|
||||||
|
|||||||
+2
-2
@@ -110,12 +110,12 @@ class InterfaceLowering(val state: GenerationState) : IrElementTransformerVoid()
|
|||||||
val dispatchReceiver =
|
val dispatchReceiver =
|
||||||
ValueParameterDescriptorImpl.createWithDestructuringDeclarations(
|
ValueParameterDescriptorImpl.createWithDestructuringDeclarations(
|
||||||
newFunction, null, 0, AnnotationsImpl(emptyList()), Name.identifier("this"),
|
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 oldExtensionReceiver = descriptor.extensionReceiverParameter
|
||||||
val extensionReceiver = if (oldExtensionReceiver != null )
|
val extensionReceiver = if (oldExtensionReceiver != null )
|
||||||
ValueParameterDescriptorImpl.createWithDestructuringDeclarations(
|
ValueParameterDescriptorImpl.createWithDestructuringDeclarations(
|
||||||
newFunction, null, 1, AnnotationsImpl(emptyList()), Name.identifier("receiver"),
|
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
|
else null
|
||||||
|
|
||||||
val valueParameters = listOf(dispatchReceiver, extensionReceiver).filterNotNull() +
|
val valueParameters = listOf(dispatchReceiver, extensionReceiver).filterNotNull() +
|
||||||
|
|||||||
+1
-1
@@ -314,7 +314,7 @@ class LocalFunctionsLowering(val context: JvmBackendContext): ClassLoweringPass
|
|||||||
valueDescriptor.annotations,
|
valueDescriptor.annotations,
|
||||||
suggestNameForCapturedValueParameter(valueDescriptor),
|
suggestNameForCapturedValueParameter(valueDescriptor),
|
||||||
valueDescriptor.type,
|
valueDescriptor.type,
|
||||||
false, false, false, false, null, valueDescriptor.source
|
false, false, false, null, valueDescriptor.source
|
||||||
)
|
)
|
||||||
|
|
||||||
private fun createUnsubstitutedParameter(
|
private fun createUnsubstitutedParameter(
|
||||||
|
|||||||
+2
-2
@@ -38,14 +38,14 @@ fun FunctionDescriptor.toStatic(
|
|||||||
offset++
|
offset++
|
||||||
ValueParameterDescriptorImpl.createWithDestructuringDeclarations(
|
ValueParameterDescriptorImpl.createWithDestructuringDeclarations(
|
||||||
newFunction, null, 0, AnnotationsImpl(emptyList()), Name.identifier("this"),
|
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 {
|
val extensionReceiver = extensionReceiverParameter?.let {
|
||||||
offset++
|
offset++
|
||||||
ValueParameterDescriptorImpl.createWithDestructuringDeclarations(
|
ValueParameterDescriptorImpl.createWithDestructuringDeclarations(
|
||||||
newFunction, null, 1, AnnotationsImpl(emptyList()), Name.identifier("receiver"),
|
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() +
|
val valueParameters = listOf(dispatchReceiver, extensionReceiver).filterNotNull() +
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ class IrBuiltIns(val builtIns: KotlinBuiltIns) {
|
|||||||
|
|
||||||
val valueParameterName = ValueParameterDescriptorImpl(
|
val valueParameterName = ValueParameterDescriptorImpl(
|
||||||
this, null, 0, Annotations.EMPTY, Name.identifier("name"), builtIns.stringType,
|
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)
|
val returnType = KotlinTypeFactory.simpleType(Annotations.EMPTY, typeParameterT.typeConstructor, listOf(), false)
|
||||||
|
|||||||
-1
@@ -98,7 +98,6 @@ class IrBuiltinValueParameterDescriptorImpl(
|
|||||||
override fun declaresDefaultValue(): Boolean = false
|
override fun declaresDefaultValue(): Boolean = false
|
||||||
override fun getOriginal(): ValueParameterDescriptor = this
|
override fun getOriginal(): ValueParameterDescriptor = this
|
||||||
override fun getOverriddenDescriptors(): Collection<ValueParameterDescriptor> = emptyList()
|
override fun getOverriddenDescriptors(): Collection<ValueParameterDescriptor> = emptyList()
|
||||||
override val isCoroutine: Boolean get() = false
|
|
||||||
override val isCrossinline: Boolean get() = false
|
override val isCrossinline: Boolean get() = false
|
||||||
override val isNoinline: Boolean get() = false
|
override val isNoinline: Boolean get() = false
|
||||||
override val varargElementType: KotlinType? get() = null
|
override val varargElementType: KotlinType? get() = null
|
||||||
|
|||||||
+1
-1
@@ -76,7 +76,7 @@ private fun createSynthesizedFunctionWithFirstParameterAsReceiver(descriptor: Fu
|
|||||||
original.valueParameters.drop(1).map { p ->
|
original.valueParameters.drop(1).map { p ->
|
||||||
ValueParameterDescriptorImpl(
|
ValueParameterDescriptorImpl(
|
||||||
result, null, p.index - 1, p.annotations, Name.identifier("p${p.index + 1}"), p.type,
|
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,
|
original.returnType,
|
||||||
|
|||||||
-1
@@ -37,7 +37,6 @@ fun createValueParametersForInvokeInFunctionType(
|
|||||||
/* declaresDefaultValue = */ false,
|
/* declaresDefaultValue = */ false,
|
||||||
/* isCrossinline = */ false,
|
/* isCrossinline = */ false,
|
||||||
/* isNoinline = */ false,
|
/* isNoinline = */ false,
|
||||||
/* isCoroutine = */ false,
|
|
||||||
null, SourceElement.NO_SOURCE
|
null, SourceElement.NO_SOURCE
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -330,7 +330,7 @@ class DescriptorSerializer private constructor(
|
|||||||
|
|
||||||
val flags = Flags.getValueParameterFlags(
|
val flags = Flags.getValueParameterFlags(
|
||||||
hasAnnotations(descriptor), descriptor.declaresDefaultValue(),
|
hasAnnotations(descriptor), descriptor.declaresDefaultValue(),
|
||||||
descriptor.isCrossinline, descriptor.isNoinline, descriptor.isCoroutine
|
descriptor.isCrossinline, descriptor.isNoinline
|
||||||
)
|
)
|
||||||
if (flags != builder.flags) {
|
if (flags != builder.flags) {
|
||||||
builder.flags = flags
|
builder.flags = flags
|
||||||
|
|||||||
-1
@@ -17,7 +17,6 @@ internal
|
|||||||
in
|
in
|
||||||
out
|
out
|
||||||
suspend
|
suspend
|
||||||
coroutine
|
|
||||||
class Bar<abstract, abstract enum : T, out open,
|
class Bar<abstract, abstract enum : T, out open,
|
||||||
public protected private internal abstract
|
public protected private internal abstract
|
||||||
open
|
open
|
||||||
|
|||||||
-2
@@ -57,8 +57,6 @@ JetFile: SoftKeywords.kt
|
|||||||
PsiElement(out)('out')
|
PsiElement(out)('out')
|
||||||
PsiWhiteSpace('\n')
|
PsiWhiteSpace('\n')
|
||||||
PsiElement(suspend)('suspend')
|
PsiElement(suspend)('suspend')
|
||||||
PsiWhiteSpace('\n')
|
|
||||||
PsiElement(coroutine)('coroutine')
|
|
||||||
PsiWhiteSpace('\n ')
|
PsiWhiteSpace('\n ')
|
||||||
PsiElement(class)('class')
|
PsiElement(class)('class')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
|
|||||||
@@ -77,10 +77,4 @@ public interface KParameter : KAnnotatedElement {
|
|||||||
*/
|
*/
|
||||||
@SinceKotlin("1.1")
|
@SinceKotlin("1.1")
|
||||||
public val isVararg: Boolean
|
public val isVararg: Boolean
|
||||||
|
|
||||||
/**
|
|
||||||
* `true` if this parameter is `coroutine`.
|
|
||||||
*/
|
|
||||||
@SinceKotlin("1.1")
|
|
||||||
public val isCoroutine: Boolean
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ import org.jetbrains.kotlin.load.kotlin.JvmPackagePartSource
|
|||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.getSuperClassNotAny
|
import org.jetbrains.kotlin.resolve.descriptorUtil.getSuperClassNotAny
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.module
|
import org.jetbrains.kotlin.resolve.descriptorUtil.module
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedCallableMemberDescriptor
|
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberDescriptor
|
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberDescriptor
|
||||||
import org.jetbrains.kotlin.types.KotlinType
|
import org.jetbrains.kotlin.types.KotlinType
|
||||||
|
|
||||||
@@ -51,7 +50,6 @@ fun copyValueParameters(
|
|||||||
oldParameter.declaresDefaultValue(),
|
oldParameter.declaresDefaultValue(),
|
||||||
oldParameter.isCrossinline,
|
oldParameter.isCrossinline,
|
||||||
oldParameter.isNoinline,
|
oldParameter.isNoinline,
|
||||||
oldParameter.isCoroutine,
|
|
||||||
if (oldParameter.varargElementType != null) newOwner.module.builtIns.getArrayElementType(newType) else null,
|
if (oldParameter.varargElementType != null) newOwner.module.builtIns.getArrayElementType(newType) else null,
|
||||||
oldParameter.source
|
oldParameter.source
|
||||||
)
|
)
|
||||||
|
|||||||
-1
@@ -608,7 +608,6 @@ class LazyJavaClassMemberScope(
|
|||||||
method.hasAnnotationParameterDefaultValue,
|
method.hasAnnotationParameterDefaultValue,
|
||||||
/* isCrossinline = */ false,
|
/* isCrossinline = */ false,
|
||||||
/* isNoinline = */ false,
|
/* isNoinline = */ false,
|
||||||
/* isCoroutine = */ false,
|
|
||||||
// Nulls are not allowed in annotation arguments in Java
|
// Nulls are not allowed in annotation arguments in Java
|
||||||
varargElementType?.let { TypeUtils.makeNotNullable(it) },
|
varargElementType?.let { TypeUtils.makeNotNullable(it) },
|
||||||
c.components.sourceElementFactory.source(method)
|
c.components.sourceElementFactory.source(method)
|
||||||
|
|||||||
-1
@@ -207,7 +207,6 @@ abstract class LazyJavaScope(protected val c: LazyJavaResolverContext) : MemberS
|
|||||||
/* declaresDefaultValue = */ false,
|
/* declaresDefaultValue = */ false,
|
||||||
/* isCrossinline = */ false,
|
/* isCrossinline = */ false,
|
||||||
/* isNoinline = */ false,
|
/* isNoinline = */ false,
|
||||||
/* isCoroutine = */ false,
|
|
||||||
varargElementType,
|
varargElementType,
|
||||||
c.components.sourceElementFactory.source(javaParameter)
|
c.components.sourceElementFactory.source(javaParameter)
|
||||||
)
|
)
|
||||||
|
|||||||
-1
@@ -136,7 +136,6 @@ class FunctionInvokeDescriptor private constructor(
|
|||||||
/* declaresDefaultValue = */ false,
|
/* declaresDefaultValue = */ false,
|
||||||
/* isCrossinline = */ false,
|
/* isCrossinline = */ false,
|
||||||
/* isNoinline = */ false,
|
/* isNoinline = */ false,
|
||||||
/* isCoroutine = */ false,
|
|
||||||
/* varargElementType = */ null,
|
/* varargElementType = */ null,
|
||||||
SourceElement.NO_SOURCE
|
SourceElement.NO_SOURCE
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -54,6 +54,4 @@ interface ValueParameterDescriptor : VariableDescriptor, ParameterDescriptor {
|
|||||||
val isCrossinline: Boolean
|
val isCrossinline: Boolean
|
||||||
|
|
||||||
val isNoinline: Boolean
|
val isNoinline: Boolean
|
||||||
|
|
||||||
val isCoroutine: Boolean
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -786,7 +786,6 @@ public abstract class FunctionDescriptorImpl extends DeclarationDescriptorNonRoo
|
|||||||
unsubstitutedValueParameter.declaresDefaultValue(),
|
unsubstitutedValueParameter.declaresDefaultValue(),
|
||||||
unsubstitutedValueParameter.isCrossinline(),
|
unsubstitutedValueParameter.isCrossinline(),
|
||||||
unsubstitutedValueParameter.isNoinline(),
|
unsubstitutedValueParameter.isNoinline(),
|
||||||
unsubstitutedValueParameter.isCoroutine(),
|
|
||||||
substituteVarargElementType,
|
substituteVarargElementType,
|
||||||
SourceElement.NO_SOURCE
|
SourceElement.NO_SOURCE
|
||||||
)
|
)
|
||||||
|
|||||||
-1
@@ -71,7 +71,6 @@ public class PropertySetterDescriptorImpl extends PropertyAccessorDescriptorImpl
|
|||||||
/* declaresDefaultValue = */ false,
|
/* declaresDefaultValue = */ false,
|
||||||
/* isCrossinline = */ false,
|
/* isCrossinline = */ false,
|
||||||
/* isNoinline = */ false,
|
/* isNoinline = */ false,
|
||||||
/* isCoroutine = */ false,
|
|
||||||
null, SourceElement.NO_SOURCE
|
null, SourceElement.NO_SOURCE
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-8
@@ -32,7 +32,6 @@ open class ValueParameterDescriptorImpl(
|
|||||||
private val declaresDefaultValue: Boolean,
|
private val declaresDefaultValue: Boolean,
|
||||||
override val isCrossinline: Boolean,
|
override val isCrossinline: Boolean,
|
||||||
override val isNoinline: Boolean,
|
override val isNoinline: Boolean,
|
||||||
override val isCoroutine: Boolean,
|
|
||||||
override val varargElementType: KotlinType?,
|
override val varargElementType: KotlinType?,
|
||||||
source: SourceElement
|
source: SourceElement
|
||||||
) : VariableDescriptorImpl(containingDeclaration, annotations, name, outType, source), ValueParameterDescriptor {
|
) : VariableDescriptorImpl(containingDeclaration, annotations, name, outType, source), ValueParameterDescriptor {
|
||||||
@@ -51,16 +50,15 @@ open class ValueParameterDescriptorImpl(
|
|||||||
outType: KotlinType,
|
outType: KotlinType,
|
||||||
declaresDefaultValue: Boolean,
|
declaresDefaultValue: Boolean,
|
||||||
isCrossinline: Boolean,
|
isCrossinline: Boolean,
|
||||||
isNoinline: Boolean, isCoroutine: Boolean, varargElementType: KotlinType?,
|
isNoinline: Boolean, varargElementType: KotlinType?, source: SourceElement,
|
||||||
source: SourceElement,
|
|
||||||
destructuringVariables: (() -> List<VariableDescriptor>)?
|
destructuringVariables: (() -> List<VariableDescriptor>)?
|
||||||
): ValueParameterDescriptorImpl =
|
): ValueParameterDescriptorImpl =
|
||||||
if (destructuringVariables == null)
|
if (destructuringVariables == null)
|
||||||
ValueParameterDescriptorImpl(containingDeclaration, original, index, annotations, name, outType,
|
ValueParameterDescriptorImpl(containingDeclaration, original, index, annotations, name, outType,
|
||||||
declaresDefaultValue, isCrossinline, isNoinline, isCoroutine, varargElementType, source)
|
declaresDefaultValue, isCrossinline, isNoinline, varargElementType, source)
|
||||||
else
|
else
|
||||||
WithDestructuringDeclaration(containingDeclaration, original, index, annotations, name, outType,
|
WithDestructuringDeclaration(containingDeclaration, original, index, annotations, name, outType,
|
||||||
declaresDefaultValue, isCrossinline, isNoinline, isCoroutine, varargElementType, source,
|
declaresDefaultValue, isCrossinline, isNoinline, varargElementType, source,
|
||||||
destructuringVariables)
|
destructuringVariables)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -72,12 +70,12 @@ open class ValueParameterDescriptorImpl(
|
|||||||
outType: KotlinType,
|
outType: KotlinType,
|
||||||
declaresDefaultValue: Boolean,
|
declaresDefaultValue: Boolean,
|
||||||
isCrossinline: Boolean,
|
isCrossinline: Boolean,
|
||||||
isNoinline: Boolean, isCoroutine: Boolean, varargElementType: KotlinType?,
|
isNoinline: Boolean, varargElementType: KotlinType?,
|
||||||
source: SourceElement,
|
source: SourceElement,
|
||||||
destructuringVariables: () -> List<VariableDescriptor>
|
destructuringVariables: () -> List<VariableDescriptor>
|
||||||
) : ValueParameterDescriptorImpl(
|
) : ValueParameterDescriptorImpl(
|
||||||
containingDeclaration, original, index, annotations, name, outType, declaresDefaultValue,
|
containingDeclaration, original, index, annotations, name, outType, declaresDefaultValue,
|
||||||
isCrossinline, isNoinline, isCoroutine,
|
isCrossinline, isNoinline,
|
||||||
varargElementType, source) {
|
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
|
// 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.
|
// as value parameters.
|
||||||
@@ -110,7 +108,7 @@ open class ValueParameterDescriptorImpl(
|
|||||||
override fun copy(newOwner: CallableDescriptor, newName: Name, newIndex: Int): ValueParameterDescriptor {
|
override fun copy(newOwner: CallableDescriptor, newName: Name, newIndex: Int): ValueParameterDescriptor {
|
||||||
return ValueParameterDescriptorImpl(
|
return ValueParameterDescriptorImpl(
|
||||||
newOwner, null, newIndex, annotations, newName, type, declaresDefaultValue(),
|
newOwner, null, newIndex, annotations, newName, type, declaresDefaultValue(),
|
||||||
isCrossinline, isNoinline, isCoroutine, varargElementType, SourceElement.NO_SOURCE
|
isCrossinline, isNoinline, varargElementType, SourceElement.NO_SOURCE
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -798,10 +798,6 @@ internal class DescriptorRendererImpl(
|
|||||||
builder.append("noinline ")
|
builder.append("noinline ")
|
||||||
}
|
}
|
||||||
|
|
||||||
if (valueParameter.isCoroutine) {
|
|
||||||
builder.append("coroutine ")
|
|
||||||
}
|
|
||||||
|
|
||||||
renderVariable(valueParameter, includeName, builder, topLevel)
|
renderVariable(valueParameter, includeName, builder, topLevel)
|
||||||
|
|
||||||
val withDefaultValue = renderDefaultValues && (if (debugMode) valueParameter.declaresDefaultValue() else valueParameter.hasDefaultValue())
|
val withDefaultValue = renderDefaultValues && (if (debugMode) valueParameter.declaresDefaultValue() else valueParameter.hasDefaultValue())
|
||||||
|
|||||||
@@ -144,7 +144,6 @@ public class DescriptorFactory {
|
|||||||
/* declaresDefaultValue = */ false,
|
/* declaresDefaultValue = */ false,
|
||||||
/* isCrossinline = */ false,
|
/* isCrossinline = */ false,
|
||||||
/* isNoinline = */ false,
|
/* isNoinline = */ false,
|
||||||
/* isCoroutine = */ false,
|
|
||||||
null,
|
null,
|
||||||
enumClass.getSource()
|
enumClass.getSource()
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -69,7 +69,6 @@ public class Flags {
|
|||||||
public static final BooleanFlagField DECLARES_DEFAULT_VALUE = FlagField.booleanAfter(HAS_ANNOTATIONS);
|
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_CROSSINLINE = FlagField.booleanAfter(DECLARES_DEFAULT_VALUE);
|
||||||
public static final BooleanFlagField IS_NOINLINE = FlagField.booleanAfter(IS_CROSSINLINE);
|
public static final BooleanFlagField IS_NOINLINE = FlagField.booleanAfter(IS_CROSSINLINE);
|
||||||
public static final BooleanFlagField IS_COROUTINE = FlagField.booleanAfter(IS_NOINLINE);
|
|
||||||
|
|
||||||
// Accessors
|
// Accessors
|
||||||
|
|
||||||
@@ -256,14 +255,12 @@ public class Flags {
|
|||||||
boolean hasAnnotations,
|
boolean hasAnnotations,
|
||||||
boolean declaresDefaultValue,
|
boolean declaresDefaultValue,
|
||||||
boolean isCrossinline,
|
boolean isCrossinline,
|
||||||
boolean isNoinline,
|
boolean isNoinline
|
||||||
boolean isCoroutine
|
|
||||||
) {
|
) {
|
||||||
return HAS_ANNOTATIONS.toFlags(hasAnnotations)
|
return HAS_ANNOTATIONS.toFlags(hasAnnotations)
|
||||||
| DECLARES_DEFAULT_VALUE.toFlags(declaresDefaultValue)
|
| DECLARES_DEFAULT_VALUE.toFlags(declaresDefaultValue)
|
||||||
| IS_CROSSINLINE.toFlags(isCrossinline)
|
| IS_CROSSINLINE.toFlags(isCrossinline)
|
||||||
| IS_NOINLINE.toFlags(isNoinline)
|
| IS_NOINLINE.toFlags(isNoinline)
|
||||||
| IS_COROUTINE.toFlags(isCoroutine)
|
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
-1
@@ -263,7 +263,6 @@ class MemberDeserializer(private val c: DeserializationContext) {
|
|||||||
Flags.DECLARES_DEFAULT_VALUE.get(flags),
|
Flags.DECLARES_DEFAULT_VALUE.get(flags),
|
||||||
Flags.IS_CROSSINLINE.get(flags),
|
Flags.IS_CROSSINLINE.get(flags),
|
||||||
Flags.IS_NOINLINE.get(flags),
|
Flags.IS_NOINLINE.get(flags),
|
||||||
Flags.IS_COROUTINE.get(flags),
|
|
||||||
proto.varargElementType(c.typeTable)?.let { c.typeDeserializer.type(it) },
|
proto.varargElementType(c.typeTable)?.let { c.typeDeserializer.type(it) },
|
||||||
SourceElement.NO_SOURCE
|
SourceElement.NO_SOURCE
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -48,9 +48,6 @@ internal class KParameterImpl(
|
|||||||
override val isVararg: Boolean
|
override val isVararg: Boolean
|
||||||
get() = descriptor.let { it is ValueParameterDescriptor && it.varargElementType != null }
|
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?) =
|
override fun equals(other: Any?) =
|
||||||
other is KParameterImpl && callable == other.callable && descriptor == other.descriptor
|
other is KParameterImpl && callable == other.callable && descriptor == other.descriptor
|
||||||
|
|
||||||
|
|||||||
-3
@@ -205,9 +205,6 @@ class TypeClsStubBuilder(private val c: ClsStubBuilderContext) {
|
|||||||
if (varargElementType != null) { modifiers.add(KtTokens.VARARG_KEYWORD) }
|
if (varargElementType != null) { modifiers.add(KtTokens.VARARG_KEYWORD) }
|
||||||
if (Flags.IS_CROSSINLINE.get(valueParameterProto.flags)) { modifiers.add(KtTokens.CROSSINLINE_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_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 modifierList = createModifierListStub(parameterStub, modifiers)
|
||||||
val parameterAnnotations = c.components.annotationLoader.loadValueParameterAnnotations(
|
val parameterAnnotations = c.components.annotationLoader.loadValueParameterAnnotations(
|
||||||
|
|||||||
@@ -206,7 +206,7 @@ class ChangeMemberFunctionSignatureFix private constructor(
|
|||||||
ValueParameterDescriptorImpl(
|
ValueParameterDescriptorImpl(
|
||||||
descriptor, null, index,
|
descriptor, null, index,
|
||||||
parameter.annotations, parameter.name, parameter.returnType!!, parameter.declaresDefaultValue(),
|
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
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -206,7 +206,7 @@ class CallArgumentTranslator private constructor(
|
|||||||
val parenthesizedArgumentExpression = valueArguments[0].getArgumentExpression()!!
|
val parenthesizedArgumentExpression = valueArguments[0].getArgumentExpression()!!
|
||||||
val argumentExpression = KtPsiUtil.deparenthesize(parenthesizedArgumentExpression)
|
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 continuationType = parameterDescriptor.type.arguments.last().type
|
||||||
val continuationDescriptor = continuationType.constructor.declarationDescriptor as ClassDescriptor
|
val continuationDescriptor = continuationType.constructor.declarationDescriptor as ClassDescriptor
|
||||||
val controllerType = parameterDescriptor.type.arguments[0].type
|
val controllerType = parameterDescriptor.type.arguments[0].type
|
||||||
|
|||||||
Reference in New Issue
Block a user