mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-06 03:21:12 +07:00
introduce variable from polyadic expression: ensure that selected expr would be replaced
This commit is contained in:
@@ -752,6 +752,10 @@ public abstract class IntroduceVariableBase extends IntroduceHandlerBase {
|
||||
}
|
||||
}
|
||||
|
||||
if (!deleteSelf && replaceSelf && expr1 instanceof PsiPolyadicExpression && expr1.isValid() && !expr1.isPhysical() ) {
|
||||
array.add(replace(expr1, ref, project));
|
||||
}
|
||||
|
||||
if (editor != null) {
|
||||
final PsiElement[] replacedOccurences = PsiUtilBase.toPsiElementArray(array);
|
||||
highlightReplacedOccurences(project, editor, replacedOccurences);
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
* Copyright 2000-2012 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.
|
||||
*/
|
||||
public class C {
|
||||
void foo(boolean a, boolean b, boolean c) {
|
||||
boolean option1 = true;
|
||||
boolean option2 = true;
|
||||
final boolean b1 = a && b;
|
||||
if (option1) {
|
||||
if (option2) {
|
||||
if (b1 && c) {
|
||||
System.out.println("One");
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (b1) {
|
||||
System.out.println("two");
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (b1) {
|
||||
System.out.println("three");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* Copyright 2000-2012 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.
|
||||
*/
|
||||
public class C {
|
||||
void foo(boolean a, boolean b, boolean c) {
|
||||
boolean option1 = true;
|
||||
boolean option2 = true;
|
||||
if (option1) {
|
||||
if (option2) {
|
||||
if (<selection>a && b</selection> && c) {
|
||||
System.out.println("One");
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (a && b) {
|
||||
System.out.println("two");
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (a && b) {
|
||||
System.out.println("three");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -269,6 +269,10 @@ public class IntroduceVariableTest extends LightCodeInsightTestCase {
|
||||
public void testCantCollapsedToDiamond() throws Exception {
|
||||
doTest(new MockIntroduceVariableHandler("a", true, true, true, "Foo<java.lang.Number>"));
|
||||
}
|
||||
|
||||
public void testPolyadic() throws Exception {
|
||||
doTest(new MockIntroduceVariableHandler("b1", true, true, true, "boolean"));
|
||||
}
|
||||
|
||||
public void testSiblingInnerClassType() throws Exception {
|
||||
doTest(new MockIntroduceVariableHandler("vari", true, false, false, "A.B") {
|
||||
|
||||
Reference in New Issue
Block a user