diff --git a/java/java.editor.base/src/org/netbeans/modules/java/editor/base/semantic/UnusedDetector.java b/java/java.editor.base/src/org/netbeans/modules/java/editor/base/semantic/UnusedDetector.java index 353ad3e69988..9edef9dabc16 100644 --- a/java/java.editor.base/src/org/netbeans/modules/java/editor/base/semantic/UnusedDetector.java +++ b/java/java.editor.base/src/org/netbeans/modules/java/editor/base/semantic/UnusedDetector.java @@ -338,7 +338,7 @@ public boolean isDependencies() { typeElement = info.getElementUtilities().enclosingTypeElement(el); searchKinds = EnumSet.of(ClassIndex.SearchKind.METHOD_REFERENCES); } - case ANNOTATION_TYPE, CLASS, ENUM, INTERFACE -> { + case ANNOTATION_TYPE, CLASS, ENUM, RECORD, INTERFACE -> { List topLevelElements = info.getTopLevelElements(); if (topLevelElements.size() == 1 && topLevelElements.get(0) == el) { return false; diff --git a/java/java.hints/test/unit/src/org/netbeans/modules/java/hints/bugs/UnusedTest.java b/java/java.hints/test/unit/src/org/netbeans/modules/java/hints/bugs/UnusedTest.java index e924a4183b19..9e5daf4b21c4 100644 --- a/java/java.hints/test/unit/src/org/netbeans/modules/java/hints/bugs/UnusedTest.java +++ b/java/java.hints/test/unit/src/org/netbeans/modules/java/hints/bugs/UnusedTest.java @@ -85,4 +85,54 @@ public void testUnusedNoPackagePrivate() throws Exception { .run(Unused.class) .assertWarnings(); } + + public void testNoFixForTopLevelPackagePrivateClass() throws Exception { + HintTest.create() + .input( + """ + package test; + class Test { + } + """) + .run(Unused.class) + .assertWarnings(); + } + + public void testNoFixForTopLevelPackagePrivateEnum() throws Exception { + HintTest.create() + .input( + """ + package test; + enum Test { + } + """) + .run(Unused.class) + .assertWarnings(); + } + + public void testNoFixForTopLevelPackagePrivateInterface() throws Exception { + HintTest.create() + .input( + """ + package test; + interface Test { + } + """) + .run(Unused.class) + .assertWarnings(); + } + + public void testNoFixForTopLevelPackagePrivateRecord() throws Exception { + HintTest.create() + .sourceLevel(17) + .input( + """ + package test; + record Test() { + } + """) + .run(Unused.class) + .assertWarnings(); + } + }