diff --git a/org.eclipse.jdt.core.manipulation/core extension/org/eclipse/jdt/internal/corext/refactoring/code/SourceAnalyzer.java b/org.eclipse.jdt.core.manipulation/core extension/org/eclipse/jdt/internal/corext/refactoring/code/SourceAnalyzer.java index 9bb9352645d..9c6270bec40 100644 --- a/org.eclipse.jdt.core.manipulation/core extension/org/eclipse/jdt/internal/corext/refactoring/code/SourceAnalyzer.java +++ b/org.eclipse.jdt.core.manipulation/core extension/org/eclipse/jdt/internal/corext/refactoring/code/SourceAnalyzer.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2024 IBM Corporation and others. + * Copyright (c) 2000, 2026 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -268,7 +268,7 @@ public boolean visit(ClassInstanceCreation node) { if (fTypeCounter == 0) { Expression receiver= node.getExpression(); if (receiver == null) { - if (node.resolveTypeBinding().isLocal() && !node.resolveTypeBinding().isAnonymous()) + if (node.resolveTypeBinding().isMember()) fImplicitReceivers.add(node); } } diff --git a/org.eclipse.jdt.ui.tests.refactoring/resources/InlineMethodWorkspace/TestCases/bugs_in/Test_issue_3070_1.java b/org.eclipse.jdt.ui.tests.refactoring/resources/InlineMethodWorkspace/TestCases/bugs_in/Test_issue_3070_1.java new file mode 100644 index 00000000000..c3d691260eb --- /dev/null +++ b/org.eclipse.jdt.ui.tests.refactoring/resources/InlineMethodWorkspace/TestCases/bugs_in/Test_issue_3070_1.java @@ -0,0 +1,19 @@ +package bugs_in; + +public class Test_issue_3070_1 { + public static void main(String[] args) { + Test_issue_3070_1 obj = new Test_issue_3070_1(); + int result = obj.f(); + System.out.println(result); + } + + class H { + int g() { + return 7; + } + } + + int /*]*/f()/*[*/ { + return new H().g(); + } +} diff --git a/org.eclipse.jdt.ui.tests.refactoring/resources/InlineMethodWorkspace/TestCases/bugs_in/Test_issue_3070_2.java b/org.eclipse.jdt.ui.tests.refactoring/resources/InlineMethodWorkspace/TestCases/bugs_in/Test_issue_3070_2.java new file mode 100644 index 00000000000..bde01ab80c9 --- /dev/null +++ b/org.eclipse.jdt.ui.tests.refactoring/resources/InlineMethodWorkspace/TestCases/bugs_in/Test_issue_3070_2.java @@ -0,0 +1,18 @@ +package bugs_in; + +public class Test_issue_3070_2 { + public static void main(String[] args) { + Test_issue_3070_2 obj = new Test_issue_3070_2(); + int result = obj.f(); + System.out.println(result); + } + + int /*]*/f()/*[*/ { + class H { + int g() { + return 7; + } + } + return new H().g(); + } +} diff --git a/org.eclipse.jdt.ui.tests.refactoring/resources/InlineMethodWorkspace/TestCases/bugs_out/Test_issue_3070_1.java b/org.eclipse.jdt.ui.tests.refactoring/resources/InlineMethodWorkspace/TestCases/bugs_out/Test_issue_3070_1.java new file mode 100644 index 00000000000..6c4f2655852 --- /dev/null +++ b/org.eclipse.jdt.ui.tests.refactoring/resources/InlineMethodWorkspace/TestCases/bugs_out/Test_issue_3070_1.java @@ -0,0 +1,15 @@ +package bugs_in; + +public class Test_issue_3070_1 { + public static void main(String[] args) { + Test_issue_3070_1 obj = new Test_issue_3070_1(); + int result = obj.new H().g(); + System.out.println(result); + } + + class H { + int g() { + return 7; + } + } +} diff --git a/org.eclipse.jdt.ui.tests.refactoring/resources/InlineMethodWorkspace/TestCases/bugs_out/Test_issue_3070_2.java b/org.eclipse.jdt.ui.tests.refactoring/resources/InlineMethodWorkspace/TestCases/bugs_out/Test_issue_3070_2.java new file mode 100644 index 00000000000..87d4972d3e1 --- /dev/null +++ b/org.eclipse.jdt.ui.tests.refactoring/resources/InlineMethodWorkspace/TestCases/bugs_out/Test_issue_3070_2.java @@ -0,0 +1,14 @@ +package bugs_in; + +public class Test_issue_3070_2 { + public static void main(String[] args) { + Test_issue_3070_2 obj = new Test_issue_3070_2(); + class H { + int g() { + return 7; + } + } + int result = new H().g(); + System.out.println(result); + } +} diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/InlineMethodTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/InlineMethodTests.java index 29f0674218c..b49ee4655cb 100644 --- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/InlineMethodTests.java +++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/InlineMethodTests.java @@ -572,6 +572,16 @@ public void test_issue_2376() throws Exception { performBugTest(); } + @Test + public void test_issue_3070_1() throws Exception { + performBugTest(); + } + + @Test + public void test_issue_3070_2() throws Exception { + performBugTest(); + } + /* *********************** Argument Tests ******************************* */ private void performArgumentTest() throws Exception {