From ca16f4231f749286fcf2b0f56e31531ea206e65c Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Fri, 20 Jun 2014 17:33:57 +0400 Subject: [PATCH] Extract Function: Infer parameter type candidates #KT-4940 Fixed --- .../jetbrains/jet/lang/types/TypeUtils.java | 6 +- .../ExtractKotlinFunctionHandler.kt | 5 +- .../extractFunction/ExtractionDescriptor.kt | 18 ++- .../extractFunction/extractFunctionUtils.kt | 147 +++++++++++------- .../ui/KotlinParameterTablePanel.java | 10 +- .../basic/fragmentWithComment.kt | 1 + .../basic/fragmentWithComment.kt.after | 1 + .../basic/fragmentWithMultilineComment.kt | 1 + .../fragmentWithMultilineComment.kt.after | 1 + .../extractFunction/basic/refInReturn.kt | 1 + .../basic/refInReturn.kt.after | 1 + .../conditionalBreakWithIf.kt | 2 + .../conditionalBreakWithIf.kt.after | 2 + .../conditionalBreakWithIfElse.kt | 2 + .../conditionalBreakWithIfElse.kt.after | 2 + .../conditionalBreakWithWhen.kt | 2 + .../conditionalBreakWithWhen.kt.after | 2 + .../conditionalReturnWithIf.kt | 2 + .../conditionalReturnWithIf.kt.after | 2 + .../conditionalReturnWithIfElse.kt | 2 + .../conditionalReturnWithIfElse.kt.after | 2 + .../conditionalReturnWithWhen.kt | 2 + .../conditionalReturnWithWhen.kt.after | 2 + .../unconditionalBreakWithIf.kt | 2 + .../unconditionalBreakWithIf.kt.after | 2 + .../unconditionalBreakWithIfElse.kt | 2 + .../unconditionalBreakWithIfElse.kt.after | 2 + .../unconditionalBreakWithWhen.kt | 2 + .../unconditionalBreakWithWhen.kt.after | 2 + .../controlFlow/default/defaultCF.kt | 2 + .../controlFlow/default/defaultCF.kt.after | 2 + .../controlFlow/default/defaultCFWithJumps.kt | 1 + .../default/defaultCFWithJumps.kt.after | 1 + .../default/ignoredReturnValueWithIf.kt | 2 + .../default/ignoredReturnValueWithIf.kt.after | 2 + .../ignoredReturnValueWithIfNoBlocks.kt | 2 + .../ignoredReturnValueWithIfNoBlocks.kt.after | 2 + .../default/ignoredReturnValueWithWhen.kt | 2 + .../ignoredReturnValueWithWhen.kt.after | 2 + .../ignoredReturnValueWithWhenNoBlocks.kt | 2 + ...gnoredReturnValueWithWhenNoBlocks.kt.after | 2 + .../definiteReturns/definiteReturnWithIf.kt | 2 + .../definiteReturnWithIf.kt.after | 2 + .../definiteReturns/definiteReturnWithWhen.kt | 2 + .../definiteReturnWithWhen.kt.after | 2 + .../definiteReturns/singleDefiniteReturn.kt | 2 + .../singleDefiniteReturn.kt.after | 2 + .../evalExprInIfCondition.kt | 2 + .../evalExprInIfCondition.kt.after | 2 + .../evaluateExpression/evalExprInIfElse.kt | 2 + .../evalExprInIfElse.kt.after | 2 + .../evalExprInWhenBranch.kt | 1 + .../evalExprInWhenBranch.kt.after | 1 + .../evalExprInWhenSubject.kt | 2 + .../evalExprInWhenSubject.kt.after | 2 + .../evalExpressionBodyFunction.kt | 2 + .../evalExpressionBodyFunction.kt.after | 2 + .../evaluateExpression/evalIfExpr.kt | 2 + .../evaluateExpression/evalIfExpr.kt.after | 2 + .../evaluateExpression/evalWhenExpr.kt | 2 + .../evaluateExpression/evalWhenExpr.kt.after | 2 + .../evaluateExpression/simpleEvalExpr.kt | 2 + .../simpleEvalExpr.kt.after | 2 + .../outputValues/singleOutputValue.kt | 2 + .../outputValues/singleOutputValue.kt.after | 2 + .../outputValues/singleOutputValueWithIf.kt | 2 + .../singleOutputValueWithIf.kt.after | 2 + .../singleOutputValueWithIfElse.kt | 2 + .../singleOutputValueWithIfElse.kt.after | 2 + .../outputValues/singleOutputValueWithWhen.kt | 2 + .../singleOutputValueWithWhen.kt.after | 2 + .../singleOutputValueWithWhenElse.kt | 2 + .../singleOutputValueWithWhenElse.kt.after | 2 + .../controlFlow/throws/breakWithThrow.kt | 2 + .../throws/breakWithThrow.kt.after | 2 + .../controlFlow/throws/continueWithThrow.kt | 2 + .../throws/continueWithThrow.kt.after | 2 + .../throws/evalExpressionWithThrow.kt | 2 + .../throws/evalExpressionWithThrow.kt.after | 2 + .../throws/nonValuedReturnWithThrow.kt | 2 + .../throws/nonValuedReturnWithThrow.kt.after | 2 + .../throws/outputValueWithThrow.kt | 1 + .../throws/outputValueWithThrow.kt.after | 1 + .../controlFlow/throws/returnWithThrow.kt | 2 + .../throws/returnWithThrow.kt.after | 2 + .../defaultContainer/classFunction.kt | 2 + .../defaultContainer/classFunction.kt.after | 2 + .../defaultContainer/topLevelFunction.kt | 2 + .../topLevelFunction.kt.after | 2 + .../candidateTypes/nonNullableTypes.kt | 14 ++ .../candidateTypes/nonNullableTypes.kt.after | 18 +++ .../candidateTypes/nullableTypes.kt | 14 ++ .../candidateTypes/nullableTypes.kt.after | 18 +++ .../candidateTypes/typeHierarchy1.kt | 35 +++++ .../candidateTypes/typeHierarchy1.kt.after | 39 +++++ .../candidateTypes/typeHierarchy2.kt | 35 +++++ .../candidateTypes/typeHierarchy2.kt.after | 39 +++++ .../candidateTypes/typeHierarchy3.kt | 35 +++++ .../candidateTypes/typeHierarchy3.kt.after | 39 +++++ .../candidateTypes/typeHierarchy4.kt | 35 +++++ .../candidateTypes/typeHierarchy4.kt.after | 39 +++++ .../explicitLabeledThisInMember.kt | 2 + .../explicitLabeledThisInMember.kt.after | 2 + .../extractThis/explicitThisInExtension.kt | 1 + .../explicitThisInExtension.kt.after | 1 + .../extractThis/explicitThisInMember.kt | 2 + .../extractThis/explicitThisInMember.kt.after | 2 + .../implicitAndExplicitLabeledThisInMember.kt | 2 + ...citAndExplicitLabeledThisInMember.kt.after | 2 + .../implicitAndExplicitThisInExtension.kt | 1 + ...mplicitAndExplicitThisInExtension.kt.after | 1 + .../extractThis/implicitThisInExtension.kt | 1 + .../implicitThisInExtension.kt.after | 1 + .../extractThis/implicitThisInMember.kt | 2 + .../extractThis/implicitThisInMember.kt.after | 2 + .../parameters/misc/multiDeclaration.kt | 1 + .../parameters/misc/multiDeclaration.kt.after | 1 + .../parameters/misc/multipleOccurrences.kt | 3 + .../misc/multipleOccurrences.kt.after | 3 + .../parameters/misc/usagesInCallArgs.kt | 4 + .../parameters/misc/usagesInCallArgs.kt.after | 4 + .../typeParameters/simpleTypeParameter.kt | 1 + .../simpleTypeParameter.kt.after | 1 + .../simpleTypeParameterWithConstraint.kt | 1 + ...simpleTypeParameterWithConstraint.kt.after | 1 + .../typeParameters/typeParamInArgument.kt | 1 + .../typeParamInArgument.kt.after | 1 + .../typeParametersAndConstraintsCombined1.kt | 3 + ...ParametersAndConstraintsCombined1.kt.after | 3 + .../typeParametersAndConstraintsCombined2.kt | 2 + ...ParametersAndConstraintsCombined2.kt.after | 2 + .../typeParametersAndConstraintsCombined3.kt | 1 + ...ParametersAndConstraintsCombined3.kt.after | 1 + .../typeParameters/typeParametersCombined1.kt | 3 + .../typeParametersCombined1.kt.after | 3 + .../typeParameters/typeParametersCombined2.kt | 2 + .../typeParametersCombined2.kt.after | 2 + .../typeParameters/typeParametersCombined3.kt | 1 + .../typeParametersCombined3.kt.after | 1 + .../typeParametersCombinedAndThis.kt | 2 + .../typeParametersCombinedAndThis.kt.after | 2 + .../AbstractJetExtractionTest.kt | 22 ++- .../JetExtractionTestGenerated.java | 41 ++++- 143 files changed, 759 insertions(+), 78 deletions(-) create mode 100644 idea/testData/refactoring/extractFunction/parameters/candidateTypes/nonNullableTypes.kt create mode 100644 idea/testData/refactoring/extractFunction/parameters/candidateTypes/nonNullableTypes.kt.after create mode 100644 idea/testData/refactoring/extractFunction/parameters/candidateTypes/nullableTypes.kt create mode 100644 idea/testData/refactoring/extractFunction/parameters/candidateTypes/nullableTypes.kt.after create mode 100644 idea/testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy1.kt create mode 100644 idea/testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy1.kt.after create mode 100644 idea/testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy2.kt create mode 100644 idea/testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy2.kt.after create mode 100644 idea/testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy3.kt create mode 100644 idea/testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy3.kt.after create mode 100644 idea/testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy4.kt create mode 100644 idea/testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy4.kt.after diff --git a/core/descriptors/src/org/jetbrains/jet/lang/types/TypeUtils.java b/core/descriptors/src/org/jetbrains/jet/lang/types/TypeUtils.java index 3b81f28f08b..084f1b64deb 100644 --- a/core/descriptors/src/org/jetbrains/jet/lang/types/TypeUtils.java +++ b/core/descriptors/src/org/jetbrains/jet/lang/types/TypeUtils.java @@ -376,9 +376,13 @@ public class TypeUtils { } private static void collectImmediateSupertypes(@NotNull JetType type, @NotNull Collection result) { + boolean isNullable = type.isNullable(); TypeSubstitutor substitutor = TypeSubstitutor.create(type); for (JetType supertype : type.getConstructor().getSupertypes()) { - result.add(substitutor.substitute(supertype, Variance.INVARIANT)); + JetType substitutedType = substitutor.substitute(supertype, Variance.INVARIANT); + if (substitutedType != null) { + result.add(makeNullableIfNeeded(substitutedType, isNullable)); + } } } diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/ExtractKotlinFunctionHandler.kt b/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/ExtractKotlinFunctionHandler.kt index 86c3240f65f..69a2419c3cd 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/ExtractKotlinFunctionHandler.kt +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/ExtractKotlinFunctionHandler.kt @@ -59,7 +59,8 @@ public class ExtractKotlinFunctionHandler(public val allContainersEnabled: Boole editor: Editor, file: JetFile, elements: List, - targetSibling: PsiElement + targetSibling: PsiElement, + preprocessor: ((ExtractionDescriptor) -> Unit)? = null ) { val project = file.getProject() @@ -83,7 +84,7 @@ public class ExtractKotlinFunctionHandler(public val allContainersEnabled: Boole dialog.getCurrentDescriptor() } - + preprocessor?.invoke(descriptor) project.executeWriteCommand(EXTRACT_FUNCTION) { descriptor.generateFunction() } } diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/ExtractionDescriptor.kt b/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/ExtractionDescriptor.kt index c0684afe901..aa3ea32f116 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/ExtractionDescriptor.kt +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/ExtractionDescriptor.kt @@ -31,19 +31,21 @@ import org.jetbrains.jet.lang.psi.psiUtil.replaced import org.jetbrains.jet.lang.psi.JetQualifiedExpression import org.jetbrains.jet.lang.psi.JetTypeParameter import org.jetbrains.jet.lang.psi.JetTypeConstraint -import kotlin.properties.Delegates import org.jetbrains.jet.plugin.refactoring.extractFunction.AnalysisResult.Status import org.jetbrains.jet.plugin.refactoring.JetRefactoringBundle import org.jetbrains.jet.plugin.refactoring.extractFunction.AnalysisResult.ErrorMessage -data class Parameter( - val argumentText: String, - val name: String, - var mirrorVarName: String?, - val parameterType: JetType, - val receiverCandidate: Boolean -) { +trait Parameter { + val argumentText: String + val name: String + val mirrorVarName: String? + val parameterType: JetType + val parameterTypeCandidates: List + val receiverCandidate: Boolean + val nameForRef: String get() = mirrorVarName ?: name + + fun copy(name: String): Parameter } data class TypeParameter( diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/extractFunctionUtils.kt b/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/extractFunctionUtils.kt index 2508fd05c12..d2e8bcf7635 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/extractFunctionUtils.kt +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/extractFunctionUtils.kt @@ -38,7 +38,6 @@ import org.jetbrains.jet.lang.psi.JetPsiFactory.FunctionBuilder import org.jetbrains.jet.plugin.refactoring.JetNameValidatorImpl import org.jetbrains.jet.plugin.codeInsight.DescriptorToDeclarationUtil import org.jetbrains.jet.plugin.imports.canBeReferencedViaImport -import org.jetbrains.jet.lang.types.checker.JetTypeChecker import org.jetbrains.jet.lang.resolve.DescriptorUtils import com.intellij.psi.PsiNamedElement import org.jetbrains.jet.lang.descriptors.impl.LocalVariableDescriptor @@ -56,14 +55,7 @@ import org.jetbrains.jet.lang.diagnostics.Errors import org.jetbrains.jet.lang.psi.psiUtil.replaced import org.jetbrains.jet.plugin.refactoring.extractFunction.AnalysisResult.Status import org.jetbrains.jet.plugin.refactoring.extractFunction.AnalysisResult.ErrorMessage -import org.jetbrains.jet.lang.cfg.pseudocode.instructions.jumps.* import org.jetbrains.jet.lang.cfg.pseudocode.instructions.special.LocalFunctionDeclarationInstruction -import org.jetbrains.jet.lang.cfg.pseudocode.instructions.eval.WriteValueInstruction -import org.jetbrains.jet.lang.cfg.pseudocode.instructions.Instruction -import org.jetbrains.jet.lang.cfg.pseudocode.instructions.eval.CallInstruction -import org.jetbrains.jet.lang.cfg.pseudocode.instructions.JetElementInstruction -import org.jetbrains.jet.lang.cfg.pseudocode.instructions.eval.OperationInstruction -import org.jetbrains.jet.lang.cfg.pseudocode.instructions.eval.ReadValueInstruction import org.jetbrains.jet.lang.cfg.pseudocode.instructions.* import org.jetbrains.jet.lang.cfg.pseudocode.instructions.eval.* import org.jetbrains.jet.lang.cfg.pseudocode.instructions.jumps.* @@ -72,6 +64,7 @@ import org.jetbrains.jet.lang.cfg.pseudocodeTraverser.traverse import org.jetbrains.jet.lang.cfg.pseudocodeTraverser.TraversalOrder import org.jetbrains.jet.lang.resolve.bindingContextUtil.getTargetFunctionDescriptor import com.intellij.psi.PsiWhiteSpace +import org.jetbrains.jet.lang.resolve.OverridingUtil private val DEFAULT_FUNCTION_NAME = "myFun" private val DEFAULT_RETURN_TYPE = KotlinBuiltIns.getInstance().getUnitType() @@ -325,13 +318,57 @@ private fun JetType.processTypeIfExtractable( } } -private fun ExtractionData.inferParametersInfo(commonParent: PsiElement, - localInstructions: List, - bindingContext: BindingContext, - replacementMap: MutableMap, - parameters: MutableSet, - typeParameters: MutableSet, - nonDenotableTypes: MutableSet): ErrorMessage? { +private class MutableParameter( + override val argumentText: String, + override val name: String, + override val mirrorVarName: String?, + override val receiverCandidate: Boolean +): Parameter { + // All modifications happen in the same thread + private var writable: Boolean = true + private val defaultTypes = HashSet() + private val typePredicates = HashSet() + + fun addDefaultType(jetType: JetType) { + assert(writable, "Can't add type to non-writable parameter $name") + defaultTypes.add(jetType) + } + + fun addTypePredicate(predicate: TypePredicate) { + assert(writable, "Can't add type predicate to non-writable parameter $name") + typePredicates.add(predicate) + } + + override val parameterTypeCandidates: List by Delegates.lazy { + writable = false + listOf(parameterType) + TypeUtils.getAllSupertypes(parameterType).filter(and(typePredicates)) + } + + override val parameterType: JetType by Delegates.lazy { + writable = false + CommonSupertypes.commonSupertype(defaultTypes) + } + + override fun copy(name: String): Parameter = DelegatingParameter(this, name) +} + +private class DelegatingParameter( + val original: Parameter, + override val name: String +): Parameter by original { + override fun copy(name: String): Parameter = DelegatingParameter(original, name) +} + +private fun ExtractionData.inferParametersInfo( + commonParent: PsiElement, + pseudocode: Pseudocode, + localInstructions: List, + bindingContext: BindingContext, + replacementMap: MutableMap, + parameters: MutableSet, + typeParameters: MutableSet, + nonDenotableTypes: MutableSet +): ErrorMessage? { val varNameValidator = JetNameValidatorImpl( commonParent.getParentByType(javaClass()), originalElements.first, @@ -339,7 +376,9 @@ private fun ExtractionData.inferParametersInfo(commonParent: PsiElement, ) val modifiedVarDescriptors = localInstructions.getModifiedVarDescriptors(bindingContext) - val extractedDescriptorToParameter = HashMap() + val extractedDescriptorToParameter = HashMap() + + val valueUsageMap = pseudocode.collectValueUsages() for (refInfo in getBrokenReferencesInfo(createTemporaryCodeBlock())) { val (originalRef, originalDeclaration, originalDescriptor, resolvedCall) = refInfo.resolveResult @@ -397,57 +436,40 @@ private fun ExtractionData.inferParametersInfo(commonParent: PsiElement, if (extractParameter) { val parameterType = when { receiver.exists() -> receiver.getType() - else -> bindingContext[BindingContext.EXPRESSION_TYPE, originalRef] ?: DEFAULT_PARAMETER_TYPE + else -> bindingContext[BindingContext.AUTOCAST, originalRef] + ?: bindingContext[BindingContext.EXPRESSION_TYPE, originalRef] + ?: DEFAULT_PARAMETER_TYPE } if (!parameterType.processTypeIfExtractable(bindingContext, typeParameters, nonDenotableTypes)) continue - val existingParameter = extractedDescriptorToParameter[descriptorToExtract] - val parameter: Parameter = - if (existingParameter != null) { - if (!JetTypeChecker.INSTANCE.equalTypes(existingParameter.parameterType, parameterType)) { - val newParameter = existingParameter.copy( - parameterType = CommonSupertypes.commonSupertype(listOf(existingParameter.parameterType, parameterType)) - ) + val parameterTypePredicate = + pseudocode.getElementValue(originalRef)?.let { getExpectedTypePredicate(it, valueUsageMap, bindingContext) } ?: AllTypes - extractedDescriptorToParameter[descriptorToExtract] = newParameter - - for ((offset, replacement) in replacementMap) { - if (replacement is ParameterReplacement && replacement.parameter == existingParameter) { - replacementMap[offset] = replacement.copy(newParameter) - } - } - - newParameter + val parameter = extractedDescriptorToParameter.getOrPut(descriptorToExtract) { + val parameterName = + if (extractThis) { + JetNameSuggester.suggestNames(parameterType, varNameValidator, null).first() } - else existingParameter - } - else { - val parameterName = - if (extractThis) { - JetNameSuggester.suggestNames(parameterType, varNameValidator, null).first() - } - else originalDeclaration.getName()!! + else originalDeclaration.getName()!! - val mirrorVarName = if (descriptorToExtract in modifiedVarDescriptors) - varNameValidator.validateName(parameterName)!! - else null + val mirrorVarName = + if (descriptorToExtract in modifiedVarDescriptors) varNameValidator.validateName(parameterName)!! else null - val argumentText = - if (hasThisReceiver && extractThis) - "this@${parameterType.getConstructor().getDeclarationDescriptor()!!.getName().asString()}" - else - (thisExpr ?: ref).getText() ?: throw AssertionError("'this' reference shouldn't be empty: code fragment = ${getCodeFragmentText()}") + val argumentText = + if (hasThisReceiver && extractThis) + "this@${parameterType.getConstructor().getDeclarationDescriptor()!!.getName().asString()}" + else + (thisExpr ?: ref).getText() ?: throw AssertionError("'this' reference shouldn't be empty: code fragment = ${getCodeFragmentText()}") - val parameter = Parameter(argumentText, parameterName, mirrorVarName, parameterType, extractThis) + MutableParameter(argumentText, parameterName, mirrorVarName, extractThis) + } - extractedDescriptorToParameter[descriptorToExtract] = parameter - - parameter - } + parameter.addDefaultType(parameterType) + parameter.addTypePredicate(parameterTypePredicate) replacementMap[refInfo.offsetInBody] = - if (hasThisReceiver && extractThis) AddPrefixReplacement(parameter) else RenameReplacement(parameter) + if (hasThisReceiver && extractThis) AddPrefixReplacement(parameter) else RenameReplacement(parameter) } } } @@ -543,7 +565,9 @@ fun ExtractionData.performAnalysis(): AnalysisResult { val parameters = HashSet() val typeParameters = HashSet() val nonDenotableTypes = HashSet() - val parameterError = inferParametersInfo(commonParent, localInstructions, bindingContext, replacementMap, parameters, typeParameters, nonDenotableTypes) + val parameterError = inferParametersInfo( + commonParent, pseudocode, localInstructions, bindingContext, replacementMap, parameters, typeParameters, nonDenotableTypes + ) if (parameterError != null) { return AnalysisResult(null, Status.CRITICAL_ERROR, listOf(parameterError)) } @@ -624,7 +648,7 @@ fun ExtractionDescriptor.validate(): ExtractionDescriptorWithConflicts { if (diagnostics.any { it.getFactory() == Errors.UNRESOLVED_REFERENCE } || (currentDescriptor != null && !ErrorUtils.isError(currentDescriptor) - && !compareDescriptors(currentDescriptor, resolveResult.descriptor))) { + && !comparePossiblyOverridingDescriptors(currentDescriptor, resolveResult.descriptor))) { conflicts.putValue( currentRefExpr, JetRefactoringBundle.message( @@ -649,6 +673,15 @@ fun ExtractionDescriptor.validate(): ExtractionDescriptorWithConflicts { return ExtractionDescriptorWithConflicts(this, conflicts) } +private fun comparePossiblyOverridingDescriptors(currentDescriptor: DeclarationDescriptor?, originalDescriptor: DeclarationDescriptor?): Boolean { + if (compareDescriptors(currentDescriptor, originalDescriptor)) return true + if (originalDescriptor is CallableDescriptor) { + if (!OverridingUtil.traverseOverridenDescriptors(originalDescriptor) { !compareDescriptors(currentDescriptor, it) }) return true + } + + return false +} + fun ExtractionDescriptor.getFunctionText( withBody: Boolean = true, descriptorRenderer: DescriptorRenderer = DescriptorRenderer.FQ_NAMES_IN_TYPES diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/ui/KotlinParameterTablePanel.java b/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/ui/KotlinParameterTablePanel.java index 119c3cb47f2..2de47490a08 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/ui/KotlinParameterTablePanel.java +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/ui/KotlinParameterTablePanel.java @@ -70,17 +70,11 @@ public class KotlinParameterTablePanel extends JPanel { } public String getTypeAsString() { - return DescriptorRenderer.SHORT_NAMES_IN_TYPES.renderType(getOriginalParameter().getParameterType()); + return DescriptorRenderer.SHORT_NAMES_IN_TYPES.renderType(getOriginalParameter().getParameterTypeCandidates().get(0)); } public Parameter toParameter() { - return new Parameter( - originalParameter.getArgumentText(), - name, - originalParameter.getMirrorVarName(), - originalParameter.getParameterType(), - originalParameter.getReceiverCandidate() - ); + return originalParameter.copy(name); } } diff --git a/idea/testData/refactoring/extractFunction/basic/fragmentWithComment.kt b/idea/testData/refactoring/extractFunction/basic/fragmentWithComment.kt index 18c78fd61bb..3372cfd9265 100644 --- a/idea/testData/refactoring/extractFunction/basic/fragmentWithComment.kt +++ b/idea/testData/refactoring/extractFunction/basic/fragmentWithComment.kt @@ -1,3 +1,4 @@ +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { // test diff --git a/idea/testData/refactoring/extractFunction/basic/fragmentWithComment.kt.after b/idea/testData/refactoring/extractFunction/basic/fragmentWithComment.kt.after index 608dabf999a..b8aaaec2df4 100644 --- a/idea/testData/refactoring/extractFunction/basic/fragmentWithComment.kt.after +++ b/idea/testData/refactoring/extractFunction/basic/fragmentWithComment.kt.after @@ -1,3 +1,4 @@ +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { if (b(a)) return a diff --git a/idea/testData/refactoring/extractFunction/basic/fragmentWithMultilineComment.kt b/idea/testData/refactoring/extractFunction/basic/fragmentWithMultilineComment.kt index 7a6adf3d142..1a112d5181b 100644 --- a/idea/testData/refactoring/extractFunction/basic/fragmentWithMultilineComment.kt +++ b/idea/testData/refactoring/extractFunction/basic/fragmentWithMultilineComment.kt @@ -1,3 +1,4 @@ +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { /* diff --git a/idea/testData/refactoring/extractFunction/basic/fragmentWithMultilineComment.kt.after b/idea/testData/refactoring/extractFunction/basic/fragmentWithMultilineComment.kt.after index 442909f5953..1879862bb0a 100644 --- a/idea/testData/refactoring/extractFunction/basic/fragmentWithMultilineComment.kt.after +++ b/idea/testData/refactoring/extractFunction/basic/fragmentWithMultilineComment.kt.after @@ -1,3 +1,4 @@ +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { if (b(a)) return a diff --git a/idea/testData/refactoring/extractFunction/basic/refInReturn.kt b/idea/testData/refactoring/extractFunction/basic/refInReturn.kt index 0fd72488273..029b2dca931 100644 --- a/idea/testData/refactoring/extractFunction/basic/refInReturn.kt +++ b/idea/testData/refactoring/extractFunction/basic/refInReturn.kt @@ -1,3 +1,4 @@ +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { println(a) diff --git a/idea/testData/refactoring/extractFunction/basic/refInReturn.kt.after b/idea/testData/refactoring/extractFunction/basic/refInReturn.kt.after index ffe390de69e..e9052bbf124 100644 --- a/idea/testData/refactoring/extractFunction/basic/refInReturn.kt.after +++ b/idea/testData/refactoring/extractFunction/basic/refInReturn.kt.after @@ -1,3 +1,4 @@ +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { if (b(a)) return a diff --git a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIf.kt b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIf.kt index f836b2a6581..0963d801a51 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIf.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIf.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIf.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIf.kt.after index e10096f1f3d..3efbe1b4c57 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIf.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIf.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIfElse.kt b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIfElse.kt index 03e115b80d6..92d438a0062 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIfElse.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIfElse.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIfElse.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIfElse.kt.after index ac6cf45ac2c..867bfdceda6 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIfElse.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIfElse.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithWhen.kt b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithWhen.kt index 4286e85cc20..f564b6bf2df 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithWhen.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithWhen.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithWhen.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithWhen.kt.after index 4c18664b220..239d825363d 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithWhen.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithWhen.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithIf.kt b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithIf.kt index ecd386b198d..3158bd16036 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithIf.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithIf.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithIf.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithIf.kt.after index 4fc2c0ba18c..154bd1413a6 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithIf.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithIf.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithIfElse.kt b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithIfElse.kt index 199f2ba5304..819f00074b8 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithIfElse.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithIfElse.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithIfElse.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithIfElse.kt.after index a1c786aa896..0ef66d95783 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithIfElse.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithIfElse.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithWhen.kt b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithWhen.kt index ffa88f296c7..741510eda5a 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithWhen.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithWhen.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithWhen.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithWhen.kt.after index 81e18d6d4a9..7e4c43b906e 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithWhen.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithWhen.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithIf.kt b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithIf.kt index 0e4a5dcd7d7..1af325848c9 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithIf.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithIf.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithIf.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithIf.kt.after index e0378144224..580507294f3 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithIf.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithIf.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithIfElse.kt b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithIfElse.kt index 7bb6f8d2bde..ceddd650382 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithIfElse.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithIfElse.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithIfElse.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithIfElse.kt.after index 2c2cb51f5d2..fb152f9057a 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithIfElse.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithIfElse.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithWhen.kt b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithWhen.kt index f25eda5649f..a5ff642baa0 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithWhen.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithWhen.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithWhen.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithWhen.kt.after index f40ffbefe6d..1d272a7ca5d 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithWhen.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithWhen.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/default/defaultCF.kt b/idea/testData/refactoring/extractFunction/controlFlow/default/defaultCF.kt index 9e380c0605e..626f08973f4 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/default/defaultCF.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/default/defaultCF.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int, Comparable +// PARAM_TYPES: kotlin.Int, Number, Comparable, Any // SIBLING: fun foo(a: Int) { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/default/defaultCF.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/default/defaultCF.kt.after index 70a1a7925d7..4ccdf286943 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/default/defaultCF.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/default/defaultCF.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int, Comparable +// PARAM_TYPES: kotlin.Int, Number, Comparable, Any // SIBLING: fun foo(a: Int) { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/default/defaultCFWithJumps.kt b/idea/testData/refactoring/extractFunction/controlFlow/default/defaultCFWithJumps.kt index e2399edb49f..7dcfff262f3 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/default/defaultCFWithJumps.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/default/defaultCFWithJumps.kt @@ -1,3 +1,4 @@ +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int) { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/default/defaultCFWithJumps.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/default/defaultCFWithJumps.kt.after index 0a6786457c3..f032a9a01d5 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/default/defaultCFWithJumps.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/default/defaultCFWithJumps.kt.after @@ -1,3 +1,4 @@ +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int) { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithIf.kt b/idea/testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithIf.kt index c9d2cd5315d..7b4ae2ec974 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithIf.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithIf.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int, Number, Comparable, Any fun bar(a: Int): Int { println(a) return a + 10 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithIf.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithIf.kt.after index b2f3082b36f..b7eca1131bd 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithIf.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithIf.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int, Number, Comparable, Any fun bar(a: Int): Int { println(a) return a + 10 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithIfNoBlocks.kt b/idea/testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithIfNoBlocks.kt index 776c48ce0a4..7ee6d3ef64d 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithIfNoBlocks.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithIfNoBlocks.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int, Number, Comparable, Any fun bar(a: Int): Int { println(a) return a + 10 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithIfNoBlocks.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithIfNoBlocks.kt.after index 8dbbebfbb6e..2c123ba930f 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithIfNoBlocks.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithIfNoBlocks.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int, Number, Comparable, Any fun bar(a: Int): Int { println(a) return a + 10 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithWhen.kt b/idea/testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithWhen.kt index 7d8e025b621..e4e643561b5 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithWhen.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithWhen.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int, Number, Comparable, Any fun bar(a: Int): Int { println(a) return a + 10 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithWhen.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithWhen.kt.after index 82c1f66c80e..e6422989354 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithWhen.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithWhen.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int, Number, Comparable, Any fun bar(a: Int): Int { println(a) return a + 10 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithWhenNoBlocks.kt b/idea/testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithWhenNoBlocks.kt index 88a828799ed..3b98c0fc77c 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithWhenNoBlocks.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithWhenNoBlocks.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int, Number, Comparable, Any fun bar(a: Int): Int { println(a) return a + 10 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithWhenNoBlocks.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithWhenNoBlocks.kt.after index b8aa0d9e44d..bf7a312045e 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithWhenNoBlocks.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithWhenNoBlocks.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int, Number, Comparable, Any fun bar(a: Int): Int { println(a) return a + 10 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/definiteReturnWithIf.kt b/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/definiteReturnWithIf.kt index 1d23aa7b381..3984a3238a6 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/definiteReturnWithIf.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/definiteReturnWithIf.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/definiteReturnWithIf.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/definiteReturnWithIf.kt.after index 96feeacb740..fce0d54ffba 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/definiteReturnWithIf.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/definiteReturnWithIf.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/definiteReturnWithWhen.kt b/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/definiteReturnWithWhen.kt index 117adfe3791..8b3ddc1ca47 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/definiteReturnWithWhen.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/definiteReturnWithWhen.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/definiteReturnWithWhen.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/definiteReturnWithWhen.kt.after index f8fceed3237..cf488a71e8f 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/definiteReturnWithWhen.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/definiteReturnWithWhen.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/singleDefiniteReturn.kt b/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/singleDefiniteReturn.kt index fa31f31fdda..43084f4ef5e 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/singleDefiniteReturn.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/singleDefiniteReturn.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/singleDefiniteReturn.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/singleDefiniteReturn.kt.after index 2ac53541783..3b3bc9b1e0c 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/singleDefiniteReturn.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/singleDefiniteReturn.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInIfCondition.kt b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInIfCondition.kt index c5e075ff91c..a84a001f9d2 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInIfCondition.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInIfCondition.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInIfCondition.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInIfCondition.kt.after index 1085b675856..594bee9b23e 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInIfCondition.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInIfCondition.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInIfElse.kt b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInIfElse.kt index 39ac60a8466..d5df8a1f9af 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInIfElse.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInIfElse.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInIfElse.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInIfElse.kt.after index 957aa383f92..ec9b09d88a7 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInIfElse.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInIfElse.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInWhenBranch.kt b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInWhenBranch.kt index afee5edb18f..6bd445a3073 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInWhenBranch.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInWhenBranch.kt @@ -1,3 +1,4 @@ +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInWhenBranch.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInWhenBranch.kt.after index e916a7f5b11..ae9d877f7ce 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInWhenBranch.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInWhenBranch.kt.after @@ -1,3 +1,4 @@ +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInWhenSubject.kt b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInWhenSubject.kt index 5e4cca26943..c6a90882e00 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInWhenSubject.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInWhenSubject.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInWhenSubject.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInWhenSubject.kt.after index 28242ea436c..3a3bd47e9d4 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInWhenSubject.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInWhenSubject.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExpressionBodyFunction.kt b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExpressionBodyFunction.kt index d2cfaeddfe5..b3b22875daf 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExpressionBodyFunction.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExpressionBodyFunction.kt @@ -1,2 +1,4 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int, b: Int): Int = a + b diff --git a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExpressionBodyFunction.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExpressionBodyFunction.kt.after index c5ef5bfc557..3a7fc579e04 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExpressionBodyFunction.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExpressionBodyFunction.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int, b: Int): Int = i(a, b) diff --git a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalIfExpr.kt b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalIfExpr.kt index 3222a55b7d7..66668cd0b4b 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalIfExpr.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalIfExpr.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalIfExpr.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalIfExpr.kt.after index effcbf7e4cc..61c2300399c 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalIfExpr.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalIfExpr.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalWhenExpr.kt b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalWhenExpr.kt index 3b198ecc4be..b3e1079cea2 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalWhenExpr.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalWhenExpr.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalWhenExpr.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalWhenExpr.kt.after index 3c7904f49d0..42d92c15c5c 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalWhenExpr.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalWhenExpr.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/simpleEvalExpr.kt b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/simpleEvalExpr.kt index 77991cf0170..d42e002c5c0 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/simpleEvalExpr.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/simpleEvalExpr.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/simpleEvalExpr.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/simpleEvalExpr.kt.after index 2ac53541783..3b3bc9b1e0c 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/simpleEvalExpr.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/simpleEvalExpr.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValue.kt b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValue.kt index 4fa1218b258..50f8e17ccfa 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValue.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValue.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { var b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValue.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValue.kt.after index d02accf3487..f125443db71 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValue.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValue.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { var b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithIf.kt b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithIf.kt index 02665c4eb3e..2d7a4b3b1c6 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithIf.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithIf.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int, Comparable +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { var b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithIf.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithIf.kt.after index 211b37c956d..34458f1ff65 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithIf.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithIf.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int, Comparable +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { var b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithIfElse.kt b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithIfElse.kt index cd0880bf48c..c42c15350e1 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithIfElse.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithIfElse.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { var b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithIfElse.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithIfElse.kt.after index f85082d6c38..c4af982ba6b 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithIfElse.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithIfElse.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { var b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithWhen.kt b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithWhen.kt index 710aebe5ff3..c804d9d1eb2 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithWhen.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithWhen.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int, Comparable +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { var b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithWhen.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithWhen.kt.after index d51486fd376..a2ce6551c1c 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithWhen.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithWhen.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int, Comparable +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { var b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithWhenElse.kt b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithWhenElse.kt index 62cb4836a34..e49a2b0e424 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithWhenElse.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithWhenElse.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { var b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithWhenElse.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithWhenElse.kt.after index b7dfbc2c107..70755a7e64d 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithWhenElse.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithWhenElse.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { var b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/throws/breakWithThrow.kt b/idea/testData/refactoring/extractFunction/controlFlow/throws/breakWithThrow.kt index 60e5b4f04e6..4d97b3dae34 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/throws/breakWithThrow.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/throws/breakWithThrow.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/throws/breakWithThrow.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/throws/breakWithThrow.kt.after index b8eb407c5da..1849ddf19f7 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/throws/breakWithThrow.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/throws/breakWithThrow.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/throws/continueWithThrow.kt b/idea/testData/refactoring/extractFunction/controlFlow/throws/continueWithThrow.kt index 919ffd16e73..8b775628609 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/throws/continueWithThrow.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/throws/continueWithThrow.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/throws/continueWithThrow.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/throws/continueWithThrow.kt.after index 3241bcc9ddd..35e7cbd7555 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/throws/continueWithThrow.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/throws/continueWithThrow.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/throws/evalExpressionWithThrow.kt b/idea/testData/refactoring/extractFunction/controlFlow/throws/evalExpressionWithThrow.kt index 3710051cd59..e3ac46dc63a 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/throws/evalExpressionWithThrow.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/throws/evalExpressionWithThrow.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/throws/evalExpressionWithThrow.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/throws/evalExpressionWithThrow.kt.after index bda988ff2f0..a31337f0084 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/throws/evalExpressionWithThrow.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/throws/evalExpressionWithThrow.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/throws/nonValuedReturnWithThrow.kt b/idea/testData/refactoring/extractFunction/controlFlow/throws/nonValuedReturnWithThrow.kt index 7c1c6f1a4cf..5e830e28a1d 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/throws/nonValuedReturnWithThrow.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/throws/nonValuedReturnWithThrow.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int) { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/throws/nonValuedReturnWithThrow.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/throws/nonValuedReturnWithThrow.kt.after index e2c66d8ce95..c11246bb9dc 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/throws/nonValuedReturnWithThrow.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/throws/nonValuedReturnWithThrow.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int) { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/throws/outputValueWithThrow.kt b/idea/testData/refactoring/extractFunction/controlFlow/throws/outputValueWithThrow.kt index 514aa2941ff..06211d31505 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/throws/outputValueWithThrow.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/throws/outputValueWithThrow.kt @@ -1,3 +1,4 @@ +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { var b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/throws/outputValueWithThrow.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/throws/outputValueWithThrow.kt.after index 430e72c1b3a..466c582391d 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/throws/outputValueWithThrow.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/throws/outputValueWithThrow.kt.after @@ -1,3 +1,4 @@ +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { var b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/throws/returnWithThrow.kt b/idea/testData/refactoring/extractFunction/controlFlow/throws/returnWithThrow.kt index fcff707f1d0..d0c974d147a 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/throws/returnWithThrow.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/throws/returnWithThrow.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/throws/returnWithThrow.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/throws/returnWithThrow.kt.after index 819b4b274e0..9fed3c2fe1b 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/throws/returnWithThrow.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/throws/returnWithThrow.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/defaultContainer/classFunction.kt b/idea/testData/refactoring/extractFunction/defaultContainer/classFunction.kt index 5b2f79699e1..6cf938ac03d 100644 --- a/idea/testData/refactoring/extractFunction/defaultContainer/classFunction.kt +++ b/idea/testData/refactoring/extractFunction/defaultContainer/classFunction.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int class A { class B { fun foo(a: Int, b: Int): Int { diff --git a/idea/testData/refactoring/extractFunction/defaultContainer/classFunction.kt.after b/idea/testData/refactoring/extractFunction/defaultContainer/classFunction.kt.after index 41d443a15c6..efd25e31a75 100644 --- a/idea/testData/refactoring/extractFunction/defaultContainer/classFunction.kt.after +++ b/idea/testData/refactoring/extractFunction/defaultContainer/classFunction.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int class A { class B { fun foo(a: Int, b: Int): Int { diff --git a/idea/testData/refactoring/extractFunction/defaultContainer/topLevelFunction.kt b/idea/testData/refactoring/extractFunction/defaultContainer/topLevelFunction.kt index 3d8111d8964..943cd2cb1de 100644 --- a/idea/testData/refactoring/extractFunction/defaultContainer/topLevelFunction.kt +++ b/idea/testData/refactoring/extractFunction/defaultContainer/topLevelFunction.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int fun foo(a: Int, b: Int): Int { return a + b - 1 } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/defaultContainer/topLevelFunction.kt.after b/idea/testData/refactoring/extractFunction/defaultContainer/topLevelFunction.kt.after index 7d4acfb97ea..ae7efed9cba 100644 --- a/idea/testData/refactoring/extractFunction/defaultContainer/topLevelFunction.kt.after +++ b/idea/testData/refactoring/extractFunction/defaultContainer/topLevelFunction.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int fun foo(a: Int, b: Int): Int { return i(a, b) } diff --git a/idea/testData/refactoring/extractFunction/parameters/candidateTypes/nonNullableTypes.kt b/idea/testData/refactoring/extractFunction/parameters/candidateTypes/nonNullableTypes.kt new file mode 100644 index 00000000000..4dafde070ed --- /dev/null +++ b/idea/testData/refactoring/extractFunction/parameters/candidateTypes/nonNullableTypes.kt @@ -0,0 +1,14 @@ +// PARAM_TYPES: kotlin.String, Comparable, CharSequence, kotlin.Any +// PARAM_TYPES: X +class X { + fun add(t: T) { + + } +} + +// SIBLING: +fun foo(s: String?, x: X) { + when { + s != null -> x.add(s) + } +} \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/parameters/candidateTypes/nonNullableTypes.kt.after b/idea/testData/refactoring/extractFunction/parameters/candidateTypes/nonNullableTypes.kt.after new file mode 100644 index 00000000000..e16d1ea3903 --- /dev/null +++ b/idea/testData/refactoring/extractFunction/parameters/candidateTypes/nonNullableTypes.kt.after @@ -0,0 +1,18 @@ +// PARAM_TYPES: kotlin.String, Comparable, CharSequence, kotlin.Any +// PARAM_TYPES: X +class X { + fun add(t: T) { + + } +} + +// SIBLING: +fun foo(s: String?, x: X) { + when { + s != null -> unit(s, x) + } +} + +fun unit(s: String, x: X) { + x.add(s) +} \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/parameters/candidateTypes/nullableTypes.kt b/idea/testData/refactoring/extractFunction/parameters/candidateTypes/nullableTypes.kt new file mode 100644 index 00000000000..ce80d833f72 --- /dev/null +++ b/idea/testData/refactoring/extractFunction/parameters/candidateTypes/nullableTypes.kt @@ -0,0 +1,14 @@ +// PARAM_TYPES: kotlin.String?, kotlin.Comparable?, kotlin.CharSequence?, kotlin.Any? +// PARAM_TYPES: X +class X { + fun add(t: T) { + + } +} + +// SIBLING: +fun foo(s: String?, x: X) { + when { + s != null -> x.add(s) + } +} \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/parameters/candidateTypes/nullableTypes.kt.after b/idea/testData/refactoring/extractFunction/parameters/candidateTypes/nullableTypes.kt.after new file mode 100644 index 00000000000..b3b116f5ad4 --- /dev/null +++ b/idea/testData/refactoring/extractFunction/parameters/candidateTypes/nullableTypes.kt.after @@ -0,0 +1,18 @@ +// PARAM_TYPES: kotlin.String?, kotlin.Comparable?, kotlin.CharSequence?, kotlin.Any? +// PARAM_TYPES: X +class X { + fun add(t: T) { + + } +} + +// SIBLING: +fun foo(s: String?, x: X) { + when { + s != null -> unit(s, x) + } +} + +fun unit(s: String?, x: X) { + x.add(s) +} \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy1.kt b/idea/testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy1.kt new file mode 100644 index 00000000000..0110855a2cf --- /dev/null +++ b/idea/testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy1.kt @@ -0,0 +1,35 @@ +//PARAM_TYPES: C, AImpl, A +trait A { + fun doA() +} + +open class AImpl: A { + override fun doA() { + throw UnsupportedOperationException() + } +} + +trait B { + fun doB() +} + +class C: AImpl(), B { + override fun doA() { + throw UnsupportedOperationException() + } + + override fun doB() { + throw UnsupportedOperationException() + } + + fun doC() { + throw UnsupportedOperationException() + } +} + +// SIBLING: +fun foo(c: C) { + c.doA() + c.doB() + c.doC() +} \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy1.kt.after b/idea/testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy1.kt.after new file mode 100644 index 00000000000..c0aa5718d2d --- /dev/null +++ b/idea/testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy1.kt.after @@ -0,0 +1,39 @@ +//PARAM_TYPES: C, AImpl, A +trait A { + fun doA() +} + +open class AImpl: A { + override fun doA() { + throw UnsupportedOperationException() + } +} + +trait B { + fun doB() +} + +class C: AImpl(), B { + override fun doA() { + throw UnsupportedOperationException() + } + + override fun doB() { + throw UnsupportedOperationException() + } + + fun doC() { + throw UnsupportedOperationException() + } +} + +// SIBLING: +fun foo(c: C) { + unit(c) + c.doB() + c.doC() +} + +fun unit(c: C) { + c.doA() +} \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy2.kt b/idea/testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy2.kt new file mode 100644 index 00000000000..c5d4010f69d --- /dev/null +++ b/idea/testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy2.kt @@ -0,0 +1,35 @@ +//PARAM_TYPES: C, B +trait A { + fun doA() +} + +open class AImpl: A { + override fun doA() { + throw UnsupportedOperationException() + } +} + +trait B { + fun doB() +} + +class C: AImpl(), B { + override fun doA() { + throw UnsupportedOperationException() + } + + override fun doB() { + throw UnsupportedOperationException() + } + + fun doC() { + throw UnsupportedOperationException() + } +} + +// SIBLING: +fun foo(c: C) { + c.doA() + c.doB() + c.doC() +} \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy2.kt.after b/idea/testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy2.kt.after new file mode 100644 index 00000000000..96645ea7142 --- /dev/null +++ b/idea/testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy2.kt.after @@ -0,0 +1,39 @@ +//PARAM_TYPES: C, B +trait A { + fun doA() +} + +open class AImpl: A { + override fun doA() { + throw UnsupportedOperationException() + } +} + +trait B { + fun doB() +} + +class C: AImpl(), B { + override fun doA() { + throw UnsupportedOperationException() + } + + override fun doB() { + throw UnsupportedOperationException() + } + + fun doC() { + throw UnsupportedOperationException() + } +} + +// SIBLING: +fun foo(c: C) { + c.doA() + unit(c) + c.doC() +} + +fun unit(c: C) { + c.doB() +} \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy3.kt b/idea/testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy3.kt new file mode 100644 index 00000000000..578290918ab --- /dev/null +++ b/idea/testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy3.kt @@ -0,0 +1,35 @@ +//PARAM_TYPES: C +trait A { + fun doA() +} + +open class AImpl: A { + override fun doA() { + throw UnsupportedOperationException() + } +} + +trait B { + fun doB() +} + +class C: AImpl(), B { + override fun doA() { + throw UnsupportedOperationException() + } + + override fun doB() { + throw UnsupportedOperationException() + } + + fun doC() { + throw UnsupportedOperationException() + } +} + +// SIBLING: +fun foo(c: C) { + c.doA() + c.doB() + c.doC() +} \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy3.kt.after b/idea/testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy3.kt.after new file mode 100644 index 00000000000..05d6290919b --- /dev/null +++ b/idea/testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy3.kt.after @@ -0,0 +1,39 @@ +//PARAM_TYPES: C +trait A { + fun doA() +} + +open class AImpl: A { + override fun doA() { + throw UnsupportedOperationException() + } +} + +trait B { + fun doB() +} + +class C: AImpl(), B { + override fun doA() { + throw UnsupportedOperationException() + } + + override fun doB() { + throw UnsupportedOperationException() + } + + fun doC() { + throw UnsupportedOperationException() + } +} + +// SIBLING: +fun foo(c: C) { + c.doA() + c.doB() + unit(c) +} + +fun unit(c: C) { + c.doC() +} \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy4.kt b/idea/testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy4.kt new file mode 100644 index 00000000000..e7495780bba --- /dev/null +++ b/idea/testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy4.kt @@ -0,0 +1,35 @@ +//PARAM_TYPES: C +trait A { + fun doA() +} + +open class AImpl: A { + override fun doA() { + throw UnsupportedOperationException() + } +} + +trait B { + fun doB() +} + +class C: AImpl(), B { + override fun doA() { + throw UnsupportedOperationException() + } + + override fun doB() { + throw UnsupportedOperationException() + } + + fun doC() { + throw UnsupportedOperationException() + } +} + +// SIBLING: +fun foo(c: C) { + c.doA() + c.doB() + c.doC() +} \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy4.kt.after b/idea/testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy4.kt.after new file mode 100644 index 00000000000..75594210f4b --- /dev/null +++ b/idea/testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy4.kt.after @@ -0,0 +1,39 @@ +//PARAM_TYPES: C +trait A { + fun doA() +} + +open class AImpl: A { + override fun doA() { + throw UnsupportedOperationException() + } +} + +trait B { + fun doB() +} + +class C: AImpl(), B { + override fun doA() { + throw UnsupportedOperationException() + } + + override fun doB() { + throw UnsupportedOperationException() + } + + fun doC() { + throw UnsupportedOperationException() + } +} + +// SIBLING: +fun foo(c: C) { + unit(c) + c.doC() +} + +fun unit(c: C) { + c.doA() + c.doB() +} \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitLabeledThisInMember.kt b/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitLabeledThisInMember.kt index 9b793169806..55672bccccd 100644 --- a/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitLabeledThisInMember.kt +++ b/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitLabeledThisInMember.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: A +// PARAM_TYPES: A.B public open class Z { val z: Int = 0 } diff --git a/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitLabeledThisInMember.kt.after b/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitLabeledThisInMember.kt.after index 932c04b5a0d..19c2d063532 100644 --- a/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitLabeledThisInMember.kt.after +++ b/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitLabeledThisInMember.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: A +// PARAM_TYPES: A.B public open class Z { val z: Int = 0 } diff --git a/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitThisInExtension.kt b/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitThisInExtension.kt index de578bee1e2..f6aca51d5c7 100644 --- a/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitThisInExtension.kt +++ b/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitThisInExtension.kt @@ -1,3 +1,4 @@ +// PARAM_TYPES: Z class Z(val a: Int) // SIBLING: diff --git a/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitThisInExtension.kt.after b/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitThisInExtension.kt.after index bec9686c4dc..051cb4833e7 100644 --- a/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitThisInExtension.kt.after +++ b/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitThisInExtension.kt.after @@ -1,3 +1,4 @@ +// PARAM_TYPES: Z class Z(val a: Int) // SIBLING: diff --git a/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitThisInMember.kt b/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitThisInMember.kt index 6bf09f98e4f..c37338507bf 100644 --- a/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitThisInMember.kt +++ b/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitThisInMember.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: A +// PARAM_TYPES: A.B public open class Z { val z: Int = 0 } diff --git a/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitThisInMember.kt.after b/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitThisInMember.kt.after index 48d65eb567b..55bb2b0b28b 100644 --- a/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitThisInMember.kt.after +++ b/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitThisInMember.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: A +// PARAM_TYPES: A.B public open class Z { val z: Int = 0 } diff --git a/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitAndExplicitLabeledThisInMember.kt b/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitAndExplicitLabeledThisInMember.kt index a9ef6b95ce9..2d338b4b8fe 100644 --- a/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitAndExplicitLabeledThisInMember.kt +++ b/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitAndExplicitLabeledThisInMember.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: A +// PARAM_TYPES: A.B public open class Z { val z: Int = 0 } diff --git a/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitAndExplicitLabeledThisInMember.kt.after b/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitAndExplicitLabeledThisInMember.kt.after index 932c04b5a0d..19c2d063532 100644 --- a/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitAndExplicitLabeledThisInMember.kt.after +++ b/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitAndExplicitLabeledThisInMember.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: A +// PARAM_TYPES: A.B public open class Z { val z: Int = 0 } diff --git a/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitAndExplicitThisInExtension.kt b/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitAndExplicitThisInExtension.kt index 0946bdd5021..171724d966b 100644 --- a/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitAndExplicitThisInExtension.kt +++ b/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitAndExplicitThisInExtension.kt @@ -1,3 +1,4 @@ +// PARAM_TYPES: Z class Z(val a: Int) // SIBLING: diff --git a/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitAndExplicitThisInExtension.kt.after b/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitAndExplicitThisInExtension.kt.after index ffa4e81dd31..16cda1746fc 100644 --- a/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitAndExplicitThisInExtension.kt.after +++ b/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitAndExplicitThisInExtension.kt.after @@ -1,3 +1,4 @@ +// PARAM_TYPES: Z class Z(val a: Int) // SIBLING: diff --git a/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitThisInExtension.kt b/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitThisInExtension.kt index 51e55077b5a..2a8b91855c5 100644 --- a/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitThisInExtension.kt +++ b/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitThisInExtension.kt @@ -1,3 +1,4 @@ +// PARAM_TYPES: Z class Z(val a: Int) // SIBLING: diff --git a/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitThisInExtension.kt.after b/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitThisInExtension.kt.after index db4d498bd74..9000c97c6a6 100644 --- a/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitThisInExtension.kt.after +++ b/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitThisInExtension.kt.after @@ -1,3 +1,4 @@ +// PARAM_TYPES: Z class Z(val a: Int) // SIBLING: diff --git a/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitThisInMember.kt b/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitThisInMember.kt index ed05565e00d..b6f4e488ce9 100644 --- a/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitThisInMember.kt +++ b/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitThisInMember.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: A +// PARAM_TYPES: A.B public open class Z { val z: Int = 0 } diff --git a/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitThisInMember.kt.after b/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitThisInMember.kt.after index 72160c11655..8c0a5e68db8 100644 --- a/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitThisInMember.kt.after +++ b/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitThisInMember.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: A +// PARAM_TYPES: A.B public open class Z { val z: Int = 0 } diff --git a/idea/testData/refactoring/extractFunction/parameters/misc/multiDeclaration.kt b/idea/testData/refactoring/extractFunction/parameters/misc/multiDeclaration.kt index e3e6b45d5a7..35c49a8987e 100644 --- a/idea/testData/refactoring/extractFunction/parameters/misc/multiDeclaration.kt +++ b/idea/testData/refactoring/extractFunction/parameters/misc/multiDeclaration.kt @@ -1,3 +1,4 @@ +// PARAM_TYPES: kotlin.Int, Number, Comparable, Any // SIBLING: fun main(args: Array) { val (a, b) = Data(1, 2) diff --git a/idea/testData/refactoring/extractFunction/parameters/misc/multiDeclaration.kt.after b/idea/testData/refactoring/extractFunction/parameters/misc/multiDeclaration.kt.after index 6197dc5540b..374ce76203e 100644 --- a/idea/testData/refactoring/extractFunction/parameters/misc/multiDeclaration.kt.after +++ b/idea/testData/refactoring/extractFunction/parameters/misc/multiDeclaration.kt.after @@ -1,3 +1,4 @@ +// PARAM_TYPES: kotlin.Int, Number, Comparable, Any // SIBLING: fun main(args: Array) { val (a, b) = Data(1, 2) diff --git a/idea/testData/refactoring/extractFunction/parameters/misc/multipleOccurrences.kt b/idea/testData/refactoring/extractFunction/parameters/misc/multipleOccurrences.kt index 9a876cd41c8..6f824a05a7a 100644 --- a/idea/testData/refactoring/extractFunction/parameters/misc/multipleOccurrences.kt +++ b/idea/testData/refactoring/extractFunction/parameters/misc/multipleOccurrences.kt @@ -1,3 +1,6 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int, b: Int, c: Int): Int { return (a + b*a - c) + b*c diff --git a/idea/testData/refactoring/extractFunction/parameters/misc/multipleOccurrences.kt.after b/idea/testData/refactoring/extractFunction/parameters/misc/multipleOccurrences.kt.after index b82bcb36d27..0a54daa0e54 100644 --- a/idea/testData/refactoring/extractFunction/parameters/misc/multipleOccurrences.kt.after +++ b/idea/testData/refactoring/extractFunction/parameters/misc/multipleOccurrences.kt.after @@ -1,3 +1,6 @@ +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: fun foo(a: Int, b: Int, c: Int): Int { return i(a, b, c) diff --git a/idea/testData/refactoring/extractFunction/parameters/misc/usagesInCallArgs.kt b/idea/testData/refactoring/extractFunction/parameters/misc/usagesInCallArgs.kt index 5761a4b2bff..6b381cd32b6 100644 --- a/idea/testData/refactoring/extractFunction/parameters/misc/usagesInCallArgs.kt +++ b/idea/testData/refactoring/extractFunction/parameters/misc/usagesInCallArgs.kt @@ -1,3 +1,7 @@ +// PARAM_TYPES: A +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: public class A() { fun bar(a: Int, b: Int): Int { diff --git a/idea/testData/refactoring/extractFunction/parameters/misc/usagesInCallArgs.kt.after b/idea/testData/refactoring/extractFunction/parameters/misc/usagesInCallArgs.kt.after index 885b558f0a3..4b19703b654 100644 --- a/idea/testData/refactoring/extractFunction/parameters/misc/usagesInCallArgs.kt.after +++ b/idea/testData/refactoring/extractFunction/parameters/misc/usagesInCallArgs.kt.after @@ -1,3 +1,7 @@ +// PARAM_TYPES: A +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int +// PARAM_TYPES: kotlin.Int // SIBLING: public class A() { fun bar(a: Int, b: Int): Int { diff --git a/idea/testData/refactoring/extractFunction/typeParameters/simpleTypeParameter.kt b/idea/testData/refactoring/extractFunction/typeParameters/simpleTypeParameter.kt index e742a9b01dd..b625943954d 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/simpleTypeParameter.kt +++ b/idea/testData/refactoring/extractFunction/typeParameters/simpleTypeParameter.kt @@ -1,3 +1,4 @@ +// PARAM_TYPES: V open class Data(val x: Int) class Pair(val a: A, val b: B) diff --git a/idea/testData/refactoring/extractFunction/typeParameters/simpleTypeParameter.kt.after b/idea/testData/refactoring/extractFunction/typeParameters/simpleTypeParameter.kt.after index de2341f088b..d0f22c861d5 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/simpleTypeParameter.kt.after +++ b/idea/testData/refactoring/extractFunction/typeParameters/simpleTypeParameter.kt.after @@ -1,3 +1,4 @@ +// PARAM_TYPES: V open class Data(val x: Int) class Pair(val a: A, val b: B) diff --git a/idea/testData/refactoring/extractFunction/typeParameters/simpleTypeParameterWithConstraint.kt b/idea/testData/refactoring/extractFunction/typeParameters/simpleTypeParameterWithConstraint.kt index d5f09c3dc63..32cc2939d3c 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/simpleTypeParameterWithConstraint.kt +++ b/idea/testData/refactoring/extractFunction/typeParameters/simpleTypeParameterWithConstraint.kt @@ -1,3 +1,4 @@ +// PARAM_TYPES: V open class Data(val x: Int) trait DataEx diff --git a/idea/testData/refactoring/extractFunction/typeParameters/simpleTypeParameterWithConstraint.kt.after b/idea/testData/refactoring/extractFunction/typeParameters/simpleTypeParameterWithConstraint.kt.after index a6e6466e197..0a6fe47d0a8 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/simpleTypeParameterWithConstraint.kt.after +++ b/idea/testData/refactoring/extractFunction/typeParameters/simpleTypeParameterWithConstraint.kt.after @@ -1,3 +1,4 @@ +// PARAM_TYPES: V open class Data(val x: Int) trait DataEx diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParamInArgument.kt b/idea/testData/refactoring/extractFunction/typeParameters/typeParamInArgument.kt index ceb82dc3794..57e94ee0871 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParamInArgument.kt +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParamInArgument.kt @@ -1,3 +1,4 @@ +// PARAM_TYPES: Data class Data(val t: Int) // SIBLING: diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParamInArgument.kt.after b/idea/testData/refactoring/extractFunction/typeParameters/typeParamInArgument.kt.after index 9cd97061b3f..4a5fe65d03f 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParamInArgument.kt.after +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParamInArgument.kt.after @@ -1,3 +1,4 @@ +// PARAM_TYPES: Data class Data(val t: Int) // SIBLING: diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined1.kt b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined1.kt index b0a9f7e494a..40ab68a7289 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined1.kt +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined1.kt @@ -1,3 +1,6 @@ +// PARAM_TYPES: A +// PARAM_TYPES: A.B +// PARAM_TYPES: V, Data open class Data(val x: Int) trait DataEx trait DataExEx diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined1.kt.after b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined1.kt.after index e7dc5965d8a..f5493f70dc8 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined1.kt.after +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined1.kt.after @@ -1,3 +1,6 @@ +// PARAM_TYPES: A +// PARAM_TYPES: A.B +// PARAM_TYPES: V, Data open class Data(val x: Int) trait DataEx trait DataExEx diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined2.kt b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined2.kt index 0802d6e3bf6..1d669a511e8 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined2.kt +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined2.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: A.B +// PARAM_TYPES: V, Data open class Data(val x: Int) trait DataEx trait DataExEx diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined2.kt.after b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined2.kt.after index cea3de19fdd..98ea1f8394c 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined2.kt.after +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined2.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: A.B +// PARAM_TYPES: V, Data open class Data(val x: Int) trait DataEx trait DataExEx diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined3.kt b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined3.kt index 744b08cd3f5..86d701ab736 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined3.kt +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined3.kt @@ -1,3 +1,4 @@ +// PARAM_TYPES: V, Data open class Data(val x: Int) trait DataEx trait DataExEx diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined3.kt.after b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined3.kt.after index 1faeda07004..7d12e02d8b2 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined3.kt.after +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined3.kt.after @@ -1,3 +1,4 @@ +// PARAM_TYPES: V, Data open class Data(val x: Int) trait DataEx trait DataExEx diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined1.kt b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined1.kt index 95b7b5dc375..4b7a69df8c9 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined1.kt +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined1.kt @@ -1,3 +1,6 @@ +// PARAM_TYPES: A +// PARAM_TYPES: A.B +// PARAM_TYPES: V, Data open class Data(val x: Int) // SIBLING: diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined1.kt.after b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined1.kt.after index b8bda4914c7..82c63d9844b 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined1.kt.after +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined1.kt.after @@ -1,3 +1,6 @@ +// PARAM_TYPES: A +// PARAM_TYPES: A.B +// PARAM_TYPES: V, Data open class Data(val x: Int) // SIBLING: diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined2.kt b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined2.kt index 9bbcb0101a0..29f47a485c3 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined2.kt +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined2.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: A.B +// PARAM_TYPES: V, Data open class Data(val x: Int) class A(val t: T) { diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined2.kt.after b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined2.kt.after index fadf4ee100b..7f093f0d6c6 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined2.kt.after +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined2.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: A.B +// PARAM_TYPES: V, Data open class Data(val x: Int) class A(val t: T) { diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined3.kt b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined3.kt index 23422827e45..25804fef6a9 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined3.kt +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined3.kt @@ -1,3 +1,4 @@ +// PARAM_TYPES: V, Data open class Data(val x: Int) class A(val t: T) { diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined3.kt.after b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined3.kt.after index c67966c5ee4..0b63c4e431b 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined3.kt.after +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined3.kt.after @@ -1,3 +1,4 @@ +// PARAM_TYPES: V, Data open class Data(val x: Int) class A(val t: T) { diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombinedAndThis.kt b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombinedAndThis.kt index d32eebe2c14..e2290712601 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombinedAndThis.kt +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombinedAndThis.kt @@ -1,3 +1,5 @@ +// PARAM_TYPES: A +// PARAM_TYPES: V, Data open class Data(val x: Int) trait DataEx diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombinedAndThis.kt.after b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombinedAndThis.kt.after index 03d814aff07..6f2f7c0681d 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombinedAndThis.kt.after +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombinedAndThis.kt.after @@ -1,3 +1,5 @@ +// PARAM_TYPES: A +// PARAM_TYPES: V, Data open class Data(val x: Int) trait DataEx diff --git a/idea/tests/org/jetbrains/jet/plugin/refactoring/introduce/introduceVariable/AbstractJetExtractionTest.kt b/idea/tests/org/jetbrains/jet/plugin/refactoring/introduce/introduceVariable/AbstractJetExtractionTest.kt index 4992e099eb2..8e9e8feb446 100644 --- a/idea/tests/org/jetbrains/jet/plugin/refactoring/introduce/introduceVariable/AbstractJetExtractionTest.kt +++ b/idea/tests/org/jetbrains/jet/plugin/refactoring/introduce/introduceVariable/AbstractJetExtractionTest.kt @@ -32,6 +32,11 @@ import com.intellij.testFramework.fixtures.JavaCodeInsightTestFixture import com.intellij.psi.util.PsiTreeUtil import com.intellij.psi.PsiWhiteSpace import org.jetbrains.jet.lang.psi.JetPackageDirective +import org.jetbrains.jet.InTextDirectivesUtils +import org.jetbrains.jet.renderer.DescriptorRenderer +import java.util.ArrayList +import com.intellij.util.containers.ContainerUtil +import kotlin.test.assertEquals public abstract class AbstractJetExtractionTest() : LightCodeInsightFixtureTestCase() { val fixture: JavaCodeInsightTestFixture get() = myFixture @@ -65,9 +70,24 @@ public abstract class AbstractJetExtractionTest() : LightCodeInsightFixtureTestC } ) + val expectedParameterTypes = ArrayList() + val fileText = file.getText() + val expectedTypes = + InTextDirectivesUtils.findLinesWithPrefixesRemoved(fileText, "// PARAM_TYPES: ") + .mapTo(expectedParameterTypes) { "[$it]" } + .makeString() + + val renderer = DescriptorRenderer.DEBUG_TEXT + val editor = fixture.getEditor() selectElements(editor, file) { (elements, previousSibling) -> - ExtractKotlinFunctionHandler().doInvoke(editor, file, elements, explicitPreviousSibling ?: previousSibling) + ExtractKotlinFunctionHandler().doInvoke(editor, file, elements, explicitPreviousSibling ?: previousSibling) { + val actualTypes = (ContainerUtil.createMaybeSingletonList(it.receiverParameter) + it.parameters).map { + it.parameterTypeCandidates.map { renderer.renderType(it) }. makeString(", ", "[", "]") + }.makeString() + + assertEquals(expectedTypes, actualTypes, "Expected types mismatch.") + } } } } diff --git a/idea/tests/org/jetbrains/jet/plugin/refactoring/introduce/introduceVariable/JetExtractionTestGenerated.java b/idea/tests/org/jetbrains/jet/plugin/refactoring/introduce/introduceVariable/JetExtractionTestGenerated.java index 4e8097718c9..1769329e2d3 100644 --- a/idea/tests/org/jetbrains/jet/plugin/refactoring/introduce/introduceVariable/JetExtractionTestGenerated.java +++ b/idea/tests/org/jetbrains/jet/plugin/refactoring/introduce/introduceVariable/JetExtractionTestGenerated.java @@ -666,12 +666,50 @@ public class JetExtractionTestGenerated extends AbstractJetExtractionTest { } @TestMetadata("idea/testData/refactoring/extractFunction/parameters") - @InnerTestClasses({Parameters.ExtractSuper.class, Parameters.ExtractThis.class, Parameters.It.class, Parameters.Misc.class, Parameters.NonDenotableTypes.class}) + @InnerTestClasses({Parameters.CandidateTypes.class, Parameters.ExtractSuper.class, Parameters.ExtractThis.class, Parameters.It.class, Parameters.Misc.class, Parameters.NonDenotableTypes.class}) public static class Parameters extends AbstractJetExtractionTest { public void testAllFilesPresentInParameters() throws Exception { JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("idea/testData/refactoring/extractFunction/parameters"), Pattern.compile("^(.+)\\.kt$"), true); } + @TestMetadata("idea/testData/refactoring/extractFunction/parameters/candidateTypes") + public static class CandidateTypes extends AbstractJetExtractionTest { + public void testAllFilesPresentInCandidateTypes() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("idea/testData/refactoring/extractFunction/parameters/candidateTypes"), Pattern.compile("^(.+)\\.kt$"), true); + } + + @TestMetadata("nonNullableTypes.kt") + public void testNonNullableTypes() throws Exception { + doExtractFunctionTest("idea/testData/refactoring/extractFunction/parameters/candidateTypes/nonNullableTypes.kt"); + } + + @TestMetadata("nullableTypes.kt") + public void testNullableTypes() throws Exception { + doExtractFunctionTest("idea/testData/refactoring/extractFunction/parameters/candidateTypes/nullableTypes.kt"); + } + + @TestMetadata("typeHierarchy1.kt") + public void testTypeHierarchy1() throws Exception { + doExtractFunctionTest("idea/testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy1.kt"); + } + + @TestMetadata("typeHierarchy2.kt") + public void testTypeHierarchy2() throws Exception { + doExtractFunctionTest("idea/testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy2.kt"); + } + + @TestMetadata("typeHierarchy3.kt") + public void testTypeHierarchy3() throws Exception { + doExtractFunctionTest("idea/testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy3.kt"); + } + + @TestMetadata("typeHierarchy4.kt") + public void testTypeHierarchy4() throws Exception { + doExtractFunctionTest("idea/testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy4.kt"); + } + + } + @TestMetadata("idea/testData/refactoring/extractFunction/parameters/extractSuper") public static class ExtractSuper extends AbstractJetExtractionTest { public void testAllFilesPresentInExtractSuper() throws Exception { @@ -880,6 +918,7 @@ public class JetExtractionTestGenerated extends AbstractJetExtractionTest { public static Test innerSuite() { TestSuite suite = new TestSuite("Parameters"); suite.addTestSuite(Parameters.class); + suite.addTestSuite(CandidateTypes.class); suite.addTestSuite(ExtractSuper.class); suite.addTestSuite(ExtractThis.class); suite.addTestSuite(It.class);