From 203e80debe6a97fe0aca852fe440df9060172619 Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Mon, 29 Jul 2013 17:30:07 +0400 Subject: [PATCH] Implement "Safe Delete" refactoring for type parameters Conflicts: idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/KotlinSafeDeleteProcessor.java Conflicts: generators/org/jetbrains/jet/generators/tests/GenerateTests.java Conflicts: generators/org/jetbrains/jet/generators/tests/GenerateTests.java --- .../jetbrains/jet/lang/psi/JetPsiUtil.java | 29 ++ ...lackBoxWithStdlibCodegenTestGenerated.java | 4 +- .../JetElementDescriptionProvider.java | 14 +- .../safeDelete/KotlinSafeDeleteProcessor.java | 111 ++++++- .../SafeDeleteTypeArgumentListUsageInfo.java | 37 +++ .../kotlinTypeParameter/internalUsages1.kt | 7 + .../internalUsages1.kt.messages | 2 + .../kotlinTypeParameter/internalUsages2.kt | 9 + .../internalUsages2.kt.messages | 2 + .../kotlinTypeParameter/internalUsages3.kt | 7 + .../internalUsages3.kt.messages | 2 + .../kotlinTypeParameter/internalUsages4.kt | 4 + .../internalUsages4.kt.messages | 2 + .../kotlinTypeParameter/internalUsages5.kt | 9 + .../internalUsages5.kt.messages | 2 + .../safeUsagesWithConstraint1.kt | 3 + .../safeUsagesWithConstraint1.kt.after | 3 + .../safeUsagesWithConstraint2.kt | 3 + .../safeUsagesWithConstraint2.kt.after | 3 + .../kotlinTypeParameter/subclass1.kt | 3 + .../kotlinTypeParameter/subclass1.kt.after | 3 + .../kotlinTypeParameter/subclass2.kt | 3 + .../kotlinTypeParameter/subclass2.kt.after | 3 + .../kotlinTypeParameter/subst1.kt | 3 + .../kotlinTypeParameter/subst1.kt.after | 3 + .../kotlinTypeParameter/subst2.kt | 3 + .../kotlinTypeParameter/subst2.kt.after | 3 + .../kotlinTypeParameter/subst3.kt | 3 + .../kotlinTypeParameter/subst3.kt.after | 3 + .../kotlinTypeParameter/subst4.kt | 9 + .../kotlinTypeParameter/subst4.kt.after | 9 + .../kotlinTypeParameter/subst5.kt | 9 + .../kotlinTypeParameter/subst5.kt.after | 9 + .../kotlinTypeParameter/subst6.kt | 3 + .../kotlinTypeParameter/subst6.kt.after | 3 + .../kotlinTypeParameter/subst7.kt | 9 + .../kotlinTypeParameter/subst7.kt.after | 9 + .../internalUsages1.java | 3 + .../internalUsages1.kt | 5 + .../internalUsages1.kt.messages | 2 + .../internalUsages2.java | 5 + .../internalUsages2.kt | 5 + .../internalUsages2.kt.messages | 2 + .../internalUsages3.java | 3 + .../internalUsages3.kt | 5 + .../internalUsages3.kt.messages | 2 + .../internalUsages4.java | 3 + .../internalUsages4.kt | 2 + .../internalUsages4.kt.messages | 2 + .../internalUsages5.java | 5 + .../internalUsages5.kt | 5 + .../internalUsages5.kt.messages | 2 + .../kotlinTypeParameterWithJava/rawType.java | 3 + .../rawType.java.after | 3 + .../kotlinTypeParameterWithJava/rawType.kt | 1 + .../rawType.kt.after | 1 + .../safeUsagesWithConstraint1.java | 3 + .../safeUsagesWithConstraint1.java.after | 3 + .../safeUsagesWithConstraint1.kt | 1 + .../safeUsagesWithConstraint1.kt.after | 1 + .../safeUsagesWithConstraint2.java | 3 + .../safeUsagesWithConstraint2.java.after | 3 + .../safeUsagesWithConstraint2.kt | 1 + .../safeUsagesWithConstraint2.kt.after | 1 + .../subclass1.java | 3 + .../subclass1.java.after | 3 + .../kotlinTypeParameterWithJava/subclass1.kt | 1 + .../subclass1.kt.after | 1 + .../subclass2.java | 3 + .../subclass2.java.after | 3 + .../kotlinTypeParameterWithJava/subclass2.kt | 1 + .../subclass2.kt.after | 1 + .../kotlinTypeParameterWithJava/subst1.java | 3 + .../subst1.java.after | 3 + .../kotlinTypeParameterWithJava/subst1.kt | 1 + .../subst1.kt.after | 1 + .../kotlinTypeParameterWithJava/subst2.java | 3 + .../subst2.java.after | 3 + .../kotlinTypeParameterWithJava/subst2.kt | 1 + .../subst2.kt.after | 1 + .../kotlinTypeParameterWithJava/subst3.java | 3 + .../subst3.java.after | 3 + .../kotlinTypeParameterWithJava/subst3.kt | 1 + .../subst3.kt.after | 1 + .../kotlinTypeParameterWithJava/subst4.java | 5 + .../subst4.java.after | 5 + .../kotlinTypeParameterWithJava/subst4.kt | 5 + .../subst4.kt.after | 5 + .../kotlinTypeParameterWithJava/subst5.java | 5 + .../subst5.java.after | 5 + .../kotlinTypeParameterWithJava/subst5.kt | 5 + .../subst5.kt.after | 5 + .../kotlinTypeParameterWithJava/subst6.java | 3 + .../subst6.java.after | 3 + .../kotlinTypeParameterWithJava/subst6.kt | 1 + .../subst6.kt.after | 1 + .../kotlinTypeParameterWithJava/subst7.java | 5 + .../subst7.java.after | 5 + .../kotlinTypeParameterWithJava/subst7.kt | 5 + .../subst7.kt.after | 5 + .../safeDelete/AbstractJetSafeDeleteTest.java | 13 +- .../JetSafeDeleteTestGenerated.java | 305 +++++++++++------- 102 files changed, 722 insertions(+), 122 deletions(-) create mode 100644 idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/SafeDeleteTypeArgumentListUsageInfo.java create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages1.kt create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages1.kt.messages create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages2.kt create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages2.kt.messages create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages3.kt create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages3.kt.messages create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages4.kt create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages4.kt.messages create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages5.kt create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages5.kt.messages create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/safeUsagesWithConstraint1.kt create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/safeUsagesWithConstraint1.kt.after create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/safeUsagesWithConstraint2.kt create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/safeUsagesWithConstraint2.kt.after create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subclass1.kt create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subclass1.kt.after create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subclass2.kt create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subclass2.kt.after create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst1.kt create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst1.kt.after create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst2.kt create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst2.kt.after create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst3.kt create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst3.kt.after create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst4.kt create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst4.kt.after create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst5.kt create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst5.kt.after create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst6.kt create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst6.kt.after create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst7.kt create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst7.kt.after create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages1.java create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages1.kt create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages1.kt.messages create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages2.java create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages2.kt create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages2.kt.messages create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages3.java create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages3.kt create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages3.kt.messages create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages4.java create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages4.kt create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages4.kt.messages create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages5.java create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages5.kt create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages5.kt.messages create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/rawType.java create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/rawType.java.after create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/rawType.kt create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/rawType.kt.after create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/safeUsagesWithConstraint1.java create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/safeUsagesWithConstraint1.java.after create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/safeUsagesWithConstraint1.kt create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/safeUsagesWithConstraint1.kt.after create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/safeUsagesWithConstraint2.java create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/safeUsagesWithConstraint2.java.after create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/safeUsagesWithConstraint2.kt create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/safeUsagesWithConstraint2.kt.after create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subclass1.java create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subclass1.java.after create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subclass1.kt create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subclass1.kt.after create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subclass2.java create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subclass2.java.after create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subclass2.kt create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subclass2.kt.after create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst1.java create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst1.java.after create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst1.kt create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst1.kt.after create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst2.java create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst2.java.after create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst2.kt create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst2.kt.after create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst3.java create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst3.java.after create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst3.kt create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst3.kt.after create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst4.java create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst4.java.after create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst4.kt create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst4.kt.after create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst5.java create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst5.java.after create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst5.kt create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst5.kt.after create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst6.java create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst6.java.after create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst6.kt create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst6.kt.after create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst7.java create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst7.java.after create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst7.kt create mode 100644 idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst7.kt.after diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetPsiUtil.java b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetPsiUtil.java index de8fdf4a4bb..cd297233783 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetPsiUtil.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetPsiUtil.java @@ -911,6 +911,35 @@ public class JetPsiUtil { return (names.size() > partIndex) ? names.get(partIndex) : header.getLastPartExpression(); } + // Delete given element and all the elements separating it from the neighboring elements of the same class + public static void deleteElementWithDelimiters(@NotNull PsiElement element) { + PsiElement paramBefore = PsiTreeUtil.getPrevSiblingOfType(element, element.getClass()); + + PsiElement from; + PsiElement to; + if (paramBefore != null) { + from = paramBefore.getNextSibling(); + to = element; + } + else { + PsiElement paramAfter = PsiTreeUtil.getNextSiblingOfType(element, element.getClass()); + + from = element; + to = paramAfter != null ? paramAfter.getPrevSibling() : element; + } + + PsiElement parent = element.getParent(); + + parent.deleteChildRange(from, to); + } + + // Delete element if it doesn't contain children of a given type + public static void deleteChildlessElement(PsiElement element, Class childClass) { + if (PsiTreeUtil.getChildrenOfType(element, childClass) == null) { + element.delete(); + } + } + public static PsiElement ascendIfPropertyAccessor(PsiElement element) { if (element instanceof JetPropertyAccessor) { return element.getParent(); diff --git a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithStdlibCodegenTestGenerated.java b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithStdlibCodegenTestGenerated.java index ee1a39307b0..94fe12b1200 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithStdlibCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithStdlibCodegenTestGenerated.java @@ -36,13 +36,13 @@ public class BlackBoxWithStdlibCodegenTestGenerated extends AbstractBlackBoxCode public void testAllFilesPresentInBoxWithStdlib() throws Exception { JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("compiler/testData/codegen/boxWithStdlib"), Pattern.compile("^(.+)\\.kt$"), true); } - + @TestMetadata("compiler/testData/codegen/boxWithStdlib/annotations") public static class Annotations extends AbstractBlackBoxCodegenTest { public void testAllFilesPresentInAnnotations() throws Exception { JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("compiler/testData/codegen/boxWithStdlib/annotations"), Pattern.compile("^(.+)\\.kt$"), true); } - + @TestMetadata("defaultParameterValues.kt") public void testDefaultParameterValues() throws Exception { doTestWithStdlib("compiler/testData/codegen/boxWithStdlib/annotations/defaultParameterValues.kt"); diff --git a/idea/src/org/jetbrains/jet/plugin/findUsages/JetElementDescriptionProvider.java b/idea/src/org/jetbrains/jet/plugin/findUsages/JetElementDescriptionProvider.java index c33b2801e0d..0fefad66e58 100644 --- a/idea/src/org/jetbrains/jet/plugin/findUsages/JetElementDescriptionProvider.java +++ b/idea/src/org/jetbrains/jet/plugin/findUsages/JetElementDescriptionProvider.java @@ -29,9 +29,9 @@ public class JetElementDescriptionProvider implements ElementDescriptionProvider @Override public String getElementDescription(@NotNull PsiElement element, @NotNull ElementDescriptionLocation location) { if (location instanceof UsageViewLongNameLocation) { - if (element instanceof PsiNamedElement && element instanceof JetElement) { - return ((PsiNamedElement)element).getName(); - } + if (element instanceof PsiNamedElement && element instanceof JetElement) { + return ((PsiNamedElement) element).getName(); + } } else if (location instanceof RefactoringDescriptionLocation) { if (element instanceof JetClass) { @@ -39,16 +39,16 @@ public class JetElementDescriptionProvider implements ElementDescriptionProvider return (jetClass.isTrait() ? "Trait " : "Class ") + jetClass.getName(); } if (element instanceof JetObjectDeclaration || element instanceof JetObjectDeclarationName) { - return "Object " + ((PsiNamedElement)element).getName(); + return "Object " + ((PsiNamedElement) element).getName(); } if (element instanceof JetNamedFunction) { - return "Function " + ((PsiNamedElement)element).getName(); + return "Function " + ((PsiNamedElement) element).getName(); } if (element instanceof JetProperty) { - return "Property " + ((PsiNamedElement)element).getName(); + return "Property " + ((PsiNamedElement) element).getName(); } if (element instanceof JetTypeParameter) { - return "Type parameter " + ((PsiNamedElement)element).getName(); + return "Type parameter " + ((PsiNamedElement) element).getName(); } } return null; diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/KotlinSafeDeleteProcessor.java b/idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/KotlinSafeDeleteProcessor.java index 887f3e78d59..f47e28a34b3 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/KotlinSafeDeleteProcessor.java +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/KotlinSafeDeleteProcessor.java @@ -31,6 +31,7 @@ import com.intellij.refactoring.safeDelete.JavaSafeDeleteProcessor; import com.intellij.refactoring.safeDelete.NonCodeUsageSearchInfo; import com.intellij.refactoring.safeDelete.usageInfo.SafeDeleteOverrideAnnotation; import com.intellij.refactoring.safeDelete.usageInfo.SafeDeleteOverridingMethodUsageInfo; +import com.intellij.refactoring.safeDelete.usageInfo.SafeDeleteReferenceJavaDeleteUsageInfo; import com.intellij.refactoring.safeDelete.usageInfo.SafeDeleteReferenceSimpleDeleteUsageInfo; import com.intellij.usageView.UsageInfo; import com.intellij.util.*; @@ -56,7 +57,8 @@ public class KotlinSafeDeleteProcessor extends JavaSafeDeleteProcessor { || element instanceof JetObjectDeclarationName || element instanceof JetNamedFunction || element instanceof PsiMethod - || element instanceof JetProperty; + || element instanceof JetProperty + || element instanceof JetTypeParameter; } @Override @@ -108,6 +110,9 @@ public class KotlinSafeDeleteProcessor extends JavaSafeDeleteProcessor { } return findPropertyUsages(property, allElementsToDelete, result); } + if (element instanceof JetTypeParameter) { + return findTypeParameterUsages((JetTypeParameter) element, allElementsToDelete, result); + } return getSearchInfo(element, allElementsToDelete); } @@ -309,6 +314,101 @@ public class KotlinSafeDeleteProcessor extends JavaSafeDeleteProcessor { return getSearchInfo(property, allElementsToDelete); } + protected static NonCodeUsageSearchInfo findTypeParameterUsages( + final JetTypeParameter parameter, + final PsiElement[] allElementsToDelete, + final List result + ) { + NonCodeUsageSearchInfo searchInfo = getSearchInfo(parameter, allElementsToDelete); + + ReferencesSearch.search(parameter).forEach(new Processor() { + @Override + public boolean process(PsiReference reference) { + PsiElement element = reference.getElement(); + + if (!isInside(element, allElementsToDelete)) { + result.add(new SafeDeleteReferenceSimpleDeleteUsageInfo(element, parameter, false)); + } + return true; + } + }); + + JetTypeParameterListOwner owner = PsiTreeUtil.getParentOfType(parameter, JetTypeParameterListOwner.class); + if (owner == null) return searchInfo; + + List parameterList = owner.getTypeParameters(); + final int parameterCount = parameterList.size(); + final int parameterIndex = parameterList.indexOf(parameter); + + ReferencesSearch.search(owner).forEach( + new Processor() { + @Override + public boolean process(PsiReference reference) { + if (reference instanceof PsiJavaCodeReferenceElement) { + processJavaTypeArgumentListCandidate( + (PsiJavaCodeReferenceElement) reference, parameterIndex, parameterCount, result, parameter + ); + } + else { + processKotlinTypeArgumentListCandidate(reference, parameterIndex, result, parameter); + } + return true; + } + } + ); + + return searchInfo; + } + + private static void processJavaTypeArgumentListCandidate( + PsiJavaCodeReferenceElement reference, + int parameterIndex, + int parameterCount, + List result, + PsiElement parameter + ) { + PsiReferenceParameterList parameterList = reference.getParameterList(); + if (parameterList != null) { + PsiTypeElement[] typeArgs = parameterList.getTypeParameterElements(); + if (typeArgs.length > parameterIndex) { + if (typeArgs.length == 1 && parameterCount > 1 + && typeArgs[0].getType() instanceof PsiDiamondType) { + return; + } + result.add(new SafeDeleteReferenceJavaDeleteUsageInfo(typeArgs[parameterIndex], parameter, true)); + } + } + } + + private static void processKotlinTypeArgumentListCandidate( + PsiReference reference, + int parameterIndex, + List result, + JetTypeParameter parameter + ) { + PsiElement referencedElement = reference.getElement(); + + JetTypeArgumentList argList = null; + + JetUserType type = PsiTreeUtil.getParentOfType(referencedElement, JetUserType.class); + if (type != null) { + argList = type.getTypeArgumentList(); + } + else { + JetCallExpression callExpression = PsiTreeUtil.getParentOfType(referencedElement, JetCallExpression.class); + if (callExpression != null) { + argList = callExpression.getTypeArgumentList(); + } + } + + if (argList != null) { + List projections = argList.getArguments(); + if (parameterIndex < projections.size()) { + result.add(new SafeDeleteTypeArgumentListUsageInfo(projections.get(parameterIndex), parameter)); + } + } + } + /* * Mostly copied from JavaSafeDeleteProcessor.validateOverridingMethods * Revision: d4fc033 @@ -561,6 +661,15 @@ public class KotlinSafeDeleteProcessor extends JavaSafeDeleteProcessor { cleanUpOverrides(setter); } } + else if (element instanceof JetTypeParameter) { + deleteElementAndCleanParent(element); + } + } + + public static void deleteElementAndCleanParent(PsiElement element) { + PsiElement parent = element.getParent(); + JetPsiUtil.deleteElementWithDelimiters(element); + JetPsiUtil.deleteChildlessElement(parent, element.getClass()); } private static boolean checkPsiMethodEquality(PsiMethod method1, PsiMethod method2) { diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/SafeDeleteTypeArgumentListUsageInfo.java b/idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/SafeDeleteTypeArgumentListUsageInfo.java new file mode 100644 index 00000000000..b9d8ebb653c --- /dev/null +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/SafeDeleteTypeArgumentListUsageInfo.java @@ -0,0 +1,37 @@ +/* + * 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.refactoring.safeDelete; + +import com.intellij.psi.PsiElement; +import com.intellij.refactoring.safeDelete.usageInfo.SafeDeleteReferenceSimpleDeleteUsageInfo; +import com.intellij.util.IncorrectOperationException; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.lang.psi.*; + +public class SafeDeleteTypeArgumentListUsageInfo extends SafeDeleteReferenceSimpleDeleteUsageInfo { + public SafeDeleteTypeArgumentListUsageInfo(@NotNull JetTypeProjection typeProjection, @NotNull JetTypeParameter parameter) { + super(typeProjection, parameter, true); + } + + @Override + public void deleteElement() throws IncorrectOperationException { + PsiElement element = getElement(); + if (element != null) { + KotlinSafeDeleteProcessor.deleteElementAndCleanParent(element); + } + } +} diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages1.kt b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages1.kt new file mode 100644 index 00000000000..b6c33f9002e --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages1.kt @@ -0,0 +1,7 @@ +class A<X, Y, Z> { + fun foo(x: X) { + + } +} + +val a = A() \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages1.kt.messages b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages1.kt.messages new file mode 100644 index 00000000000..bcf6aabf222 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages1.kt.messages @@ -0,0 +1,2 @@ +Type parameter X has 1 usage that is not safe to delete. +Of those 0 usages are in strings, comments, or non-code files. \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages2.kt b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages2.kt new file mode 100644 index 00000000000..2644f1ed5a6 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages2.kt @@ -0,0 +1,9 @@ +class A { + fun foo<Y>(x: X, y: Y) { + + } +} + +fun bar(a: A) { + a.foo("123", 123) +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages2.kt.messages b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages2.kt.messages new file mode 100644 index 00000000000..b233b26adb2 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages2.kt.messages @@ -0,0 +1,2 @@ +Type parameter Y has 1 usage that is not safe to delete. +Of those 0 usages are in strings, comments, or non-code files. \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages3.kt b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages3.kt new file mode 100644 index 00000000000..893cb768ed7 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages3.kt @@ -0,0 +1,7 @@ +class A<X, Y: X, Z> { + fun foo(x: X) { + + } +} + +val a = A() \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages3.kt.messages b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages3.kt.messages new file mode 100644 index 00000000000..6301504f002 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages3.kt.messages @@ -0,0 +1,2 @@ +Type parameter X has 2 usages that are not safe to delete. +Of those 0 usages are in strings, comments, or non-code files. \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages4.kt b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages4.kt new file mode 100644 index 00000000000..8c208ee1e1f --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages4.kt @@ -0,0 +1,4 @@ +class A<X, Y, Z> where Y: X { +} + +val a = A() \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages4.kt.messages b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages4.kt.messages new file mode 100644 index 00000000000..bcf6aabf222 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages4.kt.messages @@ -0,0 +1,2 @@ +Type parameter X has 1 usage that is not safe to delete. +Of those 0 usages are in strings, comments, or non-code files. \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages5.kt b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages5.kt new file mode 100644 index 00000000000..325c97bce44 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages5.kt @@ -0,0 +1,9 @@ +class A<X> { + fun foo() where Y: X { + + } +} + +fun bar(a: A) { + a.foo() +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages5.kt.messages b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages5.kt.messages new file mode 100644 index 00000000000..bcf6aabf222 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages5.kt.messages @@ -0,0 +1,2 @@ +Type parameter X has 1 usage that is not safe to delete. +Of those 0 usages are in strings, comments, or non-code files. \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/safeUsagesWithConstraint1.kt b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/safeUsagesWithConstraint1.kt new file mode 100644 index 00000000000..f30d8f2711d --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/safeUsagesWithConstraint1.kt @@ -0,0 +1,3 @@ +class AX: Comparable, in Y: Number, Z> + +val a = A() \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/safeUsagesWithConstraint1.kt.after b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/safeUsagesWithConstraint1.kt.after new file mode 100644 index 00000000000..393caaefa9a --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/safeUsagesWithConstraint1.kt.after @@ -0,0 +1,3 @@ +class A + +val a = A() \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/safeUsagesWithConstraint2.kt b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/safeUsagesWithConstraint2.kt new file mode 100644 index 00000000000..2d44c36fbe7 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/safeUsagesWithConstraint2.kt @@ -0,0 +1,3 @@ +class A, in Y: Number, Z> + +val a = A() \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/safeUsagesWithConstraint2.kt.after b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/safeUsagesWithConstraint2.kt.after new file mode 100644 index 00000000000..895f52d80f2 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/safeUsagesWithConstraint2.kt.after @@ -0,0 +1,3 @@ +class A, Z> + +val a = A() \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subclass1.kt b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subclass1.kt new file mode 100644 index 00000000000..4830d4cd0b2 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subclass1.kt @@ -0,0 +1,3 @@ +open class A<X, Y, Z> + +class B: A \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subclass1.kt.after b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subclass1.kt.after new file mode 100644 index 00000000000..6eb8c5d013b --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subclass1.kt.after @@ -0,0 +1,3 @@ +open class A + +class B: A \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subclass2.kt b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subclass2.kt new file mode 100644 index 00000000000..32ab51d4c30 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subclass2.kt @@ -0,0 +1,3 @@ +open class A<X, Y, Z> + +class B: A \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subclass2.kt.after b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subclass2.kt.after new file mode 100644 index 00000000000..29b42eb3c61 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subclass2.kt.after @@ -0,0 +1,3 @@ +open class A + +class B: A \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst1.kt b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst1.kt new file mode 100644 index 00000000000..2b6030752d4 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst1.kt @@ -0,0 +1,3 @@ +class A<X, Y, Z> + +val a = A() \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst1.kt.after b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst1.kt.after new file mode 100644 index 00000000000..405a3d5edd1 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst1.kt.after @@ -0,0 +1,3 @@ +class A + +val a = A() \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst2.kt b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst2.kt new file mode 100644 index 00000000000..8272cbc2c40 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst2.kt @@ -0,0 +1,3 @@ +class AY, Z> + +val a = A() \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst2.kt.after b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst2.kt.after new file mode 100644 index 00000000000..0434ff1c08a --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst2.kt.after @@ -0,0 +1,3 @@ +class A + +val a = A() \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst3.kt b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst3.kt new file mode 100644 index 00000000000..31e3474455c --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst3.kt @@ -0,0 +1,3 @@ +class AZ> + +val a = A() \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst3.kt.after b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst3.kt.after new file mode 100644 index 00000000000..d4fb4bcd752 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst3.kt.after @@ -0,0 +1,3 @@ +class A + +val a = A() \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst4.kt b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst4.kt new file mode 100644 index 00000000000..40c23733c3f --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst4.kt @@ -0,0 +1,9 @@ +class A { + fun foo<Y, Z>() { + + } +} + +fun bar(a: A) { + a.foo() +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst4.kt.after b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst4.kt.after new file mode 100644 index 00000000000..4a8974a37bb --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst4.kt.after @@ -0,0 +1,9 @@ +class A { + fun foo() { + + } +} + +fun bar(a: A) { + a.foo() +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst5.kt b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst5.kt new file mode 100644 index 00000000000..6290ec9452f --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst5.kt @@ -0,0 +1,9 @@ +class A { + fun fooZ>() { + + } +} + +fun bar(a: A) { + a.foo() +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst5.kt.after b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst5.kt.after new file mode 100644 index 00000000000..8e5042316a4 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst5.kt.after @@ -0,0 +1,9 @@ +class A { + fun foo() { + + } +} + +fun bar(a: A) { + a.foo() +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst6.kt b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst6.kt new file mode 100644 index 00000000000..bc722941938 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst6.kt @@ -0,0 +1,3 @@ +class A<X> + +val a = A() \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst6.kt.after b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst6.kt.after new file mode 100644 index 00000000000..221b38d9d6b --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst6.kt.after @@ -0,0 +1,3 @@ +class A + +val a = A() \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst7.kt b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst7.kt new file mode 100644 index 00000000000..26e6e27532c --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst7.kt @@ -0,0 +1,9 @@ +class A { + fun foo<Y>() { + + } +} + +fun bar(a: A) { + a.foo() +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst7.kt.after b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst7.kt.after new file mode 100644 index 00000000000..324822e583e --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst7.kt.after @@ -0,0 +1,9 @@ +class A { + fun foo() { + + } +} + +fun bar(a: A) { + a.foo() +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages1.java b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages1.java new file mode 100644 index 00000000000..049a27f36bf --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages1.java @@ -0,0 +1,3 @@ +class B { + A a = new A() +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages1.kt b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages1.kt new file mode 100644 index 00000000000..82a236d2c58 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages1.kt @@ -0,0 +1,5 @@ +class A<X, Y, Z> { + fun foo(x: X) { + + } +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages1.kt.messages b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages1.kt.messages new file mode 100644 index 00000000000..bcf6aabf222 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages1.kt.messages @@ -0,0 +1,2 @@ +Type parameter X has 1 usage that is not safe to delete. +Of those 0 usages are in strings, comments, or non-code files. \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages2.java b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages2.java new file mode 100644 index 00000000000..f6ce1e90d81 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages2.java @@ -0,0 +1,5 @@ +class B { + void bar(A a) { + a.foo("123", 123) + } +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages2.kt b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages2.kt new file mode 100644 index 00000000000..660fc26ca0e --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages2.kt @@ -0,0 +1,5 @@ +class A { + fun foo<Y>(x: X, y: Y) { + + } +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages2.kt.messages b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages2.kt.messages new file mode 100644 index 00000000000..b233b26adb2 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages2.kt.messages @@ -0,0 +1,2 @@ +Type parameter Y has 1 usage that is not safe to delete. +Of those 0 usages are in strings, comments, or non-code files. \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages3.java b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages3.java new file mode 100644 index 00000000000..049a27f36bf --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages3.java @@ -0,0 +1,3 @@ +class B { + A a = new A() +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages3.kt b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages3.kt new file mode 100644 index 00000000000..d1ae4d6afd7 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages3.kt @@ -0,0 +1,5 @@ +class A<X, Y: X, Z> { + fun foo(x: X) { + + } +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages3.kt.messages b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages3.kt.messages new file mode 100644 index 00000000000..6301504f002 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages3.kt.messages @@ -0,0 +1,2 @@ +Type parameter X has 2 usages that are not safe to delete. +Of those 0 usages are in strings, comments, or non-code files. \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages4.java b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages4.java new file mode 100644 index 00000000000..049a27f36bf --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages4.java @@ -0,0 +1,3 @@ +class B { + A a = new A() +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages4.kt b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages4.kt new file mode 100644 index 00000000000..9260241217b --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages4.kt @@ -0,0 +1,2 @@ +class A<X, Y, Z> where Y: X { +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages4.kt.messages b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages4.kt.messages new file mode 100644 index 00000000000..bcf6aabf222 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages4.kt.messages @@ -0,0 +1,2 @@ +Type parameter X has 1 usage that is not safe to delete. +Of those 0 usages are in strings, comments, or non-code files. \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages5.java b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages5.java new file mode 100644 index 00000000000..5f122ff217f --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages5.java @@ -0,0 +1,5 @@ +class B { + void bar(A a) { + a.foo() + } +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages5.kt b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages5.kt new file mode 100644 index 00000000000..fec914237a2 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages5.kt @@ -0,0 +1,5 @@ +class A<X> { + fun foo() where Y: X { + + } +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages5.kt.messages b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages5.kt.messages new file mode 100644 index 00000000000..bcf6aabf222 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/internalUsages5.kt.messages @@ -0,0 +1,2 @@ +Type parameter X has 1 usage that is not safe to delete. +Of those 0 usages are in strings, comments, or non-code files. \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/rawType.java b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/rawType.java new file mode 100644 index 00000000000..3c13046d0c9 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/rawType.java @@ -0,0 +1,3 @@ +class B { + A a = new A() +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/rawType.java.after b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/rawType.java.after new file mode 100644 index 00000000000..3c13046d0c9 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/rawType.java.after @@ -0,0 +1,3 @@ +class B { + A a = new A() +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/rawType.kt b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/rawType.kt new file mode 100644 index 00000000000..c86b8f7597c --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/rawType.kt @@ -0,0 +1 @@ +class A<X, Y, Z> \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/rawType.kt.after b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/rawType.kt.after new file mode 100644 index 00000000000..06196f61550 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/rawType.kt.after @@ -0,0 +1 @@ +class A \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/safeUsagesWithConstraint1.java b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/safeUsagesWithConstraint1.java new file mode 100644 index 00000000000..5f35c6e71d2 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/safeUsagesWithConstraint1.java @@ -0,0 +1,3 @@ +class B { + A a = new A() +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/safeUsagesWithConstraint1.java.after b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/safeUsagesWithConstraint1.java.after new file mode 100644 index 00000000000..a71f93c8c53 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/safeUsagesWithConstraint1.java.after @@ -0,0 +1,3 @@ +class B { + A a = new A() +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/safeUsagesWithConstraint1.kt b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/safeUsagesWithConstraint1.kt new file mode 100644 index 00000000000..649efd49fd5 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/safeUsagesWithConstraint1.kt @@ -0,0 +1 @@ +class AX: Comparable, in Y: Number, Z> \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/safeUsagesWithConstraint1.kt.after b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/safeUsagesWithConstraint1.kt.after new file mode 100644 index 00000000000..1650983267b --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/safeUsagesWithConstraint1.kt.after @@ -0,0 +1 @@ +class A \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/safeUsagesWithConstraint2.java b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/safeUsagesWithConstraint2.java new file mode 100644 index 00000000000..5f35c6e71d2 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/safeUsagesWithConstraint2.java @@ -0,0 +1,3 @@ +class B { + A a = new A() +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/safeUsagesWithConstraint2.java.after b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/safeUsagesWithConstraint2.java.after new file mode 100644 index 00000000000..fa5c0562dba --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/safeUsagesWithConstraint2.java.after @@ -0,0 +1,3 @@ +class B { + A a = new A() +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/safeUsagesWithConstraint2.kt b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/safeUsagesWithConstraint2.kt new file mode 100644 index 00000000000..918e078b6ca --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/safeUsagesWithConstraint2.kt @@ -0,0 +1 @@ +class A, in Y: Number, Z> \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/safeUsagesWithConstraint2.kt.after b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/safeUsagesWithConstraint2.kt.after new file mode 100644 index 00000000000..14fd2cc9f0e --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/safeUsagesWithConstraint2.kt.after @@ -0,0 +1 @@ +class A, Z> \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subclass1.java b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subclass1.java new file mode 100644 index 00000000000..221d9f8f471 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subclass1.java @@ -0,0 +1,3 @@ +class B extends A { + +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subclass1.java.after b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subclass1.java.after new file mode 100644 index 00000000000..1e02aa391e7 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subclass1.java.after @@ -0,0 +1,3 @@ +class B extends A { + +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subclass1.kt b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subclass1.kt new file mode 100644 index 00000000000..9c15b0a943d --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subclass1.kt @@ -0,0 +1 @@ +open class A<X, Y, Z> \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subclass1.kt.after b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subclass1.kt.after new file mode 100644 index 00000000000..7d99c89b11f --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subclass1.kt.after @@ -0,0 +1 @@ +open class A \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subclass2.java b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subclass2.java new file mode 100644 index 00000000000..d72d80f7112 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subclass2.java @@ -0,0 +1,3 @@ +class B extends A { + +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subclass2.java.after b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subclass2.java.after new file mode 100644 index 00000000000..20d76d0046f --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subclass2.java.after @@ -0,0 +1,3 @@ +class B extends A { + +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subclass2.kt b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subclass2.kt new file mode 100644 index 00000000000..9c15b0a943d --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subclass2.kt @@ -0,0 +1 @@ +open class A<X, Y, Z> \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subclass2.kt.after b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subclass2.kt.after new file mode 100644 index 00000000000..7d99c89b11f --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subclass2.kt.after @@ -0,0 +1 @@ +open class A \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst1.java b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst1.java new file mode 100644 index 00000000000..049a27f36bf --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst1.java @@ -0,0 +1,3 @@ +class B { + A a = new A() +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst1.java.after b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst1.java.after new file mode 100644 index 00000000000..fa5c0562dba --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst1.java.after @@ -0,0 +1,3 @@ +class B { + A a = new A() +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst1.kt b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst1.kt new file mode 100644 index 00000000000..c86b8f7597c --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst1.kt @@ -0,0 +1 @@ +class A<X, Y, Z> \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst1.kt.after b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst1.kt.after new file mode 100644 index 00000000000..06196f61550 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst1.kt.after @@ -0,0 +1 @@ +class A \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst2.java b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst2.java new file mode 100644 index 00000000000..049a27f36bf --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst2.java @@ -0,0 +1,3 @@ +class B { + A a = new A() +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst2.java.after b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst2.java.after new file mode 100644 index 00000000000..a71f93c8c53 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst2.java.after @@ -0,0 +1,3 @@ +class B { + A a = new A() +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst2.kt b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst2.kt new file mode 100644 index 00000000000..b50197dfe52 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst2.kt @@ -0,0 +1 @@ +class AY, Z> \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst2.kt.after b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst2.kt.after new file mode 100644 index 00000000000..39d097aafd8 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst2.kt.after @@ -0,0 +1 @@ +class A \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst3.java b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst3.java new file mode 100644 index 00000000000..049a27f36bf --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst3.java @@ -0,0 +1,3 @@ +class B { + A a = new A() +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst3.java.after b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst3.java.after new file mode 100644 index 00000000000..46905e372ad --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst3.java.after @@ -0,0 +1,3 @@ +class B { + A a = new A() +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst3.kt b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst3.kt new file mode 100644 index 00000000000..cf65ecad6c3 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst3.kt @@ -0,0 +1 @@ +class AZ> \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst3.kt.after b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst3.kt.after new file mode 100644 index 00000000000..7d112f23073 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst3.kt.after @@ -0,0 +1 @@ +class A \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst4.java b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst4.java new file mode 100644 index 00000000000..c556738081f --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst4.java @@ -0,0 +1,5 @@ +class B { + void bar(A a) { + a.foo() + } +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst4.java.after b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst4.java.after new file mode 100644 index 00000000000..6953d858263 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst4.java.after @@ -0,0 +1,5 @@ +class B { + void bar(A a) { + a.foo() + } +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst4.kt b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst4.kt new file mode 100644 index 00000000000..b16dedb3343 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst4.kt @@ -0,0 +1,5 @@ +class A { + fun foo<Y, Z>() { + + } +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst4.kt.after b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst4.kt.after new file mode 100644 index 00000000000..8b5f91e83be --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst4.kt.after @@ -0,0 +1,5 @@ +class A { + fun foo() { + + } +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst5.java b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst5.java new file mode 100644 index 00000000000..c556738081f --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst5.java @@ -0,0 +1,5 @@ +class B { + void bar(A a) { + a.foo() + } +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst5.java.after b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst5.java.after new file mode 100644 index 00000000000..9cc9fabdea9 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst5.java.after @@ -0,0 +1,5 @@ +class B { + void bar(A a) { + a.foo() + } +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst5.kt b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst5.kt new file mode 100644 index 00000000000..abc255f3b13 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst5.kt @@ -0,0 +1,5 @@ +class A { + fun fooZ>() { + + } +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst5.kt.after b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst5.kt.after new file mode 100644 index 00000000000..92bb08f20f8 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst5.kt.after @@ -0,0 +1,5 @@ +class A { + fun foo() { + + } +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst6.java b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst6.java new file mode 100644 index 00000000000..70bb9397f63 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst6.java @@ -0,0 +1,3 @@ +class B { + A a = new A() +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst6.java.after b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst6.java.after new file mode 100644 index 00000000000..3c13046d0c9 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst6.java.after @@ -0,0 +1,3 @@ +class B { + A a = new A() +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst6.kt b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst6.kt new file mode 100644 index 00000000000..c5897c91f38 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst6.kt @@ -0,0 +1 @@ +class A<X> \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst6.kt.after b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst6.kt.after new file mode 100644 index 00000000000..fb7337ede5b --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst6.kt.after @@ -0,0 +1 @@ +class A \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst7.java b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst7.java new file mode 100644 index 00000000000..9cc9fabdea9 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst7.java @@ -0,0 +1,5 @@ +class B { + void bar(A a) { + a.foo() + } +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst7.java.after b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst7.java.after new file mode 100644 index 00000000000..e4048f5bb28 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst7.java.after @@ -0,0 +1,5 @@ +class B { + void bar(A a) { + a.foo() + } +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst7.kt b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst7.kt new file mode 100644 index 00000000000..58a80cf3793 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst7.kt @@ -0,0 +1,5 @@ +class A { + fun foo<Y>() { + + } +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst7.kt.after b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst7.kt.after new file mode 100644 index 00000000000..0ca8a9097c2 --- /dev/null +++ b/idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameterWithJava/subst7.kt.after @@ -0,0 +1,5 @@ +class A { + fun foo() { + + } +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/safeDelete/AbstractJetSafeDeleteTest.java b/idea/tests/org/jetbrains/jet/safeDelete/AbstractJetSafeDeleteTest.java index 6cc4afb9aa9..28f9304a31a 100644 --- a/idea/tests/org/jetbrains/jet/safeDelete/AbstractJetSafeDeleteTest.java +++ b/idea/tests/org/jetbrains/jet/safeDelete/AbstractJetSafeDeleteTest.java @@ -29,10 +29,7 @@ import com.intellij.refactoring.safeDelete.SafeDeleteHandler; import com.intellij.testFramework.LightProjectDescriptor; import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase; import org.jetbrains.annotations.NotNull; -import org.jetbrains.jet.lang.psi.JetClass; -import org.jetbrains.jet.lang.psi.JetNamedFunction; -import org.jetbrains.jet.lang.psi.JetObjectDeclarationName; -import org.jetbrains.jet.lang.psi.JetProperty; +import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.plugin.JetLightProjectDescriptor; import org.jetbrains.jet.plugin.PluginTestCaseBase; @@ -87,6 +84,14 @@ public abstract class AbstractJetSafeDeleteTest extends LightCodeInsightFixtureT doTest(path, PsiMethod.class, true); } + public void doTypeParameterTest(@NotNull String path) throws Exception { + doTest(path, JetTypeParameter.class, false); + } + + public void doTypeParameterTestWithJava(@NotNull String path) throws Exception { + doTest(path, JetTypeParameter.class, true); + } + private void doTest( @NotNull String path, @NotNull Class elementClass, boolean withJava) throws Exception { String[] filePaths; diff --git a/idea/tests/org/jetbrains/jet/safeDelete/JetSafeDeleteTestGenerated.java b/idea/tests/org/jetbrains/jet/safeDelete/JetSafeDeleteTestGenerated.java index 7a24940eb3e..9b86ba7d0dc 100644 --- a/idea/tests/org/jetbrains/jet/safeDelete/JetSafeDeleteTestGenerated.java +++ b/idea/tests/org/jetbrains/jet/safeDelete/JetSafeDeleteTestGenerated.java @@ -30,247 +30,247 @@ import org.jetbrains.jet.safeDelete.AbstractJetSafeDeleteTest; /** This class is generated by {@link org.jetbrains.jet.generators.tests.GenerateTests}. DO NOT MODIFY MANUALLY */ @SuppressWarnings("all") -@InnerTestClasses({JetSafeDeleteTestGenerated.DeleteClass.class, JetSafeDeleteTestGenerated.DeleteObject.class, JetSafeDeleteTestGenerated.DeleteFunction.class, JetSafeDeleteTestGenerated.DeleteFunctionWithJavaUsages.class, JetSafeDeleteTestGenerated.DeleteJavaMethod.class, JetSafeDeleteTestGenerated.DeleteProperty.class, JetSafeDeleteTestGenerated.DeletePropertyWithJavaUsages.class, JetSafeDeleteTestGenerated.DeleteJavaProperty.class}) +@InnerTestClasses({JetSafeDeleteTestGenerated.KotlinClass.class, JetSafeDeleteTestGenerated.KotlinObject.class, JetSafeDeleteTestGenerated.KotlinFunction.class, JetSafeDeleteTestGenerated.KotlinFunctionWithJava.class, JetSafeDeleteTestGenerated.JavaFunctionWithKotlin.class, JetSafeDeleteTestGenerated.KotlinProperty.class, JetSafeDeleteTestGenerated.KotlinPropertyWithJava.class, JetSafeDeleteTestGenerated.JavaPropertyWithKotlin.class, JetSafeDeleteTestGenerated.KotlinTypeParameter.class}) public class JetSafeDeleteTestGenerated extends AbstractJetSafeDeleteTest { - @TestMetadata("idea/testData/safeDelete/deleteClass") - public static class DeleteClass extends AbstractJetSafeDeleteTest { - public void testAllFilesPresentInDeleteClass() throws Exception { - JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/safeDelete/deleteClass"), Pattern.compile("^(.+)\\.kt$"), true); + @TestMetadata("idea/testData/safeDelete/deleteClass/kotlinClass") + public static class KotlinClass extends AbstractJetSafeDeleteTest { + public void testAllFilesPresentInKotlinClass() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/safeDelete/deleteClass/kotlinClass"), Pattern.compile("^(.+)\\.kt$"), true); } @TestMetadata("class1.kt") public void testClass1() throws Exception { - doClassTest("idea/testData/safeDelete/deleteClass/class1.kt"); + doClassTest("idea/testData/safeDelete/deleteClass/kotlinClass/class1.kt"); } @TestMetadata("class2.kt") public void testClass2() throws Exception { - doClassTest("idea/testData/safeDelete/deleteClass/class2.kt"); + doClassTest("idea/testData/safeDelete/deleteClass/kotlinClass/class2.kt"); } @TestMetadata("nestedClass1.kt") public void testNestedClass1() throws Exception { - doClassTest("idea/testData/safeDelete/deleteClass/nestedClass1.kt"); + doClassTest("idea/testData/safeDelete/deleteClass/kotlinClass/nestedClass1.kt"); } @TestMetadata("nestedClass2.kt") public void testNestedClass2() throws Exception { - doClassTest("idea/testData/safeDelete/deleteClass/nestedClass2.kt"); + doClassTest("idea/testData/safeDelete/deleteClass/kotlinClass/nestedClass2.kt"); } @TestMetadata("noUsages.kt") public void testNoUsages() throws Exception { - doClassTest("idea/testData/safeDelete/deleteClass/noUsages.kt"); + doClassTest("idea/testData/safeDelete/deleteClass/kotlinClass/noUsages.kt"); } @TestMetadata("trait1.kt") public void testTrait1() throws Exception { - doClassTest("idea/testData/safeDelete/deleteClass/trait1.kt"); + doClassTest("idea/testData/safeDelete/deleteClass/kotlinClass/trait1.kt"); } @TestMetadata("trait2.kt") public void testTrait2() throws Exception { - doClassTest("idea/testData/safeDelete/deleteClass/trait2.kt"); + doClassTest("idea/testData/safeDelete/deleteClass/kotlinClass/trait2.kt"); } @TestMetadata("unsafeImport.kt") public void testUnsafeImport() throws Exception { - doClassTest("idea/testData/safeDelete/deleteClass/unsafeImport.kt"); + doClassTest("idea/testData/safeDelete/deleteClass/kotlinClass/unsafeImport.kt"); } } - @TestMetadata("idea/testData/safeDelete/deleteObject") - public static class DeleteObject extends AbstractJetSafeDeleteTest { - public void testAllFilesPresentInDeleteObject() throws Exception { - JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/safeDelete/deleteObject"), Pattern.compile("^(.+)\\.kt$"), true); + @TestMetadata("idea/testData/safeDelete/deleteObject/kotlinObject") + public static class KotlinObject extends AbstractJetSafeDeleteTest { + public void testAllFilesPresentInKotlinObject() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/safeDelete/deleteObject/kotlinObject"), Pattern.compile("^(.+)\\.kt$"), true); } @TestMetadata("nestedObject1.kt") public void testNestedObject1() throws Exception { - doObjectTest("idea/testData/safeDelete/deleteObject/nestedObject1.kt"); + doObjectTest("idea/testData/safeDelete/deleteObject/kotlinObject/nestedObject1.kt"); } @TestMetadata("nestedObject2.kt") public void testNestedObject2() throws Exception { - doObjectTest("idea/testData/safeDelete/deleteObject/nestedObject2.kt"); + doObjectTest("idea/testData/safeDelete/deleteObject/kotlinObject/nestedObject2.kt"); } @TestMetadata("noUsages.kt") public void testNoUsages() throws Exception { - doObjectTest("idea/testData/safeDelete/deleteObject/noUsages.kt"); + doObjectTest("idea/testData/safeDelete/deleteObject/kotlinObject/noUsages.kt"); } @TestMetadata("object1.kt") public void testObject1() throws Exception { - doObjectTest("idea/testData/safeDelete/deleteObject/object1.kt"); + doObjectTest("idea/testData/safeDelete/deleteObject/kotlinObject/object1.kt"); } @TestMetadata("object2.kt") public void testObject2() throws Exception { - doObjectTest("idea/testData/safeDelete/deleteObject/object2.kt"); + doObjectTest("idea/testData/safeDelete/deleteObject/kotlinObject/object2.kt"); } @TestMetadata("unsafeImport.kt") public void testUnsafeImport() throws Exception { - doObjectTest("idea/testData/safeDelete/deleteObject/unsafeImport.kt"); + doObjectTest("idea/testData/safeDelete/deleteObject/kotlinObject/unsafeImport.kt"); } } - @TestMetadata("idea/testData/safeDelete/deleteFunction") - public static class DeleteFunction extends AbstractJetSafeDeleteTest { - public void testAllFilesPresentInDeleteFunction() throws Exception { - JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/safeDelete/deleteFunction"), Pattern.compile("^(.+)\\.kt$"), true); + @TestMetadata("idea/testData/safeDelete/deleteFunction/kotlinFunction") + public static class KotlinFunction extends AbstractJetSafeDeleteTest { + public void testAllFilesPresentInKotlinFunction() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/safeDelete/deleteFunction/kotlinFunction"), Pattern.compile("^(.+)\\.kt$"), true); } @TestMetadata("fun1.kt") public void testFun1() throws Exception { - doFunctionTest("idea/testData/safeDelete/deleteFunction/fun1.kt"); + doFunctionTest("idea/testData/safeDelete/deleteFunction/kotlinFunction/fun1.kt"); } @TestMetadata("fun2.kt") public void testFun2() throws Exception { - doFunctionTest("idea/testData/safeDelete/deleteFunction/fun2.kt"); + doFunctionTest("idea/testData/safeDelete/deleteFunction/kotlinFunction/fun2.kt"); } @TestMetadata("implement1.kt") public void testImplement1() throws Exception { - doFunctionTest("idea/testData/safeDelete/deleteFunction/implement1.kt"); + doFunctionTest("idea/testData/safeDelete/deleteFunction/kotlinFunction/implement1.kt"); } @TestMetadata("implement2.kt") public void testImplement2() throws Exception { - doFunctionTest("idea/testData/safeDelete/deleteFunction/implement2.kt"); + doFunctionTest("idea/testData/safeDelete/deleteFunction/kotlinFunction/implement2.kt"); } @TestMetadata("noUsages.kt") public void testNoUsages() throws Exception { - doFunctionTest("idea/testData/safeDelete/deleteFunction/noUsages.kt"); + doFunctionTest("idea/testData/safeDelete/deleteFunction/kotlinFunction/noUsages.kt"); } @TestMetadata("override1.kt") public void testOverride1() throws Exception { - doFunctionTest("idea/testData/safeDelete/deleteFunction/override1.kt"); + doFunctionTest("idea/testData/safeDelete/deleteFunction/kotlinFunction/override1.kt"); } @TestMetadata("override2.kt") public void testOverride2() throws Exception { - doFunctionTest("idea/testData/safeDelete/deleteFunction/override2.kt"); + doFunctionTest("idea/testData/safeDelete/deleteFunction/kotlinFunction/override2.kt"); } @TestMetadata("overrideAndImplement1.kt") public void testOverrideAndImplement1() throws Exception { - doFunctionTest("idea/testData/safeDelete/deleteFunction/overrideAndImplement1.kt"); + doFunctionTest("idea/testData/safeDelete/deleteFunction/kotlinFunction/overrideAndImplement1.kt"); } @TestMetadata("overrideAndImplement2.kt") public void testOverrideAndImplement2() throws Exception { - doFunctionTest("idea/testData/safeDelete/deleteFunction/overrideAndImplement2.kt"); + doFunctionTest("idea/testData/safeDelete/deleteFunction/kotlinFunction/overrideAndImplement2.kt"); } @TestMetadata("overrideWithUsages.kt") public void testOverrideWithUsages() throws Exception { - doFunctionTest("idea/testData/safeDelete/deleteFunction/overrideWithUsages.kt"); + doFunctionTest("idea/testData/safeDelete/deleteFunction/kotlinFunction/overrideWithUsages.kt"); } } - @TestMetadata("idea/testData/safeDelete/deleteFunctionWithJavaUsages") - public static class DeleteFunctionWithJavaUsages extends AbstractJetSafeDeleteTest { - public void testAllFilesPresentInDeleteFunctionWithJavaUsages() throws Exception { - JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/safeDelete/deleteFunctionWithJavaUsages"), Pattern.compile("^(.+)\\.kt$"), true); + @TestMetadata("idea/testData/safeDelete/deleteFunction/kotlinFunctionWithJava") + public static class KotlinFunctionWithJava extends AbstractJetSafeDeleteTest { + public void testAllFilesPresentInKotlinFunctionWithJava() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/safeDelete/deleteFunction/kotlinFunctionWithJava"), Pattern.compile("^(.+)\\.kt$"), true); } @TestMetadata("implement1.kt") public void testImplement1() throws Exception { - doFunctionTestWithJava("idea/testData/safeDelete/deleteFunctionWithJavaUsages/implement1.kt"); + doFunctionTestWithJava("idea/testData/safeDelete/deleteFunction/kotlinFunctionWithJava/implement1.kt"); } @TestMetadata("implement2.kt") public void testImplement2() throws Exception { - doFunctionTestWithJava("idea/testData/safeDelete/deleteFunctionWithJavaUsages/implement2.kt"); + doFunctionTestWithJava("idea/testData/safeDelete/deleteFunction/kotlinFunctionWithJava/implement2.kt"); } @TestMetadata("implement3.kt") public void testImplement3() throws Exception { - doFunctionTestWithJava("idea/testData/safeDelete/deleteFunctionWithJavaUsages/implement3.kt"); + doFunctionTestWithJava("idea/testData/safeDelete/deleteFunction/kotlinFunctionWithJava/implement3.kt"); } @TestMetadata("implement4.kt") public void testImplement4() throws Exception { - doFunctionTestWithJava("idea/testData/safeDelete/deleteFunctionWithJavaUsages/implement4.kt"); + doFunctionTestWithJava("idea/testData/safeDelete/deleteFunction/kotlinFunctionWithJava/implement4.kt"); } @TestMetadata("override1.kt") public void testOverride1() throws Exception { - doFunctionTestWithJava("idea/testData/safeDelete/deleteFunctionWithJavaUsages/override1.kt"); + doFunctionTestWithJava("idea/testData/safeDelete/deleteFunction/kotlinFunctionWithJava/override1.kt"); } @TestMetadata("override2.kt") public void testOverride2() throws Exception { - doFunctionTestWithJava("idea/testData/safeDelete/deleteFunctionWithJavaUsages/override2.kt"); + doFunctionTestWithJava("idea/testData/safeDelete/deleteFunction/kotlinFunctionWithJava/override2.kt"); } @TestMetadata("override3.kt") public void testOverride3() throws Exception { - doFunctionTestWithJava("idea/testData/safeDelete/deleteFunctionWithJavaUsages/override3.kt"); + doFunctionTestWithJava("idea/testData/safeDelete/deleteFunction/kotlinFunctionWithJava/override3.kt"); } @TestMetadata("overrideAndImplement1.kt") public void testOverrideAndImplement1() throws Exception { - doFunctionTestWithJava("idea/testData/safeDelete/deleteFunctionWithJavaUsages/overrideAndImplement1.kt"); + doFunctionTestWithJava("idea/testData/safeDelete/deleteFunction/kotlinFunctionWithJava/overrideAndImplement1.kt"); } @TestMetadata("overrideAndImplement2.kt") public void testOverrideAndImplement2() throws Exception { - doFunctionTestWithJava("idea/testData/safeDelete/deleteFunctionWithJavaUsages/overrideAndImplement2.kt"); + doFunctionTestWithJava("idea/testData/safeDelete/deleteFunction/kotlinFunctionWithJava/overrideAndImplement2.kt"); } } - @TestMetadata("idea/testData/safeDelete/deleteJavaMethod") - public static class DeleteJavaMethod extends AbstractJetSafeDeleteTest { - public void testAllFilesPresentInDeleteJavaMethod() throws Exception { - JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/safeDelete/deleteJavaMethod"), Pattern.compile("^(.+)\\.kt$"), true); + @TestMetadata("idea/testData/safeDelete/deleteFunction/javaFunctionWithKotlin") + public static class JavaFunctionWithKotlin extends AbstractJetSafeDeleteTest { + public void testAllFilesPresentInJavaFunctionWithKotlin() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/safeDelete/deleteFunction/javaFunctionWithKotlin"), Pattern.compile("^(.+)\\.kt$"), true); } @TestMetadata("mixedHierarchy1.kt") public void testMixedHierarchy1() throws Exception { - doJavaMethodTest("idea/testData/safeDelete/deleteJavaMethod/mixedHierarchy1.kt"); + doJavaMethodTest("idea/testData/safeDelete/deleteFunction/javaFunctionWithKotlin/mixedHierarchy1.kt"); } @TestMetadata("mixedHierarchy2.kt") public void testMixedHierarchy2() throws Exception { - doJavaMethodTest("idea/testData/safeDelete/deleteJavaMethod/mixedHierarchy2.kt"); + doJavaMethodTest("idea/testData/safeDelete/deleteFunction/javaFunctionWithKotlin/mixedHierarchy2.kt"); } } - @TestMetadata("idea/testData/safeDelete/deleteProperty") - public static class DeleteProperty extends AbstractJetSafeDeleteTest { - public void testAllFilesPresentInDeleteProperty() throws Exception { - JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/safeDelete/deleteProperty"), Pattern.compile("^(.+)\\.kt$"), true); + @TestMetadata("idea/testData/safeDelete/deleteProperty/kotlinProperty") + public static class KotlinProperty extends AbstractJetSafeDeleteTest { + public void testAllFilesPresentInKotlinProperty() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/safeDelete/deleteProperty/kotlinProperty"), Pattern.compile("^(.+)\\.kt$"), true); } @TestMetadata("implement1.kt") public void testImplement1() throws Exception { - doPropertyTest("idea/testData/safeDelete/deleteProperty/implement1.kt"); + doPropertyTest("idea/testData/safeDelete/deleteProperty/kotlinProperty/implement1.kt"); } @TestMetadata("implement2.kt") public void testImplement2() throws Exception { - doPropertyTest("idea/testData/safeDelete/deleteProperty/implement2.kt"); + doPropertyTest("idea/testData/safeDelete/deleteProperty/kotlinProperty/implement2.kt"); } @TestMetadata("implement3.kt") public void testImplement3() throws Exception { - doPropertyTest("idea/testData/safeDelete/deleteProperty/implement3.kt"); + doPropertyTest("idea/testData/safeDelete/deleteProperty/kotlinProperty/implement3.kt"); } @TestMetadata("implement4.kt") public void testImplement4() throws Exception { - doPropertyTest("idea/testData/safeDelete/deleteProperty/implement4.kt"); + doPropertyTest("idea/testData/safeDelete/deleteProperty/kotlinProperty/implement4.kt"); } @TestMetadata("implement5.kt") @@ -295,172 +295,261 @@ public class JetSafeDeleteTestGenerated extends AbstractJetSafeDeleteTest { @TestMetadata("noUsages.kt") public void testNoUsages() throws Exception { - doPropertyTest("idea/testData/safeDelete/deleteProperty/noUsages.kt"); + doPropertyTest("idea/testData/safeDelete/deleteProperty/kotlinProperty/noUsages.kt"); } @TestMetadata("override1.kt") public void testOverride1() throws Exception { - doPropertyTest("idea/testData/safeDelete/deleteProperty/override1.kt"); + doPropertyTest("idea/testData/safeDelete/deleteProperty/kotlinProperty/override1.kt"); } @TestMetadata("override2.kt") public void testOverride2() throws Exception { - doPropertyTest("idea/testData/safeDelete/deleteProperty/override2.kt"); + doPropertyTest("idea/testData/safeDelete/deleteProperty/kotlinProperty/override2.kt"); } @TestMetadata("override3.kt") public void testOverride3() throws Exception { - doPropertyTest("idea/testData/safeDelete/deleteProperty/override3.kt"); + doPropertyTest("idea/testData/safeDelete/deleteProperty/kotlinProperty/override3.kt"); } @TestMetadata("override4.kt") public void testOverride4() throws Exception { - doPropertyTest("idea/testData/safeDelete/deleteProperty/override4.kt"); + doPropertyTest("idea/testData/safeDelete/deleteProperty/kotlinProperty/override4.kt"); } @TestMetadata("overrideAndImplement1.kt") public void testOverrideAndImplement1() throws Exception { - doPropertyTest("idea/testData/safeDelete/deleteProperty/overrideAndImplement1.kt"); + doPropertyTest("idea/testData/safeDelete/deleteProperty/kotlinProperty/overrideAndImplement1.kt"); } @TestMetadata("overrideAndImplement2.kt") public void testOverrideAndImplement2() throws Exception { - doPropertyTest("idea/testData/safeDelete/deleteProperty/overrideAndImplement2.kt"); + doPropertyTest("idea/testData/safeDelete/deleteProperty/kotlinProperty/overrideAndImplement2.kt"); } @TestMetadata("overrideAndImplement3.kt") public void testOverrideAndImplement3() throws Exception { - doPropertyTest("idea/testData/safeDelete/deleteProperty/overrideAndImplement3.kt"); + doPropertyTest("idea/testData/safeDelete/deleteProperty/kotlinProperty/overrideAndImplement3.kt"); } @TestMetadata("overrideAndImplement4.kt") public void testOverrideAndImplement4() throws Exception { - doPropertyTest("idea/testData/safeDelete/deleteProperty/overrideAndImplement4.kt"); + doPropertyTest("idea/testData/safeDelete/deleteProperty/kotlinProperty/overrideAndImplement4.kt"); } @TestMetadata("overrideWithUsages.kt") public void testOverrideWithUsages() throws Exception { - doPropertyTest("idea/testData/safeDelete/deleteProperty/overrideWithUsages.kt"); + doPropertyTest("idea/testData/safeDelete/deleteProperty/kotlinProperty/overrideWithUsages.kt"); } @TestMetadata("property1.kt") public void testProperty1() throws Exception { - doPropertyTest("idea/testData/safeDelete/deleteProperty/property1.kt"); + doPropertyTest("idea/testData/safeDelete/deleteProperty/kotlinProperty/property1.kt"); } @TestMetadata("property2.kt") public void testProperty2() throws Exception { - doPropertyTest("idea/testData/safeDelete/deleteProperty/property2.kt"); + doPropertyTest("idea/testData/safeDelete/deleteProperty/kotlinProperty/property2.kt"); } } - @TestMetadata("idea/testData/safeDelete/deletePropertyWithJavaUsages") - public static class DeletePropertyWithJavaUsages extends AbstractJetSafeDeleteTest { - public void testAllFilesPresentInDeletePropertyWithJavaUsages() throws Exception { - JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/safeDelete/deletePropertyWithJavaUsages"), Pattern.compile("^(.+)\\.kt$"), true); + @TestMetadata("idea/testData/safeDelete/deleteProperty/kotlinPropertyWithJava") + public static class KotlinPropertyWithJava extends AbstractJetSafeDeleteTest { + public void testAllFilesPresentInKotlinPropertyWithJava() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/safeDelete/deleteProperty/kotlinPropertyWithJava"), Pattern.compile("^(.+)\\.kt$"), true); } @TestMetadata("implement1.kt") public void testImplement1() throws Exception { - doPropertyTestWithJava("idea/testData/safeDelete/deletePropertyWithJavaUsages/implement1.kt"); + doPropertyTestWithJava("idea/testData/safeDelete/deleteProperty/kotlinPropertyWithJava/implement1.kt"); } @TestMetadata("implement2.kt") public void testImplement2() throws Exception { - doPropertyTestWithJava("idea/testData/safeDelete/deletePropertyWithJavaUsages/implement2.kt"); + doPropertyTestWithJava("idea/testData/safeDelete/deleteProperty/kotlinPropertyWithJava/implement2.kt"); } @TestMetadata("implement3.kt") public void testImplement3() throws Exception { - doPropertyTestWithJava("idea/testData/safeDelete/deletePropertyWithJavaUsages/implement3.kt"); + doPropertyTestWithJava("idea/testData/safeDelete/deleteProperty/kotlinPropertyWithJava/implement3.kt"); } @TestMetadata("implement4.kt") public void testImplement4() throws Exception { - doPropertyTestWithJava("idea/testData/safeDelete/deletePropertyWithJavaUsages/implement4.kt"); + doPropertyTestWithJava("idea/testData/safeDelete/deleteProperty/kotlinPropertyWithJava/implement4.kt"); } @TestMetadata("override1.kt") public void testOverride1() throws Exception { - doPropertyTestWithJava("idea/testData/safeDelete/deletePropertyWithJavaUsages/override1.kt"); + doPropertyTestWithJava("idea/testData/safeDelete/deleteProperty/kotlinPropertyWithJava/override1.kt"); } @TestMetadata("override2.kt") public void testOverride2() throws Exception { - doPropertyTestWithJava("idea/testData/safeDelete/deletePropertyWithJavaUsages/override2.kt"); + doPropertyTestWithJava("idea/testData/safeDelete/deleteProperty/kotlinPropertyWithJava/override2.kt"); } @TestMetadata("override3.kt") public void testOverride3() throws Exception { - doPropertyTestWithJava("idea/testData/safeDelete/deletePropertyWithJavaUsages/override3.kt"); + doPropertyTestWithJava("idea/testData/safeDelete/deleteProperty/kotlinPropertyWithJava/override3.kt"); } @TestMetadata("override4.kt") public void testOverride4() throws Exception { - doPropertyTestWithJava("idea/testData/safeDelete/deletePropertyWithJavaUsages/override4.kt"); + doPropertyTestWithJava("idea/testData/safeDelete/deleteProperty/kotlinPropertyWithJava/override4.kt"); } @TestMetadata("overrideAndImplement1.kt") public void testOverrideAndImplement1() throws Exception { - doPropertyTestWithJava("idea/testData/safeDelete/deletePropertyWithJavaUsages/overrideAndImplement1.kt"); + doPropertyTestWithJava("idea/testData/safeDelete/deleteProperty/kotlinPropertyWithJava/overrideAndImplement1.kt"); } @TestMetadata("overrideAndImplement2.kt") public void testOverrideAndImplement2() throws Exception { - doPropertyTestWithJava("idea/testData/safeDelete/deletePropertyWithJavaUsages/overrideAndImplement2.kt"); + doPropertyTestWithJava("idea/testData/safeDelete/deleteProperty/kotlinPropertyWithJava/overrideAndImplement2.kt"); } } - @TestMetadata("idea/testData/safeDelete/deleteJavaProperty") - public static class DeleteJavaProperty extends AbstractJetSafeDeleteTest { - public void testAllFilesPresentInDeleteJavaProperty() throws Exception { - JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/safeDelete/deleteJavaProperty"), Pattern.compile("^(.+)\\.kt$"), true); + @TestMetadata("idea/testData/safeDelete/deleteProperty/javaPropertyWithKotlin") + public static class JavaPropertyWithKotlin extends AbstractJetSafeDeleteTest { + public void testAllFilesPresentInJavaPropertyWithKotlin() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/safeDelete/deleteProperty/javaPropertyWithKotlin"), Pattern.compile("^(.+)\\.kt$"), true); } @TestMetadata("middleJava1.kt") public void testMiddleJava1() throws Exception { - doJavaPropertyTest("idea/testData/safeDelete/deleteJavaProperty/middleJava1.kt"); + doJavaPropertyTest("idea/testData/safeDelete/deleteProperty/javaPropertyWithKotlin/middleJava1.kt"); } @TestMetadata("middleJava2.kt") public void testMiddleJava2() throws Exception { - doJavaPropertyTest("idea/testData/safeDelete/deleteJavaProperty/middleJava2.kt"); + doJavaPropertyTest("idea/testData/safeDelete/deleteProperty/javaPropertyWithKotlin/middleJava2.kt"); } @TestMetadata("middleJava3.kt") public void testMiddleJava3() throws Exception { - doJavaPropertyTest("idea/testData/safeDelete/deleteJavaProperty/middleJava3.kt"); + doJavaPropertyTest("idea/testData/safeDelete/deleteProperty/javaPropertyWithKotlin/middleJava3.kt"); } @TestMetadata("middleJava4.kt") public void testMiddleJava4() throws Exception { - doJavaPropertyTest("idea/testData/safeDelete/deleteJavaProperty/middleJava4.kt"); + doJavaPropertyTest("idea/testData/safeDelete/deleteProperty/javaPropertyWithKotlin/middleJava4.kt"); } @TestMetadata("middleJava5.kt") public void testMiddleJava5() throws Exception { - doJavaPropertyTest("idea/testData/safeDelete/deleteJavaProperty/middleJava5.kt"); + doJavaPropertyTest("idea/testData/safeDelete/deleteProperty/javaPropertyWithKotlin/middleJava5.kt"); } @TestMetadata("middleJava6.kt") public void testMiddleJava6() throws Exception { - doJavaPropertyTest("idea/testData/safeDelete/deleteJavaProperty/middleJava6.kt"); + doJavaPropertyTest("idea/testData/safeDelete/deleteProperty/javaPropertyWithKotlin/middleJava6.kt"); + } + + } + + @TestMetadata("idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter") + public static class KotlinTypeParameter extends AbstractJetSafeDeleteTest { + public void testAllFilesPresentInKotlinTypeParameter() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter"), Pattern.compile("^(.+)\\.kt$"), true); + } + + @TestMetadata("internalUsages1.kt") + public void testInternalUsages1() throws Exception { + doTypeParameterTest("idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages1.kt"); + } + + @TestMetadata("internalUsages2.kt") + public void testInternalUsages2() throws Exception { + doTypeParameterTest("idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages2.kt"); + } + + @TestMetadata("internalUsages3.kt") + public void testInternalUsages3() throws Exception { + doTypeParameterTest("idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages3.kt"); + } + + @TestMetadata("internalUsages4.kt") + public void testInternalUsages4() throws Exception { + doTypeParameterTest("idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages4.kt"); + } + + @TestMetadata("internalUsages5.kt") + public void testInternalUsages5() throws Exception { + doTypeParameterTest("idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/internalUsages5.kt"); + } + + @TestMetadata("safeUsagesWithConstraint1.kt") + public void testSafeUsagesWithConstraint1() throws Exception { + doTypeParameterTest("idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/safeUsagesWithConstraint1.kt"); + } + + @TestMetadata("safeUsagesWithConstraint2.kt") + public void testSafeUsagesWithConstraint2() throws Exception { + doTypeParameterTest("idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/safeUsagesWithConstraint2.kt"); + } + + @TestMetadata("subclass1.kt") + public void testSubclass1() throws Exception { + doTypeParameterTest("idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subclass1.kt"); + } + + @TestMetadata("subclass2.kt") + public void testSubclass2() throws Exception { + doTypeParameterTest("idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subclass2.kt"); + } + + @TestMetadata("subst1.kt") + public void testSubst1() throws Exception { + doTypeParameterTest("idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst1.kt"); + } + + @TestMetadata("subst2.kt") + public void testSubst2() throws Exception { + doTypeParameterTest("idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst2.kt"); + } + + @TestMetadata("subst3.kt") + public void testSubst3() throws Exception { + doTypeParameterTest("idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst3.kt"); + } + + @TestMetadata("subst4.kt") + public void testSubst4() throws Exception { + doTypeParameterTest("idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst4.kt"); + } + + @TestMetadata("subst5.kt") + public void testSubst5() throws Exception { + doTypeParameterTest("idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst5.kt"); + } + + @TestMetadata("subst6.kt") + public void testSubst6() throws Exception { + doTypeParameterTest("idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst6.kt"); + } + + @TestMetadata("subst7.kt") + public void testSubst7() throws Exception { + doTypeParameterTest("idea/testData/safeDelete/deleteTypeParameter/kotlinTypeParameter/subst7.kt"); } } public static Test suite() { TestSuite suite = new TestSuite("JetSafeDeleteTestGenerated"); - suite.addTestSuite(DeleteClass.class); - suite.addTestSuite(DeleteObject.class); - suite.addTestSuite(DeleteFunction.class); - suite.addTestSuite(DeleteFunctionWithJavaUsages.class); - suite.addTestSuite(DeleteJavaMethod.class); - suite.addTestSuite(DeleteProperty.class); - suite.addTestSuite(DeletePropertyWithJavaUsages.class); - suite.addTestSuite(DeleteJavaProperty.class); + suite.addTestSuite(KotlinClass.class); + suite.addTestSuite(KotlinObject.class); + suite.addTestSuite(KotlinFunction.class); + suite.addTestSuite(KotlinFunctionWithJava.class); + suite.addTestSuite(JavaFunctionWithKotlin.class); + suite.addTestSuite(KotlinProperty.class); + suite.addTestSuite(KotlinPropertyWithJava.class); + suite.addTestSuite(JavaPropertyWithKotlin.class); + suite.addTestSuite(KotlinTypeParameter.class); return suite; } }