From 121e7158197a4adb3ba65d61448180b216c15899 Mon Sep 17 00:00:00 2001 From: anna Date: Thu, 14 Jan 2010 21:15:52 +0300 Subject: [PATCH] NPE --- .../extractclass/ExtractClassProcessor.java | 2 +- .../incrementDecrement/after/Extracted.java | 14 ++++++++++++++ .../incrementDecrement/after/Test.java | 11 +++++++++++ .../incrementDecrement/before/Test.java | 10 ++++++++++ .../com/intellij/refactoring/ExtractClassTest.java | 4 ++++ 5 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 java/java-tests/testData/refactoring/extractClass/incrementDecrement/after/Extracted.java create mode 100644 java/java-tests/testData/refactoring/extractClass/incrementDecrement/after/Test.java create mode 100644 java/java-tests/testData/refactoring/extractClass/incrementDecrement/before/Test.java diff --git a/java/java-impl/src/com/intellij/refactoring/extractclass/ExtractClassProcessor.java b/java/java-impl/src/com/intellij/refactoring/extractclass/ExtractClassProcessor.java index 2eacd3a97b79..c1b2fa937797 100644 --- a/java/java-impl/src/com/intellij/refactoring/extractclass/ExtractClassProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/extractclass/ExtractClassProcessor.java @@ -459,7 +459,7 @@ public class ExtractClassProcessor extends FixableUsagesRefactoringProcessor { if (element instanceof PsiReferenceExpression) { final PsiReferenceExpression exp = (PsiReferenceExpression)element; - if (RefactoringUtil.isPlusPlusOrMinusMinus(exp)) { + if (RefactoringUtil.isPlusPlusOrMinusMinus(exp.getParent())) { usages.add(isStatic ? new ReplaceStaticVariableIncrementDecrement(exp, qualifiedName) : new ReplaceInstanceVariableIncrementDecrement(exp, delegateFieldName, setter, getter)); diff --git a/java/java-tests/testData/refactoring/extractClass/incrementDecrement/after/Extracted.java b/java/java-tests/testData/refactoring/extractClass/incrementDecrement/after/Extracted.java new file mode 100644 index 000000000000..3aa2c2a36784 --- /dev/null +++ b/java/java-tests/testData/refactoring/extractClass/incrementDecrement/after/Extracted.java @@ -0,0 +1,14 @@ +public class Extracted { + private int myT; + + public int getMyT() { + return myT; + } + + public void setMyT(int myT) { + this.myT = myT; + } + + public Extracted() { + } +} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/extractClass/incrementDecrement/after/Test.java b/java/java-tests/testData/refactoring/extractClass/incrementDecrement/after/Test.java new file mode 100644 index 000000000000..15a4e8abd96b --- /dev/null +++ b/java/java-tests/testData/refactoring/extractClass/incrementDecrement/after/Test.java @@ -0,0 +1,11 @@ +class Test { + final Extracted extracted = new Extracted(); + + { + extracted.setMyT(0); + } + + void bar(){ + int i = extracted.setMyT(extracted.getMyT() + 1); + } +} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/extractClass/incrementDecrement/before/Test.java b/java/java-tests/testData/refactoring/extractClass/incrementDecrement/before/Test.java new file mode 100644 index 000000000000..2cdc5b88a3c1 --- /dev/null +++ b/java/java-tests/testData/refactoring/extractClass/incrementDecrement/before/Test.java @@ -0,0 +1,10 @@ +class Test { + int myT; + { + myT = 0; + } + + void bar(){ + int i = myT++; + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/refactoring/ExtractClassTest.java b/java/java-tests/testSrc/com/intellij/refactoring/ExtractClassTest.java index 7d47f0f0b606..42dbb96633b2 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/ExtractClassTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/ExtractClassTest.java @@ -142,6 +142,10 @@ public class ExtractClassTest extends MultiFileTestCase{ doTestField(null, true); } + public void testIncrementDecrement() throws Exception { + doTestField(null, true); + } + public void testGetters() throws Exception { doTestFieldAndMethod("getMyT");