mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-05 01:50:56 +07:00
[java-highlighting] IDEA-340604 Improve an error message for unresolved references for implicit classes
GitOrigin-RevId: a4f319c4e48053ec57bce1e171f61d665154ed55
This commit is contained in:
committed by
intellij-monorepo-bot
parent
d97f659b90
commit
58e3af039d
@@ -38,6 +38,7 @@ import com.intellij.psi.*;
|
||||
import com.intellij.psi.codeStyle.VariableKind;
|
||||
import com.intellij.psi.impl.PsiImplUtil;
|
||||
import com.intellij.psi.impl.PsiSuperMethodImplUtil;
|
||||
import com.intellij.psi.impl.java.stubs.index.JavaImplicitClassIndex;
|
||||
import com.intellij.psi.impl.light.LightRecordMethod;
|
||||
import com.intellij.psi.impl.source.resolve.JavaResolveUtil;
|
||||
import com.intellij.psi.impl.source.resolve.graphInference.InferenceSession;
|
||||
@@ -3476,6 +3477,9 @@ public final class HighlightUtil {
|
||||
primitiveType.getPresentableText(false));
|
||||
}
|
||||
}
|
||||
if (!JavaImplicitClassIndex.getInstance().getElements(ref.getQualifiedName(), ref.getProject(), ref.getResolveScope()).isEmpty()) {
|
||||
description = JavaErrorBundle.message("implicit.class.can.not.be.referenced", ref.getText());
|
||||
}
|
||||
}
|
||||
|
||||
HighlightInfo.Builder info =
|
||||
|
||||
@@ -316,6 +316,7 @@ marked.for.removal.symbol.since=''{0}'' is deprecated since version {1} and mark
|
||||
qualifier.must.be.expression=Qualifier must be an expression
|
||||
cannot.resolve.symbol=Cannot resolve symbol ''{0}''
|
||||
cannot.access.member.on.type=Cannot access member because ''{0}'' has primitive type {1}
|
||||
implicit.class.can.not.be.referenced=Implicitly declared class ''{0}'' cannot be referenced
|
||||
cannot.call.method.on.type=Cannot call method because ''{0}'' has primitive type {1}
|
||||
class.is.already.defined.in.single.static.import=Class ''{0}'' is already defined in a single static import
|
||||
class.is.ambiguous.in.single.static.import=Class ''{0}'' is ambiguous in a single static import
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
<error descr="Implicitly declared class 'ReferenceToImplicitClass' cannot be referenced">ReferenceToImplicitClass</error> a;
|
||||
|
||||
public static void main(String[] args) {
|
||||
Class<<error descr="Implicitly declared class 'ReferenceToImplicitClass' cannot be referenced">ReferenceToImplicitClass</error>> stringClass = <error descr="Implicitly declared class 'ReferenceToImplicitClass' cannot be referenced">ReferenceToImplicitClass</error>.class;
|
||||
}
|
||||
@@ -451,4 +451,10 @@ public class LightAdvHighlightingTest extends LightDaemonAnalyzerTestCase {
|
||||
public void testThisReferencedInnerClass() {
|
||||
doTest(false);
|
||||
}
|
||||
|
||||
public void testReferenceToImplicitClass() {
|
||||
IdeaTestUtil.withLevel(getModule(), LanguageLevel.JDK_22_PREVIEW, () -> {
|
||||
doTest(false);
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user