From c6315d1598ee3b55a18418cf6e0a79dca42b58ee Mon Sep 17 00:00:00 2001 From: anna Date: Mon, 16 Jan 2012 15:36:43 +0100 Subject: [PATCH 1/5] EA-32903 - assert: DefaultImplementationTextSelectioner.getTextStartOffset: use known range --- .../src/com/intellij/openapi/paths/WebReference.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/platform/lang-impl/src/com/intellij/openapi/paths/WebReference.java b/platform/lang-impl/src/com/intellij/openapi/paths/WebReference.java index 4b1a95b7b816..2a2a6c714406 100644 --- a/platform/lang-impl/src/com/intellij/openapi/paths/WebReference.java +++ b/platform/lang-impl/src/com/intellij/openapi/paths/WebReference.java @@ -56,5 +56,12 @@ public class WebReference extends PsiReferenceBase { public String getPresentableText() { return getValue(); } + + @Override + public TextRange getTextRange() { + final TextRange rangeInElement = getRangeInElement(); + final TextRange elementRange = myElement.getTextRange(); + return elementRange != null ? rangeInElement.shiftRight(elementRange.getStartOffset()) : rangeInElement; + } } } From 194385c95382378103226500bfcc5047917d377d Mon Sep 17 00:00:00 2001 From: anna Date: Mon, 16 Jan 2012 15:45:50 +0100 Subject: [PATCH 2/5] EA-33054 - IOE: PsiJavaParserFacadeImpl.createExpressionFromText --- .../refactoring/changeSignature/JavaChangeInfoImpl.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/java/java-impl/src/com/intellij/refactoring/changeSignature/JavaChangeInfoImpl.java b/java/java-impl/src/com/intellij/refactoring/changeSignature/JavaChangeInfoImpl.java index 83948f951be6..aabe2a1f9570 100644 --- a/java/java-impl/src/com/intellij/refactoring/changeSignature/JavaChangeInfoImpl.java +++ b/java/java-impl/src/com/intellij/refactoring/changeSignature/JavaChangeInfoImpl.java @@ -24,6 +24,7 @@ import com.intellij.lang.Language; import com.intellij.lang.StdLanguages; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.util.Comparing; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.*; import com.intellij.refactoring.util.CanonicalTypes; import com.intellij.util.IncorrectOperationException; @@ -164,12 +165,12 @@ class JavaChangeInfoImpl implements JavaChangeInfo { for(int i = 0; i < newParms.length; i++){ ParameterInfoImpl info = newParms[i]; if (info.oldParameterIndex < 0 && !info.isVarargType()){ - if (info.defaultValue == null) continue; + if (StringUtil.isEmpty(info.defaultValue)) continue; try{ defaultValues[i] = factory.createExpressionFromText(info.defaultValue, method); } catch(IncorrectOperationException e){ - LOG.error(e); + LOG.info(e); } } } From a71612a45769bd2c2a4adc5409f6a70df252d153 Mon Sep 17 00:00:00 2001 From: anna Date: Mon, 16 Jan 2012 17:10:11 +0100 Subject: [PATCH 3/5] method duplicates: correctly process qualifiers (IDEA-79954) --- .../util/duplicates/DuplicatesFinder.java | 4 ++-- .../methodDuplicatesMisc/Qualifiers.java | 20 +++++++++++++++++++ .../Qualifiers.java.after | 20 +++++++++++++++++++ .../FindMethodDuplicatesMiscTest.java | 4 ++++ 4 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 java/java-tests/testData/refactoring/methodDuplicatesMisc/Qualifiers.java create mode 100644 java/java-tests/testData/refactoring/methodDuplicatesMisc/Qualifiers.java.after diff --git a/java/java-impl/src/com/intellij/refactoring/util/duplicates/DuplicatesFinder.java b/java/java-impl/src/com/intellij/refactoring/util/duplicates/DuplicatesFinder.java index cf1ca752b9d9..251118af2797 100644 --- a/java/java-impl/src/com/intellij/refactoring/util/duplicates/DuplicatesFinder.java +++ b/java/java-impl/src/com/intellij/refactoring/util/duplicates/DuplicatesFinder.java @@ -395,7 +395,7 @@ public class DuplicatesFinder { PsiClass contextClass = PsiTreeUtil.getParentOfType(pattern, PsiClass.class); if (candidateQualifier instanceof PsiReferenceExpression) { final PsiElement resolved = ((PsiReferenceExpression)candidateQualifier).resolve(); - if (resolved instanceof PsiClass && contextClass != null && contextClass.isInheritor((PsiClass)resolved, true)) { + if (resolved instanceof PsiClass && contextClass != null && InheritanceUtil.isInheritorOrSelf(contextClass, (PsiClass)resolved, true)) { return true; } } @@ -430,7 +430,7 @@ public class DuplicatesFinder { final PsiElement resolved = ((PsiReferenceExpression)patternQualifier).resolve(); if (resolved instanceof PsiClass) { final PsiClass classContext = PsiTreeUtil.getParentOfType(candidate, PsiClass.class); - if (classContext != null && classContext.isInheritor((PsiClass)resolved, true)) { + if (classContext != null && InheritanceUtil.isInheritorOrSelf(classContext, (PsiClass)resolved, true)) { return true; } } diff --git a/java/java-tests/testData/refactoring/methodDuplicatesMisc/Qualifiers.java b/java/java-tests/testData/refactoring/methodDuplicatesMisc/Qualifiers.java new file mode 100644 index 000000000000..33d05b35b39d --- /dev/null +++ b/java/java-tests/testData/refactoring/methodDuplicatesMisc/Qualifiers.java @@ -0,0 +1,20 @@ +class Utilz { + static int func(){ + return 1; + } + + static int foo1(){ + return 2*Utilz.func(); + } + + static int foo2(){ + return 2*func(); + } + +} + +class Something { + Something(){ + int x = 2*Utilz.func(); + } +} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/methodDuplicatesMisc/Qualifiers.java.after b/java/java-tests/testData/refactoring/methodDuplicatesMisc/Qualifiers.java.after new file mode 100644 index 000000000000..aebe8e7f4851 --- /dev/null +++ b/java/java-tests/testData/refactoring/methodDuplicatesMisc/Qualifiers.java.after @@ -0,0 +1,20 @@ +class Utilz { + static int func(){ + return 1; + } + + static int foo1(){ + return foo2(); + } + + static int foo2(){ + return 2*func(); + } + +} + +class Something { + Something(){ + int x = Utilz.foo2(); + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/refactoring/FindMethodDuplicatesMiscTest.java b/java/java-tests/testSrc/com/intellij/refactoring/FindMethodDuplicatesMiscTest.java index 08cf2792a90b..fa0fbcbb3f56 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/FindMethodDuplicatesMiscTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/FindMethodDuplicatesMiscTest.java @@ -89,4 +89,8 @@ public class FindMethodDuplicatesMiscTest extends FindMethodDuplicatesBaseTest { public void testSkipNotAccessible() throws Exception { doTest(false); } + + public void testQualifiers() throws Exception { + doTest(); + } } \ No newline at end of file From 759af7c8db027f28617b08e62c0a0b6ec0b14879 Mon Sep 17 00:00:00 2001 From: peter Date: Mon, 16 Jan 2012 17:42:48 +0100 Subject: [PATCH 4/5] export provided gant dependency to make jps-groovyc see it --- jps/jps.iml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jps/jps.iml b/jps/jps.iml index 7570cb8d044c..44d24bb8c46f 100644 --- a/jps/jps.iml +++ b/jps/jps.iml @@ -11,7 +11,7 @@ - + From 0556e388c14f385ef14737fa7e4e1f0d429a99c8 Mon Sep 17 00:00:00 2001 From: Eugene Zhuravlev Date: Mon, 16 Jan 2012 17:59:12 +0100 Subject: [PATCH 5/5] switch off debug --- .../impl/src/com/intellij/compiler/JpsServerManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/compiler/impl/src/com/intellij/compiler/JpsServerManager.java b/java/compiler/impl/src/com/intellij/compiler/JpsServerManager.java index b87426dda410..795405e55494 100644 --- a/java/compiler/impl/src/com/intellij/compiler/JpsServerManager.java +++ b/java/compiler/impl/src/com/intellij/compiler/JpsServerManager.java @@ -414,7 +414,7 @@ public class JpsServerManager implements ApplicationComponent{ // debugging cmdLine.addParameter("-XX:+HeapDumpOnOutOfMemoryError"); - cmdLine.addParameter("-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5008"); + //cmdLine.addParameter("-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5008"); // javac's VM should use the same default locale that IDEA uses in order for javac to print messages in 'correct' language final String lang = System.getProperty("user.language");