From d63f1f294e5acb6f61ea09b1a190c0623fe626ab Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 30 Jun 2010 21:53:30 +0400 Subject: [PATCH] check for method type params inclusive (IDEA-56192) --- .../src/com/intellij/refactoring/util/RefactoringUtil.java | 4 ++-- .../makeMethodStatic/afterPreserveTypeParams.java | 5 +++++ .../makeMethodStatic/beforePreserveTypeParams.java | 5 +++++ .../com/intellij/refactoring/MakeMethodStaticTest.java | 6 ++++++ 4 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 java/java-tests/testData/refactoring/makeMethodStatic/afterPreserveTypeParams.java create mode 100644 java/java-tests/testData/refactoring/makeMethodStatic/beforePreserveTypeParams.java diff --git a/java/java-impl/src/com/intellij/refactoring/util/RefactoringUtil.java b/java/java-impl/src/com/intellij/refactoring/util/RefactoringUtil.java index 2dd238e65b40..5cd57a03d9dd 100644 --- a/java/java-impl/src/com/intellij/refactoring/util/RefactoringUtil.java +++ b/java/java-impl/src/com/intellij/refactoring/util/RefactoringUtil.java @@ -1214,7 +1214,7 @@ public class RefactoringUtil { final PsiElement resolved = reference.resolve(); if (resolved instanceof PsiTypeParameter) { final PsiTypeParameter typeParameter = (PsiTypeParameter)resolved; - if (PsiTreeUtil.isAncestor(typeParameter.getOwner(), element, true)) { + if (PsiTreeUtil.isAncestor(typeParameter.getOwner(), element, false)) { used.add(typeParameter); } } @@ -1226,7 +1226,7 @@ public class RefactoringUtil { super.visitExpression(expression); final PsiType type = expression.getType(); final PsiClass resolved = PsiUtil.resolveClassInType(type); - if (resolved instanceof PsiTypeParameter && PsiTreeUtil.isAncestor(((PsiTypeParameter)resolved).getOwner(), element, true)){ + if (resolved instanceof PsiTypeParameter && PsiTreeUtil.isAncestor(((PsiTypeParameter)resolved).getOwner(), element, false)){ used.add((PsiTypeParameter)resolved); } } diff --git a/java/java-tests/testData/refactoring/makeMethodStatic/afterPreserveTypeParams.java b/java/java-tests/testData/refactoring/makeMethodStatic/afterPreserveTypeParams.java new file mode 100644 index 000000000000..65f279ae7765 --- /dev/null +++ b/java/java-tests/testData/refactoring/makeMethodStatic/afterPreserveTypeParams.java @@ -0,0 +1,5 @@ +class C { + private static List getTopLevelItems() { + return null; + } +} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/makeMethodStatic/beforePreserveTypeParams.java b/java/java-tests/testData/refactoring/makeMethodStatic/beforePreserveTypeParams.java new file mode 100644 index 000000000000..a84c76e6fea9 --- /dev/null +++ b/java/java-tests/testData/refactoring/makeMethodStatic/beforePreserveTypeParams.java @@ -0,0 +1,5 @@ +class C { + private List getTopLevelItems() { + return null; + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/refactoring/MakeMethodStaticTest.java b/java/java-tests/testSrc/com/intellij/refactoring/MakeMethodStaticTest.java index 9f66abbbff72..6175c66d5f82 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/MakeMethodStaticTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/MakeMethodStaticTest.java @@ -164,6 +164,12 @@ public class MakeMethodStaticTest extends LightCodeInsightTestCase { checkResultByFile("/refactoring/makeMethodStatic/after22.java"); } + public void testPreserveTypeParams() throws Exception { + configureByFile("/refactoring/makeMethodStatic/beforePreserveTypeParams.java"); + performWithFields(); + checkResultByFile("/refactoring/makeMethodStatic/afterPreserveTypeParams.java"); + } + private void perform(boolean addClassParameter) { PsiElement element = TargetElementUtilBase.findTargetElement(myEditor, TargetElementUtilBase.ELEMENT_NAME_ACCEPTED); assertTrue(element instanceof PsiMethod);