From c422e4194d86255d1054858699194d8762ebfd67 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Fri, 12 Apr 2013 15:25:52 +0400 Subject: [PATCH] Reverting pull request 240 --- .../impl/FunctionDescriptorUtil.java | 47 +-- .../jet/lang/resolve/OverrideResolver.java | 14 +- .../jet/lang/resolve/VisibilityUtil.java | 37 --- .../jet/renderer/DescriptorRenderer.java | 15 +- .../renderer/DescriptorRendererBuilder.java | 22 +- .../jet/renderer/DescriptorRendererImpl.java | 48 +-- .../jetbrains/jet/plugin/JetBundle.properties | 6 +- .../JetChangeFunctionSignatureAction.java | 163 ----------- .../OverrideImplementMethodsHandler.java | 127 ++++++-- .../ChangeMemberFunctionSignatureFix.java | 277 ------------------ .../jet/plugin/quickfix/QuickFixUtil.java | 11 - .../jet/plugin/quickfix/QuickFixes.java | 1 - .../functionWithTypeParameters.kt.after | 3 +- .../common/FunctionCompletionFormatting.kt | 2 +- .../conflictingSubstitutions1.html | 10 +- .../conflictingSubstitutions2.html | 4 +- .../functionPlaceholder1.html | 4 +- .../functionPlaceholder2.html | 4 +- .../functionPlaceholder3.html | 4 +- .../upperBoundViolated1.html | 6 +- .../highlighter/deprecated/Function.kt | 2 +- idea/testData/highlighter/deprecated/Get.kt | 2 +- .../highlighter/deprecated/Operation.kt | 18 +- .../highlighter/deprecated/RangeTo.kt | 2 +- .../ClassWithAbstractAndOpenMembers.kt | 18 +- .../decompiled/ClassWithConstructor.kt | 6 +- idea/testData/libraries/decompiled/Color.kt | 16 +- .../libraries/decompiled/LibrariesPackage.kt | 32 +- .../libraries/decompiled/NamedObject.kt | 2 +- .../decompiled/WithInnerAndObject.kt | 6 +- ...eOverride.kt => afterNothingToOverride.kt} | 0 ...Override.kt => beforeNothingToOverride.kt} | 0 .../nothingToOverride/afterAddParameter.kt | 8 - .../afterAddParameterMultiple.kt | 10 - .../afterAddParameterPreserveVisibility.kt | 8 - .../afterChangeParameterType.kt | 8 - ...erChangeParameterTypeAbstractSuperclass.kt | 8 - .../afterChangeParameterTypeInTrait.kt | 8 - .../afterChangeParameterTypeMatchNames.kt | 8 - .../afterChangeParameterTypeModifyOrder.kt | 8 - .../afterChangeParameterTypeOpenOverride.kt | 12 - ...geParameterTypeSingleExpressionFunction.kt | 10 - .../afterChangeParameterTypeSuperTrait.kt | 8 - .../afterChangeReturnType.kt | 11 - .../afterNoOpenSuperFunction.kt | 11 - .../afterOverrideJavaMethod.kt | 6 - .../nothingToOverride/afterRemoveParameter.kt | 8 - .../afterRemoveParameterTwoTraits.kt | 11 - .../nothingToOverride/beforeAddParameter.kt | 8 - .../beforeAddParameterMultiple.kt | 10 - .../beforeAddParameterPreserveVisibility.kt | 8 - .../beforeChangeParameterType.kt | 8 - ...reChangeParameterTypeAbstractSuperclass.kt | 8 - .../beforeChangeParameterTypeInTrait.kt | 8 - .../beforeChangeParameterTypeMatchNames.kt | 8 - .../beforeChangeParameterTypeModifyOrder.kt | 8 - .../beforeChangeParameterTypeOpenOverride.kt | 12 - ...geParameterTypeSingleExpressionFunction.kt | 10 - .../beforeChangeParameterTypeSuperTrait.kt | 8 - .../beforeChangeReturnType.kt | 11 - .../beforeNoOpenSuperFunction.kt | 11 - .../beforeOverrideJavaMethod.kt | 6 - .../beforeRemoveParameter.kt | 8 - .../beforeRemoveParameterTwoTraits.kt | 11 - .../nothingToOverride/import.after.kt | 9 - .../nothingToOverride/import.before.Main.kt | 7 - .../import.before.data.Sample.kt | 5 - .../nothingToOverride/twoPackages.after.kt | 8 - .../twoPackages.before.Main.kt | 8 - .../twoPackages.before.data.Sample.kt | 5 - ...TypeMismatchOnMultipleOverrideAmbiguity.kt | 2 +- .../QuickFixMultiFileTestGenerated.java | 21 +- .../quickfix/QuickFixTestGenerated.java | 108 +------ 73 files changed, 208 insertions(+), 1160 deletions(-) delete mode 100644 compiler/frontend/src/org/jetbrains/jet/lang/resolve/VisibilityUtil.java delete mode 100644 idea/src/org/jetbrains/jet/plugin/actions/JetChangeFunctionSignatureAction.java delete mode 100644 idea/src/org/jetbrains/jet/plugin/quickfix/ChangeMemberFunctionSignatureFix.java rename idea/testData/quickfix/override/{nothingToOverride/afterRemoveOverride.kt => afterNothingToOverride.kt} (100%) rename idea/testData/quickfix/override/{nothingToOverride/beforeRemoveOverride.kt => beforeNothingToOverride.kt} (100%) delete mode 100644 idea/testData/quickfix/override/nothingToOverride/afterAddParameter.kt delete mode 100644 idea/testData/quickfix/override/nothingToOverride/afterAddParameterMultiple.kt delete mode 100644 idea/testData/quickfix/override/nothingToOverride/afterAddParameterPreserveVisibility.kt delete mode 100644 idea/testData/quickfix/override/nothingToOverride/afterChangeParameterType.kt delete mode 100644 idea/testData/quickfix/override/nothingToOverride/afterChangeParameterTypeAbstractSuperclass.kt delete mode 100644 idea/testData/quickfix/override/nothingToOverride/afterChangeParameterTypeInTrait.kt delete mode 100644 idea/testData/quickfix/override/nothingToOverride/afterChangeParameterTypeMatchNames.kt delete mode 100644 idea/testData/quickfix/override/nothingToOverride/afterChangeParameterTypeModifyOrder.kt delete mode 100644 idea/testData/quickfix/override/nothingToOverride/afterChangeParameterTypeOpenOverride.kt delete mode 100644 idea/testData/quickfix/override/nothingToOverride/afterChangeParameterTypeSingleExpressionFunction.kt delete mode 100644 idea/testData/quickfix/override/nothingToOverride/afterChangeParameterTypeSuperTrait.kt delete mode 100644 idea/testData/quickfix/override/nothingToOverride/afterChangeReturnType.kt delete mode 100644 idea/testData/quickfix/override/nothingToOverride/afterNoOpenSuperFunction.kt delete mode 100644 idea/testData/quickfix/override/nothingToOverride/afterOverrideJavaMethod.kt delete mode 100644 idea/testData/quickfix/override/nothingToOverride/afterRemoveParameter.kt delete mode 100644 idea/testData/quickfix/override/nothingToOverride/afterRemoveParameterTwoTraits.kt delete mode 100644 idea/testData/quickfix/override/nothingToOverride/beforeAddParameter.kt delete mode 100644 idea/testData/quickfix/override/nothingToOverride/beforeAddParameterMultiple.kt delete mode 100644 idea/testData/quickfix/override/nothingToOverride/beforeAddParameterPreserveVisibility.kt delete mode 100644 idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterType.kt delete mode 100644 idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterTypeAbstractSuperclass.kt delete mode 100644 idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterTypeInTrait.kt delete mode 100644 idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterTypeMatchNames.kt delete mode 100644 idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterTypeModifyOrder.kt delete mode 100644 idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterTypeOpenOverride.kt delete mode 100644 idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterTypeSingleExpressionFunction.kt delete mode 100644 idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterTypeSuperTrait.kt delete mode 100644 idea/testData/quickfix/override/nothingToOverride/beforeChangeReturnType.kt delete mode 100644 idea/testData/quickfix/override/nothingToOverride/beforeNoOpenSuperFunction.kt delete mode 100644 idea/testData/quickfix/override/nothingToOverride/beforeOverrideJavaMethod.kt delete mode 100644 idea/testData/quickfix/override/nothingToOverride/beforeRemoveParameter.kt delete mode 100644 idea/testData/quickfix/override/nothingToOverride/beforeRemoveParameterTwoTraits.kt delete mode 100644 idea/testData/quickfix/override/nothingToOverride/import.after.kt delete mode 100644 idea/testData/quickfix/override/nothingToOverride/import.before.Main.kt delete mode 100644 idea/testData/quickfix/override/nothingToOverride/import.before.data.Sample.kt delete mode 100644 idea/testData/quickfix/override/nothingToOverride/twoPackages.after.kt delete mode 100644 idea/testData/quickfix/override/nothingToOverride/twoPackages.before.Main.kt delete mode 100644 idea/testData/quickfix/override/nothingToOverride/twoPackages.before.data.Sample.kt diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/impl/FunctionDescriptorUtil.java b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/impl/FunctionDescriptorUtil.java index 1384d15a7b6..bfc76037343 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/impl/FunctionDescriptorUtil.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/impl/FunctionDescriptorUtil.java @@ -21,6 +21,7 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.resolve.BindingTrace; import org.jetbrains.jet.lang.resolve.TraceBasedRedeclarationHandler; +import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.resolve.scopes.JetScope; import org.jetbrains.jet.lang.resolve.scopes.WritableScope; import org.jetbrains.jet.lang.resolve.scopes.WritableScopeImpl; @@ -48,9 +49,6 @@ public class FunctionDescriptorUtil { } }); - private FunctionDescriptorUtil() { - } - public static Map createSubstitutionContext(@NotNull FunctionDescriptor functionDescriptor, List typeArguments) { if (functionDescriptor.getTypeParameters().isEmpty()) return Collections.emptyMap(); @@ -139,47 +137,4 @@ public class FunctionDescriptorUtil { public static D alphaConvertTypeParameters(D candidate) { return (D) candidate.substitute(MAKE_TYPE_PARAMETERS_FRESH); } - - /** - * Returns function's copy with new parameter list. Note that parameters may belong to other methods or have incorrect "index" property - * -- it will be fixed by this function. - */ - @NotNull - public static FunctionDescriptor replaceFunctionParameters( - @NotNull FunctionDescriptor function, - @NotNull List newParameters - ) { - FunctionDescriptorImpl descriptor = new SimpleFunctionDescriptorImpl( - function.getContainingDeclaration(), - function.getAnnotations(), - function.getName(), - function.getKind()); - List parameters = new ArrayList(newParameters.size()); - int idx = 0; - for (ValueParameterDescriptor parameter : newParameters) { - JetType returnType = parameter.getReturnType(); - assert returnType != null; - - parameters.add(new ValueParameterDescriptorImpl( - descriptor, - idx, - parameter.getAnnotations(), - parameter.getName(), - returnType, - parameter.declaresDefaultValue(), - parameter.getVarargElementType()) - ); - idx++; - } - ReceiverParameterDescriptor receiver = function.getReceiverParameter(); - descriptor.initialize( - receiver == null ? null : receiver.getType(), - function.getExpectedThisObject(), - function.getTypeParameters(), - parameters, - function.getReturnType(), - function.getModality(), - function.getVisibility()); - return descriptor; - } } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverrideResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverrideResolver.java index ce6fce5853b..1cdb458e755 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverrideResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverrideResolver.java @@ -240,12 +240,24 @@ public class OverrideResolver { ) { Queue fromSuperQueue = new LinkedList(notOverridden); while (!fromSuperQueue.isEmpty()) { - CallableMemberDescriptor notOverriddenFromSuper = VisibilityUtil.findMemberWithMaxVisibility(fromSuperQueue); + CallableMemberDescriptor notOverriddenFromSuper = findMemberWithMaxVisibility(fromSuperQueue); Collection overridables = extractMembersOverridableBy(notOverriddenFromSuper, fromSuperQueue, sink); createAndBindFakeOverride(notOverriddenFromSuper, overridables, current, sink); } } + @NotNull + private static CallableMemberDescriptor findMemberWithMaxVisibility(@NotNull Queue descriptors) { + CallableMemberDescriptor descriptor = descriptors.element(); + for (CallableMemberDescriptor candidate : descriptors) { + Integer result = Visibilities.compare(descriptor.getVisibility(), candidate.getVisibility()); + if (result != null && result < 0) { + descriptor = candidate; + } + } + return descriptor; + } + private static void createAndBindFakeOverride( @NotNull CallableMemberDescriptor notOverriddenFromSuper, @NotNull Collection overridables, diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/VisibilityUtil.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/VisibilityUtil.java deleted file mode 100644 index 06da68f996d..00000000000 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/VisibilityUtil.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright 2010-2013 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.jet.lang.resolve; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.jet.lang.descriptors.CallableMemberDescriptor; -import org.jetbrains.jet.lang.descriptors.Visibilities; - -import java.util.Queue; - -public class VisibilityUtil { - @NotNull - public static CallableMemberDescriptor findMemberWithMaxVisibility(@NotNull Queue descriptors) { - CallableMemberDescriptor descriptor = descriptors.element(); - for (CallableMemberDescriptor candidate : descriptors) { - Integer result = Visibilities.compare(descriptor.getVisibility(), candidate.getVisibility()); - if (result != null && result < 0) { - descriptor = candidate; - } - } - return descriptor; - } -} diff --git a/compiler/frontend/src/org/jetbrains/jet/renderer/DescriptorRenderer.java b/compiler/frontend/src/org/jetbrains/jet/renderer/DescriptorRenderer.java index 726945858c0..025adb108b5 100644 --- a/compiler/frontend/src/org/jetbrains/jet/renderer/DescriptorRenderer.java +++ b/compiler/frontend/src/org/jetbrains/jet/renderer/DescriptorRenderer.java @@ -17,6 +17,7 @@ package org.jetbrains.jet.renderer; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; import org.jetbrains.jet.lang.descriptors.FunctionDescriptor; import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor; @@ -26,20 +27,6 @@ import org.jetbrains.jet.lang.types.JetType; public interface DescriptorRenderer extends Renderer { DescriptorRenderer COMPACT_WITH_MODIFIERS = new DescriptorRendererBuilder().setWithDefinedIn(false).build(); - DescriptorRenderer SOURCE_CODE = new DescriptorRendererBuilder() - .setNormalizedVisibilities(true) - .setWithDefinedIn(false) - .setShortNames(false) - .setShowInternalKeyword(false) - .setUnitReturnType(false).build(); - - DescriptorRenderer SOURCE_CODE_SHORT_NAMES_IN_TYPES = new DescriptorRendererBuilder() - .setNormalizedVisibilities(true) - .setWithDefinedIn(false) - .setShortNames(true) - .setShowInternalKeyword(false) - .setUnitReturnType(false).build(); - DescriptorRenderer COMPACT = new DescriptorRendererBuilder() .setWithDefinedIn(false) .setModifiers(false).build(); diff --git a/compiler/frontend/src/org/jetbrains/jet/renderer/DescriptorRendererBuilder.java b/compiler/frontend/src/org/jetbrains/jet/renderer/DescriptorRendererBuilder.java index 29bb3926067..b2c0ebf5464 100644 --- a/compiler/frontend/src/org/jetbrains/jet/renderer/DescriptorRendererBuilder.java +++ b/compiler/frontend/src/org/jetbrains/jet/renderer/DescriptorRendererBuilder.java @@ -21,6 +21,7 @@ import org.jetbrains.jet.lang.resolve.name.FqName; import java.util.Collection; import java.util.Collections; +import java.util.Set; public class DescriptorRendererBuilder { private boolean shortNames = false; @@ -30,9 +31,6 @@ public class DescriptorRendererBuilder { private boolean debugMode = false; private boolean classWithPrimaryConstructor = false; private boolean verbose = false; - private boolean unitReturnType = true; - private boolean normalizedVisibilities = false; - private boolean showInternalKeyword = true; @NotNull private DescriptorRenderer.ValueParametersHandler valueParametersHandler = new DescriptorRenderer.DefaultValueParameterHandler(); @NotNull @@ -78,21 +76,6 @@ public class DescriptorRendererBuilder { return this; } - public DescriptorRendererBuilder setUnitReturnType(boolean unitReturnType) { - this.unitReturnType = unitReturnType; - return this; - } - - public DescriptorRendererBuilder setNormalizedVisibilities(boolean normalizedVisibilities) { - this.normalizedVisibilities = normalizedVisibilities; - return this; - } - - public DescriptorRendererBuilder setShowInternalKeyword(boolean showInternalKeyword) { - this.showInternalKeyword = showInternalKeyword; - return this; - } - public DescriptorRendererBuilder setValueParametersHandler(@NotNull DescriptorRenderer.ValueParametersHandler valueParametersHandler) { this.valueParametersHandler = valueParametersHandler; return this; @@ -110,7 +93,6 @@ public class DescriptorRendererBuilder { public DescriptorRenderer build() { return new DescriptorRendererImpl(shortNames, withDefinedIn, modifiers, startFromName, debugMode, classWithPrimaryConstructor, - verbose, unitReturnType, normalizedVisibilities, showInternalKeyword, valueParametersHandler, - textFormat, excludedAnnotationClasses); + verbose, valueParametersHandler, textFormat, excludedAnnotationClasses); } } diff --git a/compiler/frontend/src/org/jetbrains/jet/renderer/DescriptorRendererImpl.java b/compiler/frontend/src/org/jetbrains/jet/renderer/DescriptorRendererImpl.java index 3b1ae8985b2..c4f625c7e52 100644 --- a/compiler/frontend/src/org/jetbrains/jet/renderer/DescriptorRendererImpl.java +++ b/compiler/frontend/src/org/jetbrains/jet/renderer/DescriptorRendererImpl.java @@ -55,9 +55,6 @@ public class DescriptorRendererImpl implements DescriptorRenderer { private final boolean debugMode; private final boolean classWithPrimaryConstructor; private final boolean verbose; - private final boolean unitReturnType; - private final boolean normalizedVisibilities; - private final boolean showInternalKeyword; @NotNull private final ValueParametersHandler handler; @NotNull @@ -73,9 +70,6 @@ public class DescriptorRendererImpl implements DescriptorRenderer { boolean debugMode, boolean classWithPrimaryConstructor, boolean verbose, - boolean unitReturnType, - boolean normalizedVisibilities, - boolean showInternalKeyword, @NotNull ValueParametersHandler handler, @NotNull TextFormat textFormat, @NotNull Collection excludedAnnotationClasses @@ -87,9 +81,6 @@ public class DescriptorRendererImpl implements DescriptorRenderer { this.handler = handler; this.classWithPrimaryConstructor = classWithPrimaryConstructor; this.verbose = verbose; - this.unitReturnType = unitReturnType; - this.normalizedVisibilities = normalizedVisibilities; - this.showInternalKeyword = showInternalKeyword; this.debugMode = debugMode; this.textFormat = textFormat; this.excludedAnnotationClasses = Sets.newHashSet(excludedAnnotationClasses); @@ -316,10 +307,6 @@ public class DescriptorRendererImpl implements DescriptorRenderer { private void renderVisibility(@NotNull Visibility visibility, @NotNull StringBuilder builder) { if (!modifiers) return; - if (normalizedVisibilities) { - visibility = visibility.normalize(); - } - if (!showInternalKeyword && visibility == Visibilities.INTERNAL) return; builder.append(renderKeyword(visibility.toString())).append(" "); } @@ -338,24 +325,18 @@ public class DescriptorRendererImpl implements DescriptorRenderer { private void renderModalityForCallable(@NotNull CallableMemberDescriptor callable, @NotNull StringBuilder builder) { if (!DescriptorUtils.isTopLevelDeclaration(callable) || callable.getModality() != Modality.FINAL) { - if (overridesSomething(callable) && callable.getModality() == Modality.OPEN) return; renderModality(callable.getModality(), builder); } } - private boolean overridesSomething(CallableMemberDescriptor callable) { - return !callable.getOverriddenDescriptors().isEmpty(); - } - private void renderOverrideAndMemberKind(@NotNull CallableMemberDescriptor callableMember, @NotNull StringBuilder builder) { - if (overridesSomething(callableMember)) { - builder.append("override "); - if (verbose) { - builder.append("/*").append(callableMember.getOverriddenDescriptors().size()).append("*/ "); + if (verbose) { + if (!callableMember.getOverriddenDescriptors().isEmpty()) { + builder.append("override /*").append(callableMember.getOverriddenDescriptors().size()).append("*/ "); + } + if (callableMember.getKind() != CallableMemberDescriptor.Kind.DECLARATION) { + builder.append("/*").append(callableMember.getKind().name().toLowerCase()).append("*/ "); } - } - if (verbose && callableMember.getKind() != CallableMemberDescriptor.Kind.DECLARATION) { - builder.append("/*").append(callableMember.getKind().name().toLowerCase()).append("*/ "); } } @@ -390,7 +371,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer { builder.append(renderKeyword(variance)).append(" "); } renderName(typeParameter, builder); - if (typeParameter.getUpperBounds().size() >= 1) { + if (typeParameter.getUpperBounds().size() == 1) { JetType upperBound = typeParameter.getUpperBounds().iterator().next(); if (!KotlinBuiltIns.getInstance().getDefaultBound().equals(upperBound)) { builder.append(" : ").append(renderType(upperBound)); @@ -462,9 +443,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer { renderName(function, builder); renderValueParameters(function, builder); JetType returnType = function.getReturnType(); - if (unitReturnType || !KotlinBuiltIns.getInstance().isUnit(returnType)) { - builder.append(": ").append(returnType == null ? "[NULL]" : escape(renderType(returnType))); - } + builder.append(" : ").append(returnType == null ? "[NULL]" : escape(renderType(returnType))); renderWhereSuffix(function.getTypeParameters(), builder); } @@ -486,13 +465,8 @@ public class DescriptorRendererImpl implements DescriptorRenderer { for (TypeParameterDescriptor typeParameter : typeParameters) { if (typeParameter.getUpperBounds().size() > 1) { - boolean first = true; for (JetType upperBound : typeParameter.getUpperBounds()) { - // first parameter is rendered by renderTypeParameter: - if (!first) { - upperBoundStrings.add(renderName(typeParameter.getName()) + " : " + escape(renderType(upperBound))); - } - first = false; + upperBoundStrings.add(renderName(typeParameter.getName()) + " : " + escape(renderType(upperBound))); } } } @@ -557,7 +531,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer { } renderName(variable, builder); - builder.append(": ").append(escape(renderType(typeToRender))); + builder.append(" : ").append(escape(renderType(typeToRender))); if (verbose && varargElementType != null) { builder.append(" /*").append(escape(renderType(realType))).append("*/"); @@ -581,7 +555,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer { builder.append(escape(renderType(receiver.getType()))).append("."); } renderName(property, builder); - builder.append(": ").append(escape(renderType(property.getType()))); + builder.append(" : ").append(escape(renderType(property.getType()))); renderWhereSuffix(property.getTypeParameters(), builder); } diff --git a/idea/src/org/jetbrains/jet/plugin/JetBundle.properties b/idea/src/org/jetbrains/jet/plugin/JetBundle.properties index 71a59a092e2..0a5afe1c34e 100644 --- a/idea/src/org/jetbrains/jet/plugin/JetBundle.properties +++ b/idea/src/org/jetbrains/jet/plugin/JetBundle.properties @@ -139,13 +139,9 @@ surround.with.function.template={ } surround.with.cannot.perform.action=Cannot perform Surround With action to the current contextsurround.with.function.template={ } remove.variable.family.name=Remove variable remove.variable.action=Remove variable ''{0}'' + kotlin.code.transformations=Kotlin Code Transformations transform.if.statement.with.assignments.to.expression=Transform 'if' statement with assignments to expression transform.assignment.with.if.expression.to.statement=Transform assignment with 'if' expression to statement transform.if.statement.with.assignments.to.expression.family=Transform 'if' Statement with Assignments to Expression transform.assignment.with.if.expression.to.statement.family=Transform Assignment with 'if' Expression to Statement -change.function.signature.action.single=Change function signature to ''{0}'' -change.function.signature.action.multiple=Change function signature... -change.function.signature.family=Change function signature -change.function.signature.chooser.title=Choose signature -change.function.signature.action=Change function signature diff --git a/idea/src/org/jetbrains/jet/plugin/actions/JetChangeFunctionSignatureAction.java b/idea/src/org/jetbrains/jet/plugin/actions/JetChangeFunctionSignatureAction.java deleted file mode 100644 index 03f2f11bc03..00000000000 --- a/idea/src/org/jetbrains/jet/plugin/actions/JetChangeFunctionSignatureAction.java +++ /dev/null @@ -1,163 +0,0 @@ -/* - * Copyright 2010-2013 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.jet.plugin.actions; - -import com.intellij.codeInsight.hint.QuestionAction; -import com.intellij.openapi.application.ApplicationManager; -import com.intellij.openapi.command.CommandProcessor; -import com.intellij.openapi.editor.Editor; -import com.intellij.openapi.project.Project; -import com.intellij.openapi.ui.popup.JBPopupFactory; -import com.intellij.openapi.ui.popup.PopupStep; -import com.intellij.openapi.ui.popup.util.BaseListPopupStep; -import com.intellij.psi.PsiDocumentManager; -import com.intellij.util.PlatformIcons; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.jet.lang.descriptors.FunctionDescriptor; -import org.jetbrains.jet.lang.psi.JetExpression; -import org.jetbrains.jet.lang.psi.JetNamedFunction; -import org.jetbrains.jet.lang.psi.JetPsiFactory; -import org.jetbrains.jet.plugin.JetBundle; -import org.jetbrains.jet.plugin.codeInsight.ReferenceToClassesShortening; -import org.jetbrains.jet.plugin.quickfix.QuickFixUtil; - -import javax.swing.*; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.List; - -/** - * Changes method signature to one of provided signatures. - * Based on {@link JetAddImportAction} - */ -public class JetChangeFunctionSignatureAction implements QuestionAction { - - private final Project project; - private final Editor editor; - private final JetNamedFunction element; - private final List signatures; - - /** - * @param project Project where action takes place. - * @param editor Editor where modification should be done. - * @param element Function element which signature should be changed. - * @param signatures Variants for new function signature. - */ - public JetChangeFunctionSignatureAction( - @NotNull Project project, - @NotNull Editor editor, - @NotNull JetNamedFunction element, - @NotNull Collection signatures - ) { - this.project = project; - this.editor = editor; - this.element = element; - this.signatures = new ArrayList(signatures); - } - - @Override - public boolean execute() { - PsiDocumentManager.getInstance(project).commitAllDocuments(); - - if (!element.isValid() || signatures.isEmpty()) { - return false; - } - - if (signatures.size() == 1 || !editor.getComponent().isShowing()) { - changeSignature(element, project, signatures.get(0)); - } - else { - chooseSignatureAndChange(); - } - - return true; - } - - private BaseListPopupStep getSignaturePopup() { - return new BaseListPopupStep( - JetBundle.message("change.function.signature.chooser.title"), signatures) { - @Override - public boolean isAutoSelectionEnabled() { - return false; - } - - @Override - public PopupStep onChosen(FunctionDescriptor selectedValue, boolean finalChoice) { - if (finalChoice) { - changeSignature(element, project, selectedValue); - } - return FINAL_CHOICE; - } - - @Override - public Icon getIconFor(FunctionDescriptor aValue) { - return PlatformIcons.FUNCTION_ICON; - } - - @NotNull - @Override - public String getTextFor(FunctionDescriptor aValue) { - return QuickFixUtil.createFunctionSignatureStringFromDescriptor( - aValue, - /* shortTypeNames = */ true); - } - }; - } - - private static void changeSignature(final JetNamedFunction element, final Project project, FunctionDescriptor signature) { - final String signatureString = QuickFixUtil.createFunctionSignatureStringFromDescriptor( - signature, - /* shortTypeNames = */ false); - - PsiDocumentManager.getInstance(project).commitAllDocuments(); - - CommandProcessor.getInstance().executeCommand(project, new Runnable() { - @Override - public void run() { - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - JetExpression bodyExpression = element.getBodyExpression(); - JetNamedFunction newElement; - - if (bodyExpression != null) { - if (element.hasBlockBody()) { - newElement = JetPsiFactory.createFunction(project, signatureString + "{}"); - } - else { - newElement = JetPsiFactory.createFunction(project, signatureString + "= \"dummy\""); - } - JetExpression newBodyExpression = newElement.getBodyExpression(); - assert newBodyExpression != null; - newBodyExpression.replace(bodyExpression); - } - else { - newElement = JetPsiFactory.createFunction(project, signatureString); - } - newElement = (JetNamedFunction) element.replace(newElement); - ReferenceToClassesShortening.compactReferenceToClasses(Collections.singletonList(newElement)); - } - }); - } - }, JetBundle.message("change.function.signature.action"), null); - } - - private void chooseSignatureAndChange() { - JBPopupFactory.getInstance().createListPopup(getSignaturePopup()).showInBestPositionFor(editor); - } -} diff --git a/idea/src/org/jetbrains/jet/plugin/codeInsight/OverrideImplementMethodsHandler.java b/idea/src/org/jetbrains/jet/plugin/codeInsight/OverrideImplementMethodsHandler.java index 1ea91a5d1db..5f006e202bf 100644 --- a/idea/src/org/jetbrains/jet/plugin/codeInsight/OverrideImplementMethodsHandler.java +++ b/idea/src/org/jetbrains/jet/plugin/codeInsight/OverrideImplementMethodsHandler.java @@ -24,6 +24,7 @@ import com.intellij.openapi.editor.Editor; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.DialogWrapper; import com.intellij.openapi.util.Condition; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.PsiDocumentManager; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; @@ -118,29 +119,29 @@ public abstract class OverrideImplementMethodsHandler implements LanguageCodeIns for (DescriptorClassMember selectedElement : selectedElements) { DeclarationDescriptor descriptor = selectedElement.getDescriptor(); if (descriptor instanceof SimpleFunctionDescriptor) { - overridingMembers.add(overrideFunction(file.getProject(), - (SimpleFunctionDescriptor) descriptor /* shortTypeNames = */ - )); + overridingMembers.add(overrideFunction(file.getProject(), (SimpleFunctionDescriptor) descriptor)); } else if (descriptor instanceof PropertyDescriptor) { - overridingMembers.add( - overrideProperty(file.getProject(), (PropertyDescriptor) descriptor)); + overridingMembers.add(overrideProperty(file.getProject(), (PropertyDescriptor) descriptor)); } } return overridingMembers; } - @NotNull - private static JetElement overrideProperty(@NotNull Project project, @NotNull PropertyDescriptor descriptor) { - PropertyDescriptor newDescriptor = (PropertyDescriptor) descriptor.copy( - descriptor.getContainingDeclaration(), - Modality.OPEN, - descriptor.getVisibility(), - descriptor.getKind(), - /* copyOverrides = */ true); - newDescriptor.addOverriddenDescriptor(descriptor); - + private static JetElement overrideProperty(Project project, PropertyDescriptor descriptor) { StringBuilder bodyBuilder = new StringBuilder(); + bodyBuilder.append(displayableVisibility(descriptor)).append("override "); + if (descriptor.isVar()) { + bodyBuilder.append("var "); + } + else { + bodyBuilder.append("val "); + } + + addReceiverParameter(descriptor, bodyBuilder); + + bodyBuilder.append(descriptor.getName()).append(" : ").append( + DescriptorRenderer.SHORT_NAMES_IN_TYPES.renderType(descriptor.getType())); String initializer = CodeInsightUtils.defaultInitializer(descriptor.getType()); if (initializer != null) { bodyBuilder.append(" = ").append(initializer); @@ -148,19 +149,53 @@ public abstract class OverrideImplementMethodsHandler implements LanguageCodeIns else { bodyBuilder.append(" = ?"); } - return JetPsiFactory.createProperty(project, DescriptorRenderer.SOURCE_CODE.render(newDescriptor) + bodyBuilder.toString()); + return JetPsiFactory.createProperty(project, bodyBuilder.toString()); } - @NotNull - private static JetNamedFunction overrideFunction(@NotNull Project project, @NotNull FunctionDescriptor descriptor) { - FunctionDescriptor newDescriptor = descriptor.copy( - descriptor.getContainingDeclaration(), - Modality.OPEN, - descriptor.getVisibility(), - descriptor.getKind(), - /* copyOverrides = */ true); - newDescriptor.addOverriddenDescriptor(descriptor); + private static String renderType(JetType type) { + return DescriptorRenderer.TEXT.renderType(type); + } + private static JetElement overrideFunction(Project project, SimpleFunctionDescriptor descriptor) { + StringBuilder bodyBuilder = new StringBuilder(); + bodyBuilder.append(displayableVisibility(descriptor)); + bodyBuilder.append("override fun "); + + List whereRestrictions = new ArrayList(); + if (!descriptor.getTypeParameters().isEmpty()) { + bodyBuilder.append("<"); + boolean first = true; + for (TypeParameterDescriptor param : descriptor.getTypeParameters()) { + if (!first) { + bodyBuilder.append(", "); + } + + bodyBuilder.append(param.getName()); + Set upperBounds = param.getUpperBounds(); + if (!upperBounds.isEmpty()) { + boolean firstUpperBound = true; + for (JetType upperBound : upperBounds) { + String upperBoundText = " : " + renderType(upperBound); + if (!KotlinBuiltIns.getInstance().getDefaultBound().equals(upperBound)) { + if (firstUpperBound) { + bodyBuilder.append(upperBoundText); + } + else { + whereRestrictions.add(param.getName() + upperBoundText); + } + } + firstUpperBound = false; + } + } + + first = false; + } + bodyBuilder.append("> "); + } + + addReceiverParameter(descriptor, bodyBuilder); + + bodyBuilder.append(descriptor.getName()).append("("); boolean isAbstractFun = descriptor.getModality() == Modality.ABSTRACT; StringBuilder delegationBuilder = new StringBuilder(); if (isAbstractFun) { @@ -171,23 +206,51 @@ public abstract class OverrideImplementMethodsHandler implements LanguageCodeIns delegationBuilder.append(">.").append(descriptor.getName()).append("("); } boolean first = true; - if (!isAbstractFun) { - for (ValueParameterDescriptor parameterDescriptor : descriptor.getValueParameters()) { - if (!first) { - delegationBuilder.append(", "); + for (ValueParameterDescriptor parameterDescriptor : descriptor.getValueParameters()) { + if (!first) { + bodyBuilder.append(","); + if (!isAbstractFun) { + delegationBuilder.append(","); } - first = false; + } + first = false; + bodyBuilder.append(parameterDescriptor.getName()); + bodyBuilder.append(" : "); + bodyBuilder.append(renderType(parameterDescriptor.getType())); + + if (!isAbstractFun) { delegationBuilder.append(parameterDescriptor.getName()); } + } + bodyBuilder.append(")"); + if (!isAbstractFun) { delegationBuilder.append(")"); } JetType returnType = descriptor.getReturnType(); KotlinBuiltIns builtIns = KotlinBuiltIns.getInstance(); boolean returnsNotUnit = returnType != null && !builtIns.getUnitType().equals(returnType); - String body = "{" + (returnsNotUnit && !isAbstractFun ? "return " : "") + delegationBuilder.toString() + "}"; + if (returnsNotUnit) { + bodyBuilder.append(" : ").append(renderType(returnType)); + } + if (!whereRestrictions.isEmpty()) { + bodyBuilder.append("\n").append("where ").append(StringUtil.join(whereRestrictions, ", ")); + } + bodyBuilder.append("{").append(returnsNotUnit && !isAbstractFun ? "return " : "").append(delegationBuilder.toString()).append("}"); - return JetPsiFactory.createFunction(project, DescriptorRenderer.SOURCE_CODE.render(newDescriptor) + body); + return JetPsiFactory.createFunction(project, bodyBuilder.toString()); + } + + private static void addReceiverParameter(CallableDescriptor descriptor, StringBuilder bodyBuilder) { + ReceiverParameterDescriptor receiverParameter = descriptor.getReceiverParameter(); + if (receiverParameter != null) { + bodyBuilder.append(receiverParameter.getType()).append("."); + } + } + + private static String displayableVisibility(MemberDescriptor descriptor) { + Visibility visibility = descriptor.getVisibility().normalize(); + return visibility != Visibilities.INTERNAL ? visibility.toString() + " " : ""; } @NotNull diff --git a/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeMemberFunctionSignatureFix.java b/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeMemberFunctionSignatureFix.java deleted file mode 100644 index 1083f068560..00000000000 --- a/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeMemberFunctionSignatureFix.java +++ /dev/null @@ -1,277 +0,0 @@ -/* - * Copyright 2010-2013 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.jet.plugin.quickfix; - -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; -import com.google.common.collect.Queues; -import com.intellij.codeInsight.hint.HintManager; -import com.intellij.codeInsight.intention.IntentionAction; -import com.intellij.openapi.command.CommandProcessor; -import com.intellij.openapi.editor.Editor; -import com.intellij.openapi.project.Project; -import com.intellij.psi.PsiFile; -import com.intellij.util.IncorrectOperationException; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.jetbrains.jet.lang.descriptors.*; -import org.jetbrains.jet.lang.descriptors.impl.FunctionDescriptorUtil; -import org.jetbrains.jet.lang.diagnostics.Diagnostic; -import org.jetbrains.jet.lang.psi.JetNamedFunction; -import org.jetbrains.jet.lang.resolve.BindingContext; -import org.jetbrains.jet.lang.resolve.DescriptorUtils; -import org.jetbrains.jet.lang.resolve.VisibilityUtil; -import org.jetbrains.jet.lang.resolve.name.Name; -import org.jetbrains.jet.lang.resolve.scopes.JetScope; -import org.jetbrains.jet.lang.types.JetType; -import org.jetbrains.jet.lang.types.checker.JetTypeChecker; -import org.jetbrains.jet.plugin.JetBundle; -import org.jetbrains.jet.plugin.actions.JetChangeFunctionSignatureAction; -import org.jetbrains.jet.plugin.caches.resolve.KotlinCacheManagerUtil; - -import java.util.*; - -/** - * Fix that changes member function's signature to match one of super functions' signatures. - */ -public class ChangeMemberFunctionSignatureFix extends JetHintAction { - private final List possibleSignatures; - - public ChangeMemberFunctionSignatureFix(@NotNull JetNamedFunction element) { - super(element); - this.possibleSignatures = computePossibleSignatures(element); - } - - @Override - public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { - return super.isAvailable(project, editor, file) && !possibleSignatures.isEmpty(); - } - - @NotNull - @Override - public String getText() { - if (possibleSignatures.size() == 1) - return JetBundle.message("change.function.signature.action.single", - getFunctionSignatureString( - possibleSignatures.get(0), - /* shortTypeNames = */ true)); - else - return JetBundle.message("change.function.signature.action.multiple"); - } - - @NotNull - private String getFunctionSignatureString(@NotNull FunctionDescriptor functionSignature, boolean shortTypeNames) { - return QuickFixUtil.createFunctionSignatureStringFromDescriptor( - functionSignature, shortTypeNames); - } - - @NotNull - @Override - public String getFamilyName() { - return JetBundle.message("change.function.signature.family"); - } - - @Override - public void invoke(@NotNull final Project project, @NotNull final Editor editor, PsiFile file) - throws IncorrectOperationException { - CommandProcessor.getInstance().runUndoTransparentAction(new Runnable() { - @Override - public void run() { - createAction(project, editor).execute(); - } - }); - } - - @NotNull - private JetChangeFunctionSignatureAction createAction(@NotNull Project project, @NotNull Editor editor) { - return new JetChangeFunctionSignatureAction(project, editor, element, possibleSignatures); - } - - /** - * Computes all the signatures a 'functionElement' could be changed to in order to remove NOTHING_TO_OVERRIDE error. - */ - @NotNull - private List computePossibleSignatures(JetNamedFunction functionElement) { - BindingContext context = KotlinCacheManagerUtil.getDeclarationsFromProject(functionElement).getBindingContext(); - FunctionDescriptor functionDescriptor = context.get(BindingContext.FUNCTION, functionElement); - if (functionDescriptor == null) return Lists.newArrayList(); - List superFunctions = getPossibleSuperFunctionsDescriptors(functionDescriptor); - Map possibleSignatures = Maps.newHashMap(); - for (FunctionDescriptor superFunction : superFunctions) { - if (!superFunction.getKind().isReal()) continue; - FunctionDescriptor signature = changeSignatureToMatch(functionDescriptor, superFunction); - possibleSignatures.put(getFunctionSignatureString(signature, /* shortTypeNames = */ false), signature); - } - return Lists.newArrayList(possibleSignatures.values()); - } - - /** - * Changes function's signature to match superFunction's signature. Returns new descriptor. - */ - private static FunctionDescriptor changeSignatureToMatch(FunctionDescriptor function, FunctionDescriptor superFunction) { - List superParameters = superFunction.getValueParameters(); - List parameters = function.getValueParameters(); - List newParameters = Lists.newArrayList(superParameters); - - // Parameters in superFunction, which are matched in new function signature: - BitSet matched = new BitSet(superParameters.size()); - // Parameters in this function, which are used in new function signature: - BitSet used = new BitSet(superParameters.size()); - - matchParameters(MATCH_NAMES, superParameters, parameters, newParameters, matched, used); - matchParameters(MATCH_TYPES, superParameters, parameters, newParameters, matched, used); - - FunctionDescriptor newFunction = FunctionDescriptorUtil.replaceFunctionParameters( - superFunction.copy( - function.getContainingDeclaration(), - Modality.OPEN, - getVisibility(function, superFunction), - CallableMemberDescriptor.Kind.DELEGATION, - /* copyOverrides = */ true), - newParameters); - newFunction.addOverriddenDescriptor(superFunction); - return newFunction; - } - - /** - * Returns new visibility for 'function' modified to override 'superFunction'. - */ - private static Visibility getVisibility(FunctionDescriptor function, FunctionDescriptor superFunction) { - ArrayDeque descriptors = - Queues.newArrayDeque(Arrays.asList(superFunction, function)); - return VisibilityUtil.findMemberWithMaxVisibility(descriptors).getVisibility(); - } - - /** Helper interface for matchParameters(..) method. */ - private interface ParameterChooser { - /** - * Checks if 'parameter' may be used to match 'superParameter'. - * If so, returns (possibly modified) descriptor to be used as the new parameter. - * If not, returns null. - */ - @Nullable - ValueParameterDescriptor choose(@NotNull ValueParameterDescriptor parameter, @NotNull ValueParameterDescriptor superParameter); - } - - private static final ParameterChooser MATCH_NAMES = new ParameterChooser() { - @Nullable - @Override - public ValueParameterDescriptor choose( - @NotNull ValueParameterDescriptor parameter, - @NotNull ValueParameterDescriptor superParameter - ) { - return parameter.getName().equals(superParameter.getName()) ? superParameter : null; - } - }; - - private static final ParameterChooser MATCH_TYPES = new ParameterChooser() { - @Nullable - @Override - public ValueParameterDescriptor choose( - @NotNull ValueParameterDescriptor parameter, - @NotNull ValueParameterDescriptor superParameter - ) { - return JetTypeChecker.INSTANCE.equalTypes(parameter.getType(), superParameter.getType()) ? parameter : null; - } - }; - - /** - * Match function's parameters with super function's parameters using parameterChooser. - * Doesn't have to preserve ordering, parameter names or types. - * @param superParameters - super function's parameters - * @param parameters - function's parameters - * @param newParameters - new parameters (may be modified by this function) - * @param matched - true iff this parameter in super function is matched by some parameter in function (may be modified by this function) - * @param used - true iff this parameter in function is used to match some parameter in super function (may be modified by this function) - */ - private static void matchParameters( - @NotNull ParameterChooser parameterChooser, - @NotNull List superParameters, - @NotNull List parameters, - @NotNull List newParameters, - @NotNull BitSet matched, - @NotNull BitSet used - ) { - for (ValueParameterDescriptor superParameter : superParameters) { - if (!matched.get(superParameter.getIndex())) { - for (ValueParameterDescriptor parameter : parameters) { - ValueParameterDescriptor choice = parameterChooser.choose(parameter, superParameter); - if (!used.get(parameter.getIndex()) && choice != null) { - used.set(parameter.getIndex(), true); - matched.set(superParameter.getIndex(), true); - newParameters.set(superParameter.getIndex(), choice); - break; - } - } - } - } - } - - /** - * Returns all open functions in superclasses which have the same name as 'functionDescriptor' (but possibly - * different parameters/return type). - */ - @NotNull - private static List getPossibleSuperFunctionsDescriptors(@NotNull FunctionDescriptor functionDescriptor) { - DeclarationDescriptor containingDeclaration = functionDescriptor.getContainingDeclaration(); - List superFunctions = Lists.newArrayList(); - if (!(containingDeclaration instanceof ClassDescriptor)) return superFunctions; - ClassDescriptor classDescriptor = (ClassDescriptor) containingDeclaration; - - Name name = functionDescriptor.getName(); - for (ClassDescriptor superclass : DescriptorUtils.getSuperclassDescriptors(classDescriptor)) { - JetType type = superclass.getDefaultType(); - JetScope scope = type.getMemberScope(); - for (FunctionDescriptor function : scope.getFunctions(name)) { - if (!function.getKind().isReal()) continue; - if (function.getModality().isOverridable()) - superFunctions.add(function); - } - } - return superFunctions; - } - - @NotNull - public static JetIntentionActionFactory createFactory() { - return new JetIntentionActionFactory() { - @Nullable - @Override - public IntentionAction createAction(Diagnostic diagnostic) { - JetNamedFunction function = QuickFixUtil.getParentElementOfType(diagnostic, JetNamedFunction.class); - return function == null ? null : new ChangeMemberFunctionSignatureFix(function); - } - }; - } - - @Override - public boolean showHint(@NotNull Editor editor) { - if (possibleSignatures.isEmpty()) { - return false; - } - - Project project = editor.getProject(); - if (project == null) { - return false; - } - - if (HintManager.getInstance().hasShownHintsThatWillHideByOtherHint(true)) { - return false; - } - - return true; - } -} diff --git a/idea/src/org/jetbrains/jet/plugin/quickfix/QuickFixUtil.java b/idea/src/org/jetbrains/jet/plugin/quickfix/QuickFixUtil.java index 4bde1b340e8..a1d9aa40425 100644 --- a/idea/src/org/jetbrains/jet/plugin/quickfix/QuickFixUtil.java +++ b/idea/src/org/jetbrains/jet/plugin/quickfix/QuickFixUtil.java @@ -25,7 +25,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.descriptors.CallableDescriptor; import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; -import org.jetbrains.jet.lang.descriptors.FunctionDescriptor; import org.jetbrains.jet.lang.diagnostics.Diagnostic; import org.jetbrains.jet.lang.psi.JetDeclaration; import org.jetbrains.jet.lang.psi.JetFile; @@ -36,7 +35,6 @@ import org.jetbrains.jet.lang.types.JetType; import org.jetbrains.jet.lang.types.checker.JetTypeChecker; import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache; import org.jetbrains.jet.plugin.references.BuiltInsReferenceResolver; -import org.jetbrains.jet.renderer.DescriptorRenderer; public class QuickFixUtil { private QuickFixUtil() { @@ -95,13 +93,4 @@ public class QuickFixUtil { public static boolean canModifyElement(@NotNull PsiElement element) { return element.isWritable() && !BuiltInsReferenceResolver.isFromBuiltIns(element); } - - @NotNull - public static String createFunctionSignatureStringFromDescriptor( - @NotNull FunctionDescriptor descriptor, - boolean shortTypeNames - ) { - DescriptorRenderer renderer = shortTypeNames ? DescriptorRenderer.SOURCE_CODE_SHORT_NAMES_IN_TYPES : DescriptorRenderer.SOURCE_CODE; - return renderer.render(descriptor); - } } diff --git a/idea/src/org/jetbrains/jet/plugin/quickfix/QuickFixes.java b/idea/src/org/jetbrains/jet/plugin/quickfix/QuickFixes.java index ff834005ee2..a1f32aa9acc 100644 --- a/idea/src/org/jetbrains/jet/plugin/quickfix/QuickFixes.java +++ b/idea/src/org/jetbrains/jet/plugin/quickfix/QuickFixes.java @@ -88,7 +88,6 @@ public class QuickFixes { factories.put(NON_MEMBER_FUNCTION_NO_BODY, addFunctionBodyFactory); factories.put(NOTHING_TO_OVERRIDE, RemoveModifierFix.createRemoveModifierFromListOwnerFactory(OVERRIDE_KEYWORD)); - factories.put(NOTHING_TO_OVERRIDE, ChangeMemberFunctionSignatureFix.createFactory()); factories.put(VIRTUAL_MEMBER_HIDDEN, AddModifierFix.createFactory(OVERRIDE_KEYWORD)); factories.put(USELESS_CAST_STATIC_ASSERT_IS_FINE, ReplaceOperationInBinaryExpressionFix.createChangeCastToStaticAssertFactory()); diff --git a/idea/testData/codeInsight/overrideImplement/functionWithTypeParameters.kt.after b/idea/testData/codeInsight/overrideImplement/functionWithTypeParameters.kt.after index 17cb21ce990..0c2f97e2ab6 100644 --- a/idea/testData/codeInsight/overrideImplement/functionWithTypeParameters.kt.after +++ b/idea/testData/codeInsight/overrideImplement/functionWithTypeParameters.kt.after @@ -4,7 +4,8 @@ trait Trait { class TraitImpl : Trait { - override fun > foo() where B: Cloneable, B: Comparable { + override fun > foo() + where B: Cloneable, B: Comparable { throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/idea/testData/completion/basic/common/FunctionCompletionFormatting.kt b/idea/testData/completion/basic/common/FunctionCompletionFormatting.kt index e78f3533967..fee9d01e429 100644 --- a/idea/testData/completion/basic/common/FunctionCompletionFormatting.kt +++ b/idea/testData/completion/basic/common/FunctionCompletionFormatting.kt @@ -4,4 +4,4 @@ fun some() { tes } -// EXIST: test@test(a: jet.Int) \ No newline at end of file +// EXIST: test@test(a : jet.Int) \ No newline at end of file diff --git a/idea/testData/diagnosticMessage/conflictingSubstitutions1.html b/idea/testData/diagnosticMessage/conflictingSubstitutions1.html index 7943371baa4..a18dcae0191 100644 --- a/idea/testData/diagnosticMessage/conflictingSubstitutions1.html +++ b/idea/testData/diagnosticMessage/conflictingSubstitutions1.html @@ -9,20 +9,20 @@ T fun - <T, E : java.lang.Cloneable> + <T, E> writeToMyList ( -l: MyList<in T>, +l : MyList<in T>, -t: T +t : T ) -: jet.Unit + : jet.Unit where - E : java.io.Closeable + E : java.lang.Cloneable, E : java.io.Closeable diff --git a/idea/testData/diagnosticMessage/conflictingSubstitutions2.html b/idea/testData/diagnosticMessage/conflictingSubstitutions2.html index 61c7f6a3491..8e5947f6d40 100644 --- a/idea/testData/diagnosticMessage/conflictingSubstitutions2.html +++ b/idea/testData/diagnosticMessage/conflictingSubstitutions2.html @@ -14,9 +14,9 @@ constructor ( -l: MyList<in T>, +l : MyList<in T>, -t: T +t : T ) diff --git a/idea/testData/diagnosticMessage/functionPlaceholder1.html b/idea/testData/diagnosticMessage/functionPlaceholder1.html index bb469c38083..9a7c9160a94 100644 --- a/idea/testData/diagnosticMessage/functionPlaceholder1.html +++ b/idea/testData/diagnosticMessage/functionPlaceholder1.html @@ -12,11 +12,11 @@ fun ( -a: A<T, R> +a : A<T, R> ) -: A<T, R> + : A<T, R> diff --git a/idea/testData/diagnosticMessage/functionPlaceholder2.html b/idea/testData/diagnosticMessage/functionPlaceholder2.html index d18f4dbc9a5..af0eba78cf3 100644 --- a/idea/testData/diagnosticMessage/functionPlaceholder2.html +++ b/idea/testData/diagnosticMessage/functionPlaceholder2.html @@ -12,11 +12,11 @@ fun ( -a: A<T, R> +a : A<T, R> ) -: A<T, R> + : A<T, R> diff --git a/idea/testData/diagnosticMessage/functionPlaceholder3.html b/idea/testData/diagnosticMessage/functionPlaceholder3.html index 749513775b1..8a4bb1e036f 100644 --- a/idea/testData/diagnosticMessage/functionPlaceholder3.html +++ b/idea/testData/diagnosticMessage/functionPlaceholder3.html @@ -12,11 +12,11 @@ fun ( -a: A<T, R> +a : A<T, R> ) -: A<T, R> + : A<T, R> diff --git a/idea/testData/diagnosticMessage/upperBoundViolated1.html b/idea/testData/diagnosticMessage/upperBoundViolated1.html index 640fe9725bf..096ff9ff54d 100644 --- a/idea/testData/diagnosticMessage/upperBoundViolated1.html +++ b/idea/testData/diagnosticMessage/upperBoundViolated1.html @@ -14,13 +14,13 @@ fun ( -r: R, +r : R, -list: T +list : T ) -: jet.Unit + : jet.Unit is not satisfied: inferred type diff --git a/idea/testData/highlighter/deprecated/Function.kt b/idea/testData/highlighter/deprecated/Function.kt index bb97a13c835..f81917c2a38 100644 --- a/idea/testData/highlighter/deprecated/Function.kt +++ b/idea/testData/highlighter/deprecated/Function.kt @@ -3,7 +3,7 @@ fun test() { MyClass().test2() MyClass.test3() - test4(1, 2) + test4(1, 2) } deprecated("Use A instead") fun test1() { } diff --git a/idea/testData/highlighter/deprecated/Get.kt b/idea/testData/highlighter/deprecated/Get.kt index 81efcb05a42..8f1d3a179da 100644 --- a/idea/testData/highlighter/deprecated/Get.kt +++ b/idea/testData/highlighter/deprecated/Get.kt @@ -6,5 +6,5 @@ fun test() { val x1 = MyClass() val x2 = MyClass() - x1[x2] + x1[x2] } \ No newline at end of file diff --git a/idea/testData/highlighter/deprecated/Operation.kt b/idea/testData/highlighter/deprecated/Operation.kt index f0f217e7c5f..84ef7ccff7e 100644 --- a/idea/testData/highlighter/deprecated/Operation.kt +++ b/idea/testData/highlighter/deprecated/Operation.kt @@ -20,19 +20,19 @@ fun test() { val x1 = MyClass() val x2 = MyClass() - x1 - x2 - x1 / x2 - x1 * x2 + x1 - x2 + x1 / x2 + x1 * x2 !x1 +x1 - x1 in x2 - x1 !in x2 + x1 in x2 + x1 !in x2 - x1 += x2 + x1 += x2 - x1 == x2 - x1 != x2 - x1 > x2 + x1 == x2 + x1 != x2 + x1 > x2 } \ No newline at end of file diff --git a/idea/testData/highlighter/deprecated/RangeTo.kt b/idea/testData/highlighter/deprecated/RangeTo.kt index 082cfb19940..36e0141f9e0 100644 --- a/idea/testData/highlighter/deprecated/RangeTo.kt +++ b/idea/testData/highlighter/deprecated/RangeTo.kt @@ -11,7 +11,7 @@ fun test() { val x1 = MyClass() val x2 = MyClass() - for (i in x1..x2) { + for (i in x1..x2) { } } diff --git a/idea/testData/libraries/decompiled/ClassWithAbstractAndOpenMembers.kt b/idea/testData/libraries/decompiled/ClassWithAbstractAndOpenMembers.kt index 9feb16bd1a3..7572f112f4d 100644 --- a/idea/testData/libraries/decompiled/ClassWithAbstractAndOpenMembers.kt +++ b/idea/testData/libraries/decompiled/ClassWithAbstractAndOpenMembers.kt @@ -4,19 +4,19 @@ package testData.libraries [[public abstract class ClassWithAbstractAndOpenMembers() { - [public abstract val abstractVal: jet.String] + [public abstract val abstractVal : jet.String] - [public abstract var abstractVar: jet.String] + [public abstract var abstractVar : jet.String] - [public open val openVal: jet.String] /* compiled code */ + [public open val openVal : jet.String] /* compiled code */ - [public open val openValWithGetter: jet.String] /* compiled code */ + [public open val openValWithGetter : jet.String] /* compiled code */ - [public open var openVar: jet.String] /* compiled code */ + [public open var openVar : jet.String] /* compiled code */ - [public open var openVarWithGetter: jet.String] /* compiled code */ + [public open var openVarWithGetter : jet.String] /* compiled code */ - [public abstract fun abstractFun(): jet.Unit] + [public abstract fun abstractFun() : jet.Unit] - [public open fun openFun(): jet.Unit { /* compiled code */ }] -}]] \ No newline at end of file + [public open fun openFun() : jet.Unit { /* compiled code */ }] +}]] diff --git a/idea/testData/libraries/decompiled/ClassWithConstructor.kt b/idea/testData/libraries/decompiled/ClassWithConstructor.kt index 4513630cdce..71afa1ea8b9 100644 --- a/idea/testData/libraries/decompiled/ClassWithConstructor.kt +++ b/idea/testData/libraries/decompiled/ClassWithConstructor.kt @@ -3,6 +3,6 @@ package testData.libraries -[[public final class ClassWithConstructor(a: jet.String, b: jet.Any) { - [internal final val a: jet.String] /* compiled code */ -}]] \ No newline at end of file +[[public final class ClassWithConstructor(a : jet.String, b : jet.Any) { + [internal final val a : jet.String] /* compiled code */ +}]] diff --git a/idea/testData/libraries/decompiled/Color.kt b/idea/testData/libraries/decompiled/Color.kt index fd07142a18f..aea14443290 100644 --- a/idea/testData/libraries/decompiled/Color.kt +++ b/idea/testData/libraries/decompiled/Color.kt @@ -3,18 +3,18 @@ package testData.libraries -[[public final enum class Color(rgb: jet.Int) : jet.Enum { +[[public final enum class Color(rgb : jet.Int) : jet.Enum { public class object { - [public final val BLUE: testData.libraries.Color] /* compiled code */ + [public final val BLUE : testData.libraries.Color] /* compiled code */ - [public final val GREEN: testData.libraries.Color] /* compiled code */ + [public final val GREEN : testData.libraries.Color] /* compiled code */ - [public final val RED: testData.libraries.Color] /* compiled code */ + [public final val RED : testData.libraries.Color] /* compiled code */ - public final fun valueOf(value: jet.String): testData.libraries.Color { /* compiled code */ } + public final fun valueOf(value : jet.String) : testData.libraries.Color { /* compiled code */ } - public final fun values(): jet.Array { /* compiled code */ } + public final fun values() : jet.Array { /* compiled code */ } } - [internal final val rgb: jet.Int] /* compiled code */ -}]] \ No newline at end of file + [internal final val rgb : jet.Int] /* compiled code */ +}]] diff --git a/idea/testData/libraries/decompiled/LibrariesPackage.kt b/idea/testData/libraries/decompiled/LibrariesPackage.kt index a358a20ce30..0e4546a2ac4 100644 --- a/idea/testData/libraries/decompiled/LibrariesPackage.kt +++ b/idea/testData/libraries/decompiled/LibrariesPackage.kt @@ -3,34 +3,34 @@ package testData.libraries -[public val globalVal: testData.libraries.Pair] /* compiled code */ +[public val globalVal : testData.libraries.Pair] /* compiled code */ -[public val globalValWithGetter: jet.Long] /* compiled code */ +[public val globalValWithGetter : jet.Long] /* compiled code */ -[public val jet.Int.exProp: jet.Int] /* compiled code */ +[public val jet.Int.exProp : jet.Int] /* compiled code */ -[public val jet.String.exProp: jet.String] /* compiled code */ +[public val jet.String.exProp : jet.String] /* compiled code */ -[public val testData.libraries.Pair.exProp: jet.String] /* compiled code */ +[public val testData.libraries.Pair.exProp : jet.String] /* compiled code */ -[public fun funWithTypeParam(t: T): jet.Unit { /* compiled code */ }] +[public fun funWithTypeParam(t : T) : jet.Unit { /* compiled code */ }] -[public fun funWithTypeParam(t: T): jet.Unit { /* compiled code */ }] +[public fun funWithTypeParam(t : T) : jet.Unit { /* compiled code */ }] -[public fun func(): jet.Unit { /* compiled code */ }] +[public fun func() : jet.Unit { /* compiled code */ }] -[public fun func(cs: jet.CharSequence): jet.Unit { /* compiled code */ }] +[public fun func(cs : jet.CharSequence) : jet.Unit { /* compiled code */ }] -[public fun func(a: jet.Int, b: jet.Int): jet.Unit { /* compiled code */ }] +[public fun func(a : jet.Int, b : jet.Int) : jet.Unit { /* compiled code */ }] -[public fun func(a: jet.Int, b: jet.String = /* compiled code */): jet.Unit { /* compiled code */ }] +[public fun func(a : jet.Int, b : jet.String = /* compiled code */) : jet.Unit { /* compiled code */ }] -[public fun func(str: jet.String): jet.Unit { /* compiled code */ }] +[public fun func(str : jet.String) : jet.Unit { /* compiled code */ }] -[public fun main(args: jet.Array): jet.Unit { /* compiled code */ }] +[public fun main(args : jet.Array) : jet.Unit { /* compiled code */ }] -[public fun processDouble(d: jet.Double): jet.Unit { /* compiled code */ }] +[public fun processDouble(d : jet.Double) : jet.Unit { /* compiled code */ }] -[public fun processDouble(d: testData.libraries.Double): jet.Unit { /* compiled code */ }] +[public fun processDouble(d : testData.libraries.Double) : jet.Unit { /* compiled code */ }] -[public fun T.filter(predicate: (T) -> jet.Boolean): T? { /* compiled code */ }] \ No newline at end of file +[public fun T.filter(predicate : (T) -> jet.Boolean) : T? { /* compiled code */ }] \ No newline at end of file diff --git a/idea/testData/libraries/decompiled/NamedObject.kt b/idea/testData/libraries/decompiled/NamedObject.kt index d46a4ce2c7f..bb6b5a2bed2 100644 --- a/idea/testData/libraries/decompiled/NamedObject.kt +++ b/idea/testData/libraries/decompiled/NamedObject.kt @@ -4,5 +4,5 @@ package testData.libraries [[public object NamedObject { - [public final val objectMember: jet.Int] /* compiled code */ + [public final val objectMember : jet.Int] /* compiled code */ }]] \ No newline at end of file diff --git a/idea/testData/libraries/decompiled/WithInnerAndObject.kt b/idea/testData/libraries/decompiled/WithInnerAndObject.kt index 791935a9178..c2fc82de454 100644 --- a/idea/testData/libraries/decompiled/WithInnerAndObject.kt +++ b/idea/testData/libraries/decompiled/WithInnerAndObject.kt @@ -5,12 +5,12 @@ package testData.libraries [[public final class WithInnerAndObject() { public class object { - [internal final fun foo(): jet.Unit { /* compiled code */ }] + [internal final fun foo() : jet.Unit { /* compiled code */ }] } [[internal final class MyInner() { [internal trait MyInnerInner { - [internal abstract fun innerInnerMethod(): jet.Unit] + [internal abstract fun innerInnerMethod() : jet.Unit] }] }]] -}]] \ No newline at end of file +}]] diff --git a/idea/testData/quickfix/override/nothingToOverride/afterRemoveOverride.kt b/idea/testData/quickfix/override/afterNothingToOverride.kt similarity index 100% rename from idea/testData/quickfix/override/nothingToOverride/afterRemoveOverride.kt rename to idea/testData/quickfix/override/afterNothingToOverride.kt diff --git a/idea/testData/quickfix/override/nothingToOverride/beforeRemoveOverride.kt b/idea/testData/quickfix/override/beforeNothingToOverride.kt similarity index 100% rename from idea/testData/quickfix/override/nothingToOverride/beforeRemoveOverride.kt rename to idea/testData/quickfix/override/beforeNothingToOverride.kt diff --git a/idea/testData/quickfix/override/nothingToOverride/afterAddParameter.kt b/idea/testData/quickfix/override/nothingToOverride/afterAddParameter.kt deleted file mode 100644 index 4d7459cfad4..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/afterAddParameter.kt +++ /dev/null @@ -1,8 +0,0 @@ -// "Change function signature to 'override fun f(a: Int)'" "true" -trait A { - fun f(a: Int) -} - -class B : A { - override fun f(a: Int) {} -} diff --git a/idea/testData/quickfix/override/nothingToOverride/afterAddParameterMultiple.kt b/idea/testData/quickfix/override/nothingToOverride/afterAddParameterMultiple.kt deleted file mode 100644 index 40d2ec95918..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/afterAddParameterMultiple.kt +++ /dev/null @@ -1,10 +0,0 @@ -// "Change function signature..." "true" -// ERROR: Class 'B' must be declared abstract or implement abstract member
internal abstract fun f(a: jet.String): jet.Unit defined in A -trait A { - fun f(a: Int) - fun f(a: String) -} - -class B : A { - override fun f(a: Int) {} -} diff --git a/idea/testData/quickfix/override/nothingToOverride/afterAddParameterPreserveVisibility.kt b/idea/testData/quickfix/override/nothingToOverride/afterAddParameterPreserveVisibility.kt deleted file mode 100644 index 224bddac74d..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/afterAddParameterPreserveVisibility.kt +++ /dev/null @@ -1,8 +0,0 @@ -// "Change function signature to 'public override fun f(a: Int)'" "true" -trait A { - fun f(a: Int) -} - -class B : A { - public override fun f(a: Int) {} -} diff --git a/idea/testData/quickfix/override/nothingToOverride/afterChangeParameterType.kt b/idea/testData/quickfix/override/nothingToOverride/afterChangeParameterType.kt deleted file mode 100644 index 1c1bf701be9..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/afterChangeParameterType.kt +++ /dev/null @@ -1,8 +0,0 @@ -// "Change function signature to 'override fun f(a: Int)'" "true" -open class A { - open fun f(a: Int) {} -} - -class B : A(){ - override fun f(a: Int) {} -} diff --git a/idea/testData/quickfix/override/nothingToOverride/afterChangeParameterTypeAbstractSuperclass.kt b/idea/testData/quickfix/override/nothingToOverride/afterChangeParameterTypeAbstractSuperclass.kt deleted file mode 100644 index 03d64186794..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/afterChangeParameterTypeAbstractSuperclass.kt +++ /dev/null @@ -1,8 +0,0 @@ -// "Change function signature to 'override fun f(a: Int)'" "true" -abstract class A { - abstract fun f(a: Int) -} - -class B : A(){ - override fun f(a: Int) {} -} diff --git a/idea/testData/quickfix/override/nothingToOverride/afterChangeParameterTypeInTrait.kt b/idea/testData/quickfix/override/nothingToOverride/afterChangeParameterTypeInTrait.kt deleted file mode 100644 index c4468a9c43f..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/afterChangeParameterTypeInTrait.kt +++ /dev/null @@ -1,8 +0,0 @@ -// "Change function signature to 'override fun f(a: Int)'" "true" -trait A { - fun f(a: Int) -} - -trait B : A { - override fun f(a: Int) -} diff --git a/idea/testData/quickfix/override/nothingToOverride/afterChangeParameterTypeMatchNames.kt b/idea/testData/quickfix/override/nothingToOverride/afterChangeParameterTypeMatchNames.kt deleted file mode 100644 index e843f654da4..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/afterChangeParameterTypeMatchNames.kt +++ /dev/null @@ -1,8 +0,0 @@ -// "Change function signature to 'override fun f(x: Int, t: String, z: Double)'" "true" -open class A { - open fun f(x: Int, y: String, z: Double) {} -} - -class B : A(){ - override fun f(x: Int, t: String, z: Double) {} -} diff --git a/idea/testData/quickfix/override/nothingToOverride/afterChangeParameterTypeModifyOrder.kt b/idea/testData/quickfix/override/nothingToOverride/afterChangeParameterTypeModifyOrder.kt deleted file mode 100644 index c280837de4b..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/afterChangeParameterTypeModifyOrder.kt +++ /dev/null @@ -1,8 +0,0 @@ -// "Change function signature to 'override fun f(y: Int, x: String)'" "true" -open class A { - open fun f(a: Int, b: String) {} -} - -class B : A(){ - override fun f(y: Int, x: String) {} -} diff --git a/idea/testData/quickfix/override/nothingToOverride/afterChangeParameterTypeOpenOverride.kt b/idea/testData/quickfix/override/nothingToOverride/afterChangeParameterTypeOpenOverride.kt deleted file mode 100644 index 2ede413a7a2..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/afterChangeParameterTypeOpenOverride.kt +++ /dev/null @@ -1,12 +0,0 @@ -// "Change function signature to 'override fun f()'" "true" -open class A { - open fun f() {} -} - -open class B : A() { - open override fun f() {} -} - -class C : B() { - override fun f() {} -} diff --git a/idea/testData/quickfix/override/nothingToOverride/afterChangeParameterTypeSingleExpressionFunction.kt b/idea/testData/quickfix/override/nothingToOverride/afterChangeParameterTypeSingleExpressionFunction.kt deleted file mode 100644 index b235b9d31df..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/afterChangeParameterTypeSingleExpressionFunction.kt +++ /dev/null @@ -1,10 +0,0 @@ -// "Change function signature to 'override fun f(a: Int): Int'" "true" -open class A { - open fun f(a: Int): Int { - return 0 - } -} - -class B : A(){ - override fun f(a: Int): Int = 7 -} diff --git a/idea/testData/quickfix/override/nothingToOverride/afterChangeParameterTypeSuperTrait.kt b/idea/testData/quickfix/override/nothingToOverride/afterChangeParameterTypeSuperTrait.kt deleted file mode 100644 index 4d7459cfad4..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/afterChangeParameterTypeSuperTrait.kt +++ /dev/null @@ -1,8 +0,0 @@ -// "Change function signature to 'override fun f(a: Int)'" "true" -trait A { - fun f(a: Int) -} - -class B : A { - override fun f(a: Int) {} -} diff --git a/idea/testData/quickfix/override/nothingToOverride/afterChangeReturnType.kt b/idea/testData/quickfix/override/nothingToOverride/afterChangeReturnType.kt deleted file mode 100644 index 141f66eecbf..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/afterChangeReturnType.kt +++ /dev/null @@ -1,11 +0,0 @@ -// "Change function signature to 'override fun f(a: Int): Int'" "true" -// ERROR: Type mismatch.
Required:jet.Int
Found:jet.String
-open class A { - open fun f(a: Int): Int = 0 -} - -class B : A(){ - // Note that when parameter types match, RETURN_TYPE_MISMATCH_ON_OVERRIDE error is reported - // and "Change function signature" quickfix is not present. - override fun f(a: Int): Int = "FOO" -} diff --git a/idea/testData/quickfix/override/nothingToOverride/afterNoOpenSuperFunction.kt b/idea/testData/quickfix/override/nothingToOverride/afterNoOpenSuperFunction.kt deleted file mode 100644 index b42fbdf5f47..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/afterNoOpenSuperFunction.kt +++ /dev/null @@ -1,11 +0,0 @@ -// "Change function signature to 'override fun f(a: Int)'" "false" -// ERROR: 'f' overrides nothing -// ACTION: Remove 'override' modifier -open class A { - open fun foo() {} - fun f(a: Int) {} -} - -class B : A(){ - override fun f(a: String) {} -} diff --git a/idea/testData/quickfix/override/nothingToOverride/afterOverrideJavaMethod.kt b/idea/testData/quickfix/override/nothingToOverride/afterOverrideJavaMethod.kt deleted file mode 100644 index 8ff6a3be928..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/afterOverrideJavaMethod.kt +++ /dev/null @@ -1,6 +0,0 @@ -// "Change function signature to 'protected override fun next(p0: Int): Int'" "true" -import java.util.Random - -class MyRandom : Random() { - protected override fun next(p0: Int): Int = 4 -} \ No newline at end of file diff --git a/idea/testData/quickfix/override/nothingToOverride/afterRemoveParameter.kt b/idea/testData/quickfix/override/nothingToOverride/afterRemoveParameter.kt deleted file mode 100644 index 44696b02571..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/afterRemoveParameter.kt +++ /dev/null @@ -1,8 +0,0 @@ -// "Change function signature to 'override fun f()'" "true" -trait A { - fun f() -} - -class B : A { - override fun f() {} -} diff --git a/idea/testData/quickfix/override/nothingToOverride/afterRemoveParameterTwoTraits.kt b/idea/testData/quickfix/override/nothingToOverride/afterRemoveParameterTwoTraits.kt deleted file mode 100644 index 0cb7b35402c..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/afterRemoveParameterTwoTraits.kt +++ /dev/null @@ -1,11 +0,0 @@ -// "Change function signature to 'override fun f()'" "true" -trait A { - fun f() -} -trait B { - fun f() -} - -class C : A, B { - override fun f() {} -} diff --git a/idea/testData/quickfix/override/nothingToOverride/beforeAddParameter.kt b/idea/testData/quickfix/override/nothingToOverride/beforeAddParameter.kt deleted file mode 100644 index d5b66e27daf..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/beforeAddParameter.kt +++ /dev/null @@ -1,8 +0,0 @@ -// "Change function signature to 'override fun f(a: Int)'" "true" -trait A { - fun f(a: Int) -} - -class B : A { - override fun f() {} -} diff --git a/idea/testData/quickfix/override/nothingToOverride/beforeAddParameterMultiple.kt b/idea/testData/quickfix/override/nothingToOverride/beforeAddParameterMultiple.kt deleted file mode 100644 index ecb91dff3b5..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/beforeAddParameterMultiple.kt +++ /dev/null @@ -1,10 +0,0 @@ -// "Change function signature..." "true" -// ERROR: Class 'B' must be declared abstract or implement abstract member
internal abstract fun f(a: jet.String): jet.Unit defined in A -trait A { - fun f(a: Int) - fun f(a: String) -} - -class B : A { - override fun f() {} -} diff --git a/idea/testData/quickfix/override/nothingToOverride/beforeAddParameterPreserveVisibility.kt b/idea/testData/quickfix/override/nothingToOverride/beforeAddParameterPreserveVisibility.kt deleted file mode 100644 index a1e1e4146e7..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/beforeAddParameterPreserveVisibility.kt +++ /dev/null @@ -1,8 +0,0 @@ -// "Change function signature to 'public override fun f(a: Int)'" "true" -trait A { - fun f(a: Int) -} - -class B : A { - public override fun f() {} -} diff --git a/idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterType.kt b/idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterType.kt deleted file mode 100644 index 8904a51e5c3..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterType.kt +++ /dev/null @@ -1,8 +0,0 @@ -// "Change function signature to 'override fun f(a: Int)'" "true" -open class A { - open fun f(a: Int) {} -} - -class B : A(){ - override fun f(a: String) {} -} diff --git a/idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterTypeAbstractSuperclass.kt b/idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterTypeAbstractSuperclass.kt deleted file mode 100644 index c9148e272c6..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterTypeAbstractSuperclass.kt +++ /dev/null @@ -1,8 +0,0 @@ -// "Change function signature to 'override fun f(a: Int)'" "true" -abstract class A { - abstract fun f(a: Int) -} - -class B : A(){ - override fun f(a: String) {} -} diff --git a/idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterTypeInTrait.kt b/idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterTypeInTrait.kt deleted file mode 100644 index 8f6da8f7bff..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterTypeInTrait.kt +++ /dev/null @@ -1,8 +0,0 @@ -// "Change function signature to 'override fun f(a: Int)'" "true" -trait A { - fun f(a: Int) -} - -trait B : A { - override fun f(a: String) -} diff --git a/idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterTypeMatchNames.kt b/idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterTypeMatchNames.kt deleted file mode 100644 index 87ce6ad8bee..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterTypeMatchNames.kt +++ /dev/null @@ -1,8 +0,0 @@ -// "Change function signature to 'override fun f(x: Int, t: String, z: Double)'" "true" -open class A { - open fun f(x: Int, y: String, z: Double) {} -} - -class B : A(){ - override fun f(z: String, x: String, t: String) {} -} diff --git a/idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterTypeModifyOrder.kt b/idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterTypeModifyOrder.kt deleted file mode 100644 index aa8b1ecea47..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterTypeModifyOrder.kt +++ /dev/null @@ -1,8 +0,0 @@ -// "Change function signature to 'override fun f(y: Int, x: String)'" "true" -open class A { - open fun f(a: Int, b: String) {} -} - -class B : A(){ - override fun f(x: String, y: Int) {} -} diff --git a/idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterTypeOpenOverride.kt b/idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterTypeOpenOverride.kt deleted file mode 100644 index 83a19095b7b..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterTypeOpenOverride.kt +++ /dev/null @@ -1,12 +0,0 @@ -// "Change function signature to 'override fun f()'" "true" -open class A { - open fun f() {} -} - -open class B : A() { - open override fun f() {} -} - -class C : B() { - override fun f(a : Int) {} -} diff --git a/idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterTypeSingleExpressionFunction.kt b/idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterTypeSingleExpressionFunction.kt deleted file mode 100644 index 1c09664622f..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterTypeSingleExpressionFunction.kt +++ /dev/null @@ -1,10 +0,0 @@ -// "Change function signature to 'override fun f(a: Int): Int'" "true" -open class A { - open fun f(a: Int): Int { - return 0 - } -} - -class B : A(){ - override fun f(a: String): Int = 7 -} diff --git a/idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterTypeSuperTrait.kt b/idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterTypeSuperTrait.kt deleted file mode 100644 index b8b4b0c7be8..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterTypeSuperTrait.kt +++ /dev/null @@ -1,8 +0,0 @@ -// "Change function signature to 'override fun f(a: Int)'" "true" -trait A { - fun f(a: Int) -} - -class B : A { - override fun f(a: String) {} -} diff --git a/idea/testData/quickfix/override/nothingToOverride/beforeChangeReturnType.kt b/idea/testData/quickfix/override/nothingToOverride/beforeChangeReturnType.kt deleted file mode 100644 index d785e7bde19..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/beforeChangeReturnType.kt +++ /dev/null @@ -1,11 +0,0 @@ -// "Change function signature to 'override fun f(a: Int): Int'" "true" -// ERROR: Type mismatch.
Required:jet.Int
Found:jet.String
-open class A { - open fun f(a: Int): Int = 0 -} - -class B : A(){ - // Note that when parameter types match, RETURN_TYPE_MISMATCH_ON_OVERRIDE error is reported - // and "Change function signature" quickfix is not present. - override fun f(a : String): String = "FOO" -} diff --git a/idea/testData/quickfix/override/nothingToOverride/beforeNoOpenSuperFunction.kt b/idea/testData/quickfix/override/nothingToOverride/beforeNoOpenSuperFunction.kt deleted file mode 100644 index b42fbdf5f47..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/beforeNoOpenSuperFunction.kt +++ /dev/null @@ -1,11 +0,0 @@ -// "Change function signature to 'override fun f(a: Int)'" "false" -// ERROR: 'f' overrides nothing -// ACTION: Remove 'override' modifier -open class A { - open fun foo() {} - fun f(a: Int) {} -} - -class B : A(){ - override fun f(a: String) {} -} diff --git a/idea/testData/quickfix/override/nothingToOverride/beforeOverrideJavaMethod.kt b/idea/testData/quickfix/override/nothingToOverride/beforeOverrideJavaMethod.kt deleted file mode 100644 index a16bc538fa9..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/beforeOverrideJavaMethod.kt +++ /dev/null @@ -1,6 +0,0 @@ -// "Change function signature to 'protected override fun next(p0: Int): Int'" "true" -import java.util.Random - -class MyRandom : Random() { - override fun next(): Int = 4 -} \ No newline at end of file diff --git a/idea/testData/quickfix/override/nothingToOverride/beforeRemoveParameter.kt b/idea/testData/quickfix/override/nothingToOverride/beforeRemoveParameter.kt deleted file mode 100644 index 0ddc0348ce8..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/beforeRemoveParameter.kt +++ /dev/null @@ -1,8 +0,0 @@ -// "Change function signature to 'override fun f()'" "true" -trait A { - fun f() -} - -class B : A { - override fun f(a: Int) {} -} diff --git a/idea/testData/quickfix/override/nothingToOverride/beforeRemoveParameterTwoTraits.kt b/idea/testData/quickfix/override/nothingToOverride/beforeRemoveParameterTwoTraits.kt deleted file mode 100644 index 36567bcab4c..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/beforeRemoveParameterTwoTraits.kt +++ /dev/null @@ -1,11 +0,0 @@ -// "Change function signature to 'override fun f()'" "true" -trait A { - fun f() -} -trait B { - fun f() -} - -class C : A, B { - override fun f(a: String) {} -} diff --git a/idea/testData/quickfix/override/nothingToOverride/import.after.kt b/idea/testData/quickfix/override/nothingToOverride/import.after.kt deleted file mode 100644 index 6248ee66df3..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/import.after.kt +++ /dev/null @@ -1,9 +0,0 @@ -// "Change function signature to 'override fun f(a: A)'" "true" -// ERROR: 'f' overrides nothing -// ERROR: 'f' overrides nothing -import a.B -import a.A - -class BB : B() { - override fun f(a: A) {} -} diff --git a/idea/testData/quickfix/override/nothingToOverride/import.before.Main.kt b/idea/testData/quickfix/override/nothingToOverride/import.before.Main.kt deleted file mode 100644 index 7b981a0662c..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/import.before.Main.kt +++ /dev/null @@ -1,7 +0,0 @@ -// "Change function signature to 'override fun f(a: A)'" "true" -// ERROR: 'f' overrides nothing -// ERROR: 'f' overrides nothing -import a.B -class BB : B() { - override fun f() {} -} diff --git a/idea/testData/quickfix/override/nothingToOverride/import.before.data.Sample.kt b/idea/testData/quickfix/override/nothingToOverride/import.before.data.Sample.kt deleted file mode 100644 index 9740027e46d..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/import.before.data.Sample.kt +++ /dev/null @@ -1,5 +0,0 @@ -package a -class A {} -open class B { - override fun f(a: A) {} -} diff --git a/idea/testData/quickfix/override/nothingToOverride/twoPackages.after.kt b/idea/testData/quickfix/override/nothingToOverride/twoPackages.after.kt deleted file mode 100644 index 2648db8ea96..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/twoPackages.after.kt +++ /dev/null @@ -1,8 +0,0 @@ -// "Change function signature to 'override fun f(a: A)'" "true" -// ERROR: 'f' overrides nothing -// ERROR: 'f' overrides nothing -import a.B -class A {} -class BB : B() { - override fun f(a: a.A) {} -} diff --git a/idea/testData/quickfix/override/nothingToOverride/twoPackages.before.Main.kt b/idea/testData/quickfix/override/nothingToOverride/twoPackages.before.Main.kt deleted file mode 100644 index 05a57cbca70..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/twoPackages.before.Main.kt +++ /dev/null @@ -1,8 +0,0 @@ -// "Change function signature to 'override fun f(a: A)'" "true" -// ERROR: 'f' overrides nothing -// ERROR: 'f' overrides nothing -import a.B -class A {} -class BB : B() { - override fun f() {} -} diff --git a/idea/testData/quickfix/override/nothingToOverride/twoPackages.before.data.Sample.kt b/idea/testData/quickfix/override/nothingToOverride/twoPackages.before.data.Sample.kt deleted file mode 100644 index 9740027e46d..00000000000 --- a/idea/testData/quickfix/override/nothingToOverride/twoPackages.before.data.Sample.kt +++ /dev/null @@ -1,5 +0,0 @@ -package a -class A {} -open class B { - override fun f(a: A) {} -} diff --git a/idea/testData/quickfix/override/typeMismatchOnOverride/beforeReturnTypeMismatchOnMultipleOverrideAmbiguity.kt b/idea/testData/quickfix/override/typeMismatchOnOverride/beforeReturnTypeMismatchOnMultipleOverrideAmbiguity.kt index 9e2d4065fde..0065c209685 100644 --- a/idea/testData/quickfix/override/typeMismatchOnOverride/beforeReturnTypeMismatchOnMultipleOverrideAmbiguity.kt +++ b/idea/testData/quickfix/override/typeMismatchOnOverride/beforeReturnTypeMismatchOnMultipleOverrideAmbiguity.kt @@ -1,7 +1,7 @@ // "Change 'B.foo' function return type to 'Int'" "false" // "Change 'B.foo' function return type to 'Long'" "false" // "Remove explicitly specified return type in 'B.foo' function" "false" -// ERROR: Return type is 'jet.String', which is not a subtype of overridden
internal abstract fun foo(): jet.Int defined in A +// ERROR: Return type is 'jet.String', which is not a subtype of overridden
internal abstract fun foo() : jet.Int defined in A abstract class A { abstract fun foo() : Int; } diff --git a/idea/tests/org/jetbrains/jet/plugin/quickfix/QuickFixMultiFileTestGenerated.java b/idea/tests/org/jetbrains/jet/plugin/quickfix/QuickFixMultiFileTestGenerated.java index 1696b966d4d..2f1c457f151 100644 --- a/idea/tests/org/jetbrains/jet/plugin/quickfix/QuickFixMultiFileTestGenerated.java +++ b/idea/tests/org/jetbrains/jet/plugin/quickfix/QuickFixMultiFileTestGenerated.java @@ -193,34 +193,15 @@ public class QuickFixMultiFileTestGenerated extends AbstractQuickFixMultiFileTes } @TestMetadata("idea/testData/quickfix/override") - @InnerTestClasses({Override.NothingToOverride.class}) + @InnerTestClasses({}) public static class Override extends AbstractQuickFixMultiFileTest { public void testAllFilesPresentInOverride() throws Exception { JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/quickfix/override"), Pattern.compile("^(\\w+)\\.before\\.Main\\.kt$"), true); } - @TestMetadata("idea/testData/quickfix/override/nothingToOverride") - public static class NothingToOverride extends AbstractQuickFixMultiFileTest { - public void testAllFilesPresentInNothingToOverride() throws Exception { - JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/quickfix/override/nothingToOverride"), Pattern.compile("^(\\w+)\\.before\\.Main\\.kt$"), true); - } - - @TestMetadata("import.before.Main.kt") - public void testImport() throws Exception { - doTestWithExtraFile("idea/testData/quickfix/override/nothingToOverride/import.before.Main.kt"); - } - - @TestMetadata("twoPackages.before.Main.kt") - public void testTwoPackages() throws Exception { - doTestWithExtraFile("idea/testData/quickfix/override/nothingToOverride/twoPackages.before.Main.kt"); - } - - } - public static Test innerSuite() { TestSuite suite = new TestSuite("Override"); suite.addTestSuite(Override.class); - suite.addTestSuite(NothingToOverride.class); return suite; } } diff --git a/idea/tests/org/jetbrains/jet/plugin/quickfix/QuickFixTestGenerated.java b/idea/tests/org/jetbrains/jet/plugin/quickfix/QuickFixTestGenerated.java index 9e19564bacf..2dbf93df4a3 100644 --- a/idea/tests/org/jetbrains/jet/plugin/quickfix/QuickFixTestGenerated.java +++ b/idea/tests/org/jetbrains/jet/plugin/quickfix/QuickFixTestGenerated.java @@ -16,14 +16,17 @@ package org.jetbrains.jet.plugin.quickfix; +import junit.framework.Assert; import junit.framework.Test; import junit.framework.TestSuite; + +import java.io.File; +import java.util.regex.Pattern; import org.jetbrains.jet.JetTestUtils; import org.jetbrains.jet.test.InnerTestClasses; import org.jetbrains.jet.test.TestMetadata; -import java.io.File; -import java.util.regex.Pattern; +import org.jetbrains.jet.plugin.quickfix.AbstractQuickFixTest; /** This class is generated by {@link org.jetbrains.jet.generators.tests.GenerateTests}. DO NOT MODIFY MANUALLY */ @SuppressWarnings("all") @@ -712,7 +715,7 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest { } @TestMetadata("idea/testData/quickfix/override") - @InnerTestClasses({Override.NothingToOverride.class, Override.TypeMismatchOnOverride.class}) + @InnerTestClasses({Override.TypeMismatchOnOverride.class}) public static class Override extends AbstractQuickFixTest { public void testAllFilesPresentInOverride() throws Exception { JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/quickfix/override"), Pattern.compile("^before(\\w+)\\.kt$"), true); @@ -723,6 +726,11 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest { doTest("idea/testData/quickfix/override/beforeChangeToInvocation.kt"); } + @TestMetadata("beforeNothingToOverride.kt") + public void testNothingToOverride() throws Exception { + doTest("idea/testData/quickfix/override/beforeNothingToOverride.kt"); + } + @TestMetadata("beforeOverriddingMultipleFinalMethods.kt") public void testOverriddingMultipleFinalMethods() throws Exception { doTest("idea/testData/quickfix/override/beforeOverriddingMultipleFinalMethods.kt"); @@ -768,99 +776,6 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest { doTest("idea/testData/quickfix/override/beforeVirtualMethodHidden.kt"); } - @TestMetadata("idea/testData/quickfix/override/nothingToOverride") - public static class NothingToOverride extends AbstractQuickFixTest { - @TestMetadata("beforeAddParameter.kt") - public void testAddParameter() throws Exception { - doTest("idea/testData/quickfix/override/nothingToOverride/beforeAddParameter.kt"); - } - - @TestMetadata("beforeAddParameterMultiple.kt") - public void testAddParameterMultiple() throws Exception { - doTest("idea/testData/quickfix/override/nothingToOverride/beforeAddParameterMultiple.kt"); - } - - @TestMetadata("beforeAddParameterPreserveVisibility.kt") - public void testAddParameterPreserveVisibility() throws Exception { - doTest("idea/testData/quickfix/override/nothingToOverride/beforeAddParameterPreserveVisibility.kt"); - } - - public void testAllFilesPresentInNothingToOverride() throws Exception { - JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/quickfix/override/nothingToOverride"), Pattern.compile("^before(\\w+)\\.kt$"), true); - } - - @TestMetadata("beforeChangeParameterType.kt") - public void testChangeParameterType() throws Exception { - doTest("idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterType.kt"); - } - - @TestMetadata("beforeChangeParameterTypeAbstractSuperclass.kt") - public void testChangeParameterTypeAbstractSuperclass() throws Exception { - doTest("idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterTypeAbstractSuperclass.kt"); - } - - @TestMetadata("beforeChangeParameterTypeInTrait.kt") - public void testChangeParameterTypeInTrait() throws Exception { - doTest("idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterTypeInTrait.kt"); - } - - @TestMetadata("beforeChangeParameterTypeMatchNames.kt") - public void testChangeParameterTypeMatchNames() throws Exception { - doTest("idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterTypeMatchNames.kt"); - } - - @TestMetadata("beforeChangeParameterTypeModifyOrder.kt") - public void testChangeParameterTypeModifyOrder() throws Exception { - doTest("idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterTypeModifyOrder.kt"); - } - - @TestMetadata("beforeChangeParameterTypeOpenOverride.kt") - public void testChangeParameterTypeOpenOverride() throws Exception { - doTest("idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterTypeOpenOverride.kt"); - } - - @TestMetadata("beforeChangeParameterTypeSingleExpressionFunction.kt") - public void testChangeParameterTypeSingleExpressionFunction() throws Exception { - doTest("idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterTypeSingleExpressionFunction.kt"); - } - - @TestMetadata("beforeChangeParameterTypeSuperTrait.kt") - public void testChangeParameterTypeSuperTrait() throws Exception { - doTest("idea/testData/quickfix/override/nothingToOverride/beforeChangeParameterTypeSuperTrait.kt"); - } - - @TestMetadata("beforeChangeReturnType.kt") - public void testChangeReturnType() throws Exception { - doTest("idea/testData/quickfix/override/nothingToOverride/beforeChangeReturnType.kt"); - } - - @TestMetadata("beforeNoOpenSuperFunction.kt") - public void testNoOpenSuperFunction() throws Exception { - doTest("idea/testData/quickfix/override/nothingToOverride/beforeNoOpenSuperFunction.kt"); - } - - @TestMetadata("beforeOverrideJavaMethod.kt") - public void testOverrideJavaMethod() throws Exception { - doTest("idea/testData/quickfix/override/nothingToOverride/beforeOverrideJavaMethod.kt"); - } - - @TestMetadata("beforeRemoveOverride.kt") - public void testRemoveOverride() throws Exception { - doTest("idea/testData/quickfix/override/nothingToOverride/beforeRemoveOverride.kt"); - } - - @TestMetadata("beforeRemoveParameter.kt") - public void testRemoveParameter() throws Exception { - doTest("idea/testData/quickfix/override/nothingToOverride/beforeRemoveParameter.kt"); - } - - @TestMetadata("beforeRemoveParameterTwoTraits.kt") - public void testRemoveParameterTwoTraits() throws Exception { - doTest("idea/testData/quickfix/override/nothingToOverride/beforeRemoveParameterTwoTraits.kt"); - } - - } - @TestMetadata("idea/testData/quickfix/override/typeMismatchOnOverride") public static class TypeMismatchOnOverride extends AbstractQuickFixTest { public void testAllFilesPresentInTypeMismatchOnOverride() throws Exception { @@ -907,7 +822,6 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest { public static Test innerSuite() { TestSuite suite = new TestSuite("Override"); suite.addTestSuite(Override.class); - suite.addTestSuite(NothingToOverride.class); suite.addTestSuite(TypeMismatchOnOverride.class); return suite; }