diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightControlFlowUtil.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightControlFlowUtil.java
index 747d6a63c26f..e0f4a77eef0e 100644
--- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightControlFlowUtil.java
+++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightControlFlowUtil.java
@@ -287,7 +287,7 @@ public final class HighlightControlFlowUtil {
if (isFieldInitializedAfterObjectConstruction(field)) return null;
if (PsiUtilCore.hasErrorElementChild(field)) return null;
if (IncompleteModelUtil.isIncompleteModel(field) && IncompleteModelUtil.canBeAugmented(field.getContainingClass())) {
- return IncompleteModelUtil.getPendingReferenceHighlightInfo(field);
+ return IncompleteModelUtil.getPendingInitizializingHighlightInfo(field);
}
String description = JavaErrorBundle.message("variable.not.initialized", field.getName());
TextRange range = HighlightNamesUtil.getFieldDeclarationTextRange(field);
diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/IncompleteModelUtil.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/IncompleteModelUtil.java
index 53c9835720e7..651926c09761 100644
--- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/IncompleteModelUtil.java
+++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/IncompleteModelUtil.java
@@ -280,13 +280,22 @@ final class IncompleteModelUtil {
.descriptionAndTooltip(JavaErrorBundle.message("incomplete.project.state.pending.reference"));
}
+ /**
+ * @param elementToHighlight element to attach the highlighting
+ * @return HighlightInfo builder that adds a pending initizializing highlight
+ */
+ static HighlightInfo.@NotNull Builder getPendingInitizializingHighlightInfo(@NotNull PsiElement elementToHighlight) {
+ return HighlightInfo.newHighlightInfo(HighlightInfoType.PENDING_REFERENCE).range(elementToHighlight)
+ .descriptionAndTooltip(JavaErrorBundle.message("incomplete.project.state.pending.initalizing"));
+ }
+
static boolean canBeAugmented(@Nullable PsiClass targetClass) {
if (targetClass == null) return false;
return CachedValuesManager.getProjectPsiDependentCache(targetClass,
psiClass -> PsiAugmentProvider.canBeAugmentedForIncompleteMode(psiClass));
}
- static boolean canBeUsedImportImplicitly(@Nullable PsiImportStatementBase importStatementBase) {
+ private static boolean canBeUsedImportImplicitly(@Nullable PsiImportStatementBase importStatementBase) {
if (importStatementBase == null) return false;
return PsiAugmentProvider.canBeUsedImportForIncompleteMode(importStatementBase);
}
diff --git a/java/java-psi-impl/resources/messages/JavaErrorBundle.properties b/java/java-psi-impl/resources/messages/JavaErrorBundle.properties
index 04a0d5f1ae92..eaaa5ebbdf4e 100644
--- a/java/java-psi-impl/resources/messages/JavaErrorBundle.properties
+++ b/java/java-psi-impl/resources/messages/JavaErrorBundle.properties
@@ -597,4 +597,5 @@ error.implicit.class.has.invalid.file.name=Implicitly declared class's file name
error.package.statement.not.allowed.for.implicit.class=Package statement is not allowed for implicitly declared class
error.initializers.are.not.allowed.in.implicit.classes=Initializers are not allowed in implicitly declared classes
remove.unused.imports.quickfix.text=Remove unused imports
-incomplete.project.state.pending.reference=Not resolved until the project is fully loaded
\ No newline at end of file
+incomplete.project.state.pending.reference=Not resolved until the project is fully loaded
+incomplete.project.state.pending.initalizing=Not initialized until the project is fully loaded
\ No newline at end of file
diff --git a/plugins/lombok/testData/highlightingIncompleteMode/LombokBasics.java b/plugins/lombok/testData/highlightingIncompleteMode/LombokBasics.java
index 873d10bf0255..b09f8734611e 100644
--- a/plugins/lombok/testData/highlightingIncompleteMode/LombokBasics.java
+++ b/plugins/lombok/testData/highlightingIncompleteMode/LombokBasics.java
@@ -14,15 +14,15 @@ public final class LombokBasics {
@Getter
@SuperBuilder
class UserDao extends UserId {
- private final String name;
- private final String surname;
- private final String email;
+ private final String name;
+ private final String surname;
+ private final String email;
}
@SuperBuilder
abstract class UserId {
- private final long id;
- private final String info;
+ private final long id;
+ private final String info;
}
class UserChain {
diff --git a/plugins/lombok/testData/highlightingIncompleteMode/LombokBasicsWithExplicitImport.java b/plugins/lombok/testData/highlightingIncompleteMode/LombokBasicsWithExplicitImport.java
index 051918dd70ac..10d4d2cb96c1 100644
--- a/plugins/lombok/testData/highlightingIncompleteMode/LombokBasicsWithExplicitImport.java
+++ b/plugins/lombok/testData/highlightingIncompleteMode/LombokBasicsWithExplicitImport.java
@@ -16,15 +16,15 @@ public final class LombokBasicsWithExplicitImport {
@Getter
@SuperBuilder
class UserDao extends UserId {
- private final String name;
- private final String surname;
- private final String email;
+ private final String name;
+ private final String surname;
+ private final String email;
}
@SuperBuilder
abstract class UserId {
- private final long id;
- private final String info;
+ private final long id;
+ private final String info;
}
class UserChain {