You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by ma...@apache.org on 2022/04/19 18:50:40 UTC
[netbeans] branch master updated: [3921] Correctly handling opens directive in package rename.
This is an automated email from the ASF dual-hosted git repository.
matthiasblaesing pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git
The following commit(s) were added to refs/heads/master by this push:
new c843263140 [3921] Correctly handling opens directive in package rename.
new 14c9f20d97 Merge pull request #3993 from jlahoda/3921
c843263140 is described below
commit c8432631406191aefa40ad511189361901de57a3
Author: Jan Lahoda <jl...@netbeans.org>
AuthorDate: Sun Apr 17 19:02:44 2022 +0200
[3921] Correctly handling opens directive in package rename.
---
.../refactoring/java/plugins/MoveTransformer.java | 18 +++++++++++----
.../refactoring/java/test/RenamePackageTest.java | 26 +++++++++++++++++++++-
2 files changed, 39 insertions(+), 5 deletions(-)
diff --git a/java/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/MoveTransformer.java b/java/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/MoveTransformer.java
index 201267a16e..05f7baee3b 100644
--- a/java/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/MoveTransformer.java
+++ b/java/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/MoveTransformer.java
@@ -449,16 +449,26 @@ public class MoveTransformer extends RefactoringVisitor {
@Override
public Tree visitExports(ExportsTree node, Element p) {
+ renamePackage(node.getPackageName());
+ return super.visitExports(node, p);
+ }
+
+ @Override
+ public Tree visitOpens(OpensTree node, Element p) {
+ renamePackage(node.getPackageName());
+ return super.visitOpens(node, p);
+ }
+
+ private void renamePackage(ExpressionTree packageName) {
if (!workingCopy.getTreeUtilities().isSynthetic(getCurrentPath())) {
- final Element el = workingCopy.getTrees().getElement(new TreePath(getCurrentPath(), node.getPackageName()));
+ final Element el = workingCopy.getTrees().getElement(new TreePath(getCurrentPath(), packageName));
if (el != null && el.getKind() == ElementKind.PACKAGE && isThisPackageMoving((PackageElement)el)) {
Tree nju = make.Identifier(getTargetPackageName(el));
- rewrite(node.getPackageName(), nju);
+ rewrite(packageName, nju);
}
}
- return super.visitExports(node, p);
}
-
+
private boolean containsAnyOf(Element el, EnumSet<Modifier> neededMods) {
for (Modifier mod : neededMods) {
if(el.getModifiers().contains(mod)) {
diff --git a/java/refactoring.java/test/unit/src/org/netbeans/modules/refactoring/java/test/RenamePackageTest.java b/java/refactoring.java/test/unit/src/org/netbeans/modules/refactoring/java/test/RenamePackageTest.java
index bbbd4d1b19..1cb717f488 100644
--- a/java/refactoring.java/test/unit/src/org/netbeans/modules/refactoring/java/test/RenamePackageTest.java
+++ b/java/refactoring.java/test/unit/src/org/netbeans/modules/refactoring/java/test/RenamePackageTest.java
@@ -20,8 +20,10 @@
package org.netbeans.modules.refactoring.java.test;
import java.util.Arrays;
+import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
+import java.util.Set;
import org.netbeans.modules.java.source.parsing.JavacParser;
import org.netbeans.modules.refactoring.api.Problem;
import org.netbeans.modules.refactoring.api.RefactoringSession;
@@ -37,8 +39,10 @@ import org.openide.util.lookup.Lookups;
*/
public class RenamePackageTest extends RefactoringTestBase {
+ private static final Set<String> MODULAR_TESTS = new HashSet<>(Arrays.asList("testModuleOpens"));
+
public RenamePackageTest(String name) {
- super(name, "1.8");
+ super(name, MODULAR_TESTS.contains(name) ? "9" : "1.8");
}
static {
@@ -129,6 +133,26 @@ public class RenamePackageTest extends RefactoringTestBase {
+ "}"));
}
+ public void testModuleOpens() throws Exception {
+ writeFilesAndWaitForScan(src,
+ new File("module-info.java", "module m {\n"
+ + "exports t;\n"
+ + "opens t;\n"
+ + "}"),
+ new File("t/A.java", "package t;\n"
+ + "public class A {\n"
+ + "}"));
+ performRenameFolder(src.getFileObject("t"), "u", false);
+ verifyContent(src,
+ new File("module-info.java", "module m {\n"
+ + "exports u;\n"
+ + "opens u;\n"
+ + "}"),
+ new File("u/A.java", "package u;\n"
+ + "public class A {\n"
+ + "}"));
+ }
+
private void performRenameFolder(FileObject source, final String newname, boolean searchInComments, Problem... expectedProblems) throws Exception {
final RenameRefactoring[] r = new RenameRefactoring[1];
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists