diff --git a/core/descriptors/src/org/jetbrains/kotlin/descriptors/SimpleFunctionDescriptor.java b/core/descriptors/src/org/jetbrains/kotlin/descriptors/SimpleFunctionDescriptor.java index 62980e439f4..e5cfd19b757 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/descriptors/SimpleFunctionDescriptor.java +++ b/core/descriptors/src/org/jetbrains/kotlin/descriptors/SimpleFunctionDescriptor.java @@ -19,6 +19,8 @@ package org.jetbrains.kotlin.descriptors; import org.jetbrains.annotations.NotNull; import org.jetbrains.kotlin.name.Name; +import java.util.List; + /** * Simple functions are the ones with 'fun' keyword and function literals */ @@ -30,6 +32,9 @@ public interface SimpleFunctionDescriptor extends FunctionDescriptor { @NotNull SimpleFunctionDescriptor createRenamedCopy(@NotNull Name name); + @NotNull + SimpleFunctionDescriptor createCopyWithNewValueParameters(@NotNull List valueParameters); + @NotNull @Override SimpleFunctionDescriptor getOriginal(); diff --git a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/SimpleFunctionDescriptorImpl.java b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/SimpleFunctionDescriptorImpl.java index b2ea73386f5..dda85dfdcfe 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/SimpleFunctionDescriptorImpl.java +++ b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/SimpleFunctionDescriptorImpl.java @@ -115,4 +115,14 @@ public class SimpleFunctionDescriptorImpl extends FunctionDescriptorImpl impleme null, /* copyOverrides = */ true, getKind(), getValueParameters(), getExtensionReceiverParameterType(), getReturnType(), name ); } + + @NotNull + @Override + public SimpleFunctionDescriptor createCopyWithNewValueParameters(@NotNull List valueParameters) { + return (SimpleFunctionDescriptorImpl) doSubstitute( + TypeSubstitutor.EMPTY, getContainingDeclaration(), getModality(), getVisibility(), + isOperator(), isInfix(), isExternal(), isInline(), isTailrec(), + null, /* copyOverrides = */ true, getKind(), valueParameters, getExtensionReceiverParameterType(), getReturnType(), null + ); + } } diff --git a/core/descriptors/src/org/jetbrains/kotlin/types/error/ErrorSimpleFunctionDescriptorImpl.java b/core/descriptors/src/org/jetbrains/kotlin/types/error/ErrorSimpleFunctionDescriptorImpl.java index be659d3fb3c..302bc2ab188 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/types/error/ErrorSimpleFunctionDescriptorImpl.java +++ b/core/descriptors/src/org/jetbrains/kotlin/types/error/ErrorSimpleFunctionDescriptorImpl.java @@ -25,6 +25,8 @@ import org.jetbrains.kotlin.descriptors.impl.SimpleFunctionDescriptorImpl; import org.jetbrains.kotlin.name.Name; import org.jetbrains.kotlin.types.ErrorUtils; +import java.util.List; + public class ErrorSimpleFunctionDescriptorImpl extends SimpleFunctionDescriptorImpl { // used for diagnostic only @SuppressWarnings({"UnusedDeclaration", "FieldCanBeLocal"}) @@ -58,6 +60,12 @@ public class ErrorSimpleFunctionDescriptorImpl extends SimpleFunctionDescriptorI return this; } + @NotNull + @Override + public SimpleFunctionDescriptor createCopyWithNewValueParameters(@NotNull List valueParameters) { + return this; + } + @Override public void addOverriddenDescriptor(@NotNull CallableMemberDescriptor overriddenFunction) { // nop