diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/PostHighlightingVisitor.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/PostHighlightingVisitor.java
index 162996bbd427..242626035c69 100644
--- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/PostHighlightingVisitor.java
+++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/PostHighlightingVisitor.java
@@ -28,6 +28,7 @@ import com.intellij.openapi.progress.ProgressIndicator;
import com.intellij.openapi.progress.ProgressManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Disposer;
+import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.pom.PomNamedTarget;
import com.intellij.profile.codeInspection.InspectionProjectProfileManager;
@@ -297,7 +298,7 @@ class PostHighlightingVisitor {
final boolean readReferenced = myRefCountHolder.isReferencedForRead(field);
if (!readReferenced && !UnusedSymbolUtil.isImplicitRead(project, field)) {
- String message = JavaErrorBundle.message("private.field.is.not.used.for.reading", identifier.getText());
+ String message = getNotUsedForReadingMessage(field, identifier);
return suggestionsToMakeFieldUsed(field, identifier, message);
}
@@ -326,7 +327,7 @@ class PostHighlightingVisitor {
}
else if (UnusedSymbolUtil.isFieldUnused(myProject, myFile, field, progress, helper)) {
if (UnusedSymbolUtil.isImplicitWrite(myProject, field)) {
- String message = JavaErrorBundle.message("private.field.is.not.used.for.reading", identifier.getText());
+ String message = getNotUsedForReadingMessage(field, identifier);
HighlightInfo highlightInfo = UnusedSymbolUtil.createUnusedSymbolInfo(identifier, message, myDeadCodeInfoType);
QuickFixAction.registerQuickFixAction(highlightInfo, QuickFixFactory.getInstance().createSafeDeleteFix(field), myDeadCodeKey);
return highlightInfo;
@@ -336,6 +337,15 @@ class PostHighlightingVisitor {
return null;
}
+ @NotNull
+ private static String getNotUsedForReadingMessage(@NotNull final PsiField field, @NotNull final PsiIdentifier identifier) {
+ final String visibility = VisibilityUtil.getVisibilityStringToDisplay(field);
+
+ final String message = JavaErrorBundle.message("field.is.not.used.for.reading", visibility, identifier.getText());
+
+ return StringUtil.capitalize(message);
+ }
+
private HighlightInfo suggestionsToMakeFieldUsed(@NotNull PsiField field, @NotNull PsiIdentifier identifier, @NotNull String message) {
HighlightInfo highlightInfo = UnusedSymbolUtil.createUnusedSymbolInfo(identifier, message, myDeadCodeInfoType);
SpecialAnnotationsUtilBase.createAddToSpecialAnnotationFixes(field, annoName -> {
diff --git a/java/java-psi-impl/src/messages/JavaErrorBundle.properties b/java/java-psi-impl/src/messages/JavaErrorBundle.properties
index 3737c7b507ec..d2fa2c07c992 100644
--- a/java/java-psi-impl/src/messages/JavaErrorBundle.properties
+++ b/java/java-psi-impl/src/messages/JavaErrorBundle.properties
@@ -275,7 +275,7 @@ local.variable.is.not.used.for.reading=Variable ''{0}'' is assigned but never ac
local.variable.is.not.assigned=Variable ''{0}'' is never assigned
private.field.is.not.used=Private field ''{0}'' is never used
field.is.not.used=Field ''{0}'' is never used
-private.field.is.not.used.for.reading=Private field ''{0}'' is assigned but never accessed
+field.is.not.used.for.reading={0} field ''{1}'' is assigned but never accessed
private.field.is.not.assigned=Private field ''{0}'' is never assigned
parameter.is.not.used=Parameter ''{0}'' is never used
pattern.variable.is.not.used=Pattern variable ''{0}'' is never used
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advFixture/MarkFieldsWhichAreExplicitlyWrittenAsUnused.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advFixture/MarkFieldsWhichAreExplicitlyWrittenAsUnused.java
index eff890cf55e6..957d94e9887f 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advFixture/MarkFieldsWhichAreExplicitlyWrittenAsUnused.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advFixture/MarkFieldsWhichAreExplicitlyWrittenAsUnused.java
@@ -1,4 +1,4 @@
public class MarkFieldsWhichAreExplicitlyWrittenAsUnused {
- public String implicitWrite;
+ public String implicitWrite;
}
\ No newline at end of file