From ed768499e245fc996fc0a43a95d7f15540a37557 Mon Sep 17 00:00:00 2001 From: Bas Leijdekkers Date: Mon, 11 Nov 2024 17:44:22 +0100 Subject: [PATCH] Java: don't report error on qualified reference if the type of the qualifier is unknown (IDEA-240047) GitOrigin-RevId: c5c197eca630832e9f96d1cbee1a1ed545e0212f --- .../impl/analysis/HighlightMethodUtil.java | 25 ++++++++++---- .../daemon/impl/analysis/HighlightUtil.java | 32 ++++++++++------- .../messages/JavaErrorBundle.properties | 4 +-- .../advHighlighting/InvalidExpressions.java | 10 ++++-- .../AmbiguousMethodCallIDEA67669.java | 2 +- .../UnnamedVariables.java | 2 +- .../UnnamedVariablesJava22.java | 2 +- .../UnnamedVariablesJava8.java | 2 +- .../UnnamedVariablesJava9.java | 2 +- .../advLVTI/SimpleAvailability.java | 3 +- .../IncompleteRecursiveParameters.java | 4 +-- .../incompleteHighlighting/Server.java | 34 +++++++++---------- .../incompleteHighlighting/Simple.java | 22 ++++++------ .../AvoidWarningAtNotInferredType.java | 4 +-- .../fixture/InstanceOfUnresolved.java | 2 +- .../daemon/problems/ClassProblemsTest.kt | 4 +-- .../testData/highlights/incomplete/Logs.java | 2 +- 17 files changed, 91 insertions(+), 65 deletions(-) diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightMethodUtil.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightMethodUtil.java index e027375f9f9c..fe92997fafd9 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightMethodUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightMethodUtil.java @@ -909,11 +909,20 @@ public final class HighlightMethodUtil { } else if (qualifierExpression != null && qualifierExpression.getType() instanceof PsiPrimitiveType primitiveType && - !primitiveType.equals(PsiTypes.nullType()) && !primitiveType.equals(PsiTypes.voidType())) { - description = - JavaErrorBundle.message("cannot.call.method.on.type", qualifierExpression.getText(), primitiveType.getPresentableText(false)); + !primitiveType.equals(PsiTypes.nullType())) { + if (PsiTypes.voidType().equals(primitiveType) && + PsiUtil.deparenthesizeExpression(qualifierExpression) instanceof PsiReferenceExpression) { + return null; + } + description = JavaErrorBundle.message("cannot.call.method.on.type", primitiveType.getPresentableText(false)); } else { + if (qualifierExpression != null) { + PsiType type = qualifierExpression.getType(); + if (type instanceof PsiClassType t && t.resolve() == null || PsiTypes.nullType().equals(type)) { + return null; + } + } if (IncompleteModelUtil.isIncompleteModel(file) && IncompleteModelUtil.canBePendingReference(referenceToMethod)) { return HighlightUtil.getPendingReferenceHighlightInfo(elementToHighlight); } @@ -966,9 +975,10 @@ public final class HighlightMethodUtil { String description; String toolTip; + PsiExpression[] expressions = list.getExpressions(); if (methodCandidate2 != null) { if (IncompleteModelUtil.isIncompleteModel(list) && - ContainerUtil.exists(list.getExpressions(), e -> IncompleteModelUtil.mayHaveUnknownTypeDueToPendingReference(e))) { + ContainerUtil.exists(expressions, e -> IncompleteModelUtil.mayHaveUnknownTypeDueToPendingReference(e))) { return null; } PsiMethod element1 = methodCandidate1.getElement(); @@ -1000,7 +1010,10 @@ public final class HighlightMethodUtil { return null; } if (IncompleteModelUtil.isIncompleteModel(list) && - ContainerUtil.exists(list.getExpressions(), IncompleteModelUtil::mayHaveUnknownTypeDueToPendingReference)) { + ContainerUtil.exists(expressions, IncompleteModelUtil::mayHaveUnknownTypeDueToPendingReference)) { + return null; + } + if (ContainerUtil.exists(expressions, e -> e.getType() == null)) { return null; } String methodName = referenceToMethod.getReferenceName() + buildArgTypesList(list, true); @@ -1024,7 +1037,7 @@ public final class HighlightMethodUtil { CastMethodArgumentFix.REGISTRAR.registerCastActions(candidates, methodCall, builder, fixRange); WrapWithAdapterMethodCallFix.registerCastActions(candidates, methodCall, builder, fixRange); WrapObjectWithOptionalOfNullableFix.REGISTAR.registerCastActions(candidates, methodCall, builder, fixRange); - WrapExpressionFix.registerWrapAction(candidates, list.getExpressions(), builder, fixRange); + WrapExpressionFix.registerWrapAction(candidates, expressions, builder, fixRange); PermuteArgumentsFix.registerFix(builder, methodCall, candidates, fixRange); registerChangeParameterClassFix(methodCall, list, builder, fixRange); return builder; diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java index 12e6a03f2b4a..86d31872923d 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java @@ -217,8 +217,8 @@ public final class HighlightUtil { HighlightInfo.newHighlightInfo(HighlightInfoType.ERROR).range(expression).descriptionAndTooltip(message); if (((operandIsPrimitive || checkIsPrimitive) && !primitiveInPatternsEnabled) && convertible) { HighlightInfo.Builder infoFeature = - HighlightUtil.checkFeature(expression, JavaFeature.PRIMITIVE_TYPES_IN_PATTERNS, - PsiUtil.getLanguageLevel(expression), expression.getContainingFile()); + checkFeature(expression, JavaFeature.PRIMITIVE_TYPES_IN_PATTERNS, + PsiUtil.getLanguageLevel(expression), expression.getContainingFile()); if (infoFeature != null) { info = infoFeature; } @@ -554,8 +554,8 @@ public final class HighlightUtil { PsiType lType = variable.getType(); if (PsiTypes.nullType().equals(lType) && ExpressionUtils.nonStructuralChildren(initializer).allMatch(ExpressionUtils::isNullLiteral)) { - HighlightInfo.Builder info = - HighlightInfo.newHighlightInfo(HighlightInfoType.ERROR).descriptionAndTooltip(JavaErrorBundle.message("lvti.null")) + HighlightInfo.Builder info = HighlightInfo.newHighlightInfo(HighlightInfoType.ERROR) + .descriptionAndTooltip(JavaErrorBundle.message("lvti.null")) .range(typeElement); HighlightFixUtil.registerSpecifyVarTypeFix(localVariable, info); return info; @@ -2878,7 +2878,7 @@ public final class HighlightUtil { } // references to private methods from the outer class are not calls to super methods - // even if the outer class is the super class + // even if the outer class is the superclass if (resolved instanceof PsiMember member && member.hasModifierProperty(PsiModifier.PRIVATE) && referencedClass != parentClass) { return null; } @@ -3568,14 +3568,22 @@ public final class HighlightUtil { boolean definitelyIncorrect = false; if (ref instanceof PsiReferenceExpression expression) { PsiExpression qualifierExpression = expression.getQualifierExpression(); - if (qualifierExpression != null && - qualifierExpression.getType() instanceof PsiPrimitiveType primitiveType && - !primitiveType.equals(PsiTypes.nullType()) && !primitiveType.equals(PsiTypes.voidType())) { - description = JavaErrorBundle.message("cannot.access.member.on.type", qualifierExpression.getText(), - primitiveType.getPresentableText(false)); - definitelyIncorrect = true; + if (qualifierExpression != null) { + PsiType type = qualifierExpression.getType(); + if (type instanceof PsiPrimitiveType primitiveType && !primitiveType.equals(PsiTypes.nullType())) { + if (PsiTypes.voidType().equals(primitiveType) && + PsiUtil.deparenthesizeExpression(qualifierExpression) instanceof PsiReferenceExpression) { + return null; + } + description = JavaErrorBundle.message("cannot.access.member.on.type", primitiveType.getPresentableText(false)); + definitelyIncorrect = true; + } + else if (type instanceof PsiClassType t && t.resolve() == null || PsiTypes.nullType().equals(type)) { + return null; + } } - } else if (!JavaImplicitClassIndex.getInstance().getElements(ref.getQualifiedName(), ref.getProject(), ref.getResolveScope()).isEmpty()) { + } + else if (!JavaImplicitClassIndex.getInstance().getElements(ref.getQualifiedName(), ref.getProject(), ref.getResolveScope()).isEmpty()) { description = JavaErrorBundle.message("implicit.class.can.not.be.referenced", ref.getText()); definitelyIncorrect = true; } diff --git a/java/java-psi-impl/resources/messages/JavaErrorBundle.properties b/java/java-psi-impl/resources/messages/JavaErrorBundle.properties index 669fc5dbd96a..39e73897b845 100644 --- a/java/java-psi-impl/resources/messages/JavaErrorBundle.properties +++ b/java/java-psi-impl/resources/messages/JavaErrorBundle.properties @@ -327,9 +327,9 @@ marked.for.removal.symbol=''{0}'' is deprecated and marked for removal marked.for.removal.symbol.since=''{0}'' is deprecated since version {1} and marked for removal 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} +cannot.access.member.on.type=Cannot access fields on ''{0}'' type 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} +cannot.call.method.on.type=Cannot call methods on ''{0}'' type 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 field.is.already.defined.in.single.static.import=Field ''{0}'' is already defined in a single static import diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/InvalidExpressions.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/InvalidExpressions.java index ce30a4cb0648..5dabf4c4e8e9 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/InvalidExpressions.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/InvalidExpressions.java @@ -39,7 +39,7 @@ public class a12 { ////////////////////////// - void f() { + void f(Unknown ufo) { a12 a[] = new a12[4]; int[] ai = null; @@ -51,8 +51,12 @@ public class a12 { foo123Unresolved(String); foo123Unresolved(xxxx); int i = 0; - System.out.println(i.x); - System.out.println(true.toString()); + System.out.println(i.x); + System.out.println(true.toString()); + System.out.println().field; + System.out.println().method(); + System.out.println(ufo.lights); + System.out.println(ufo.hover()); xxxxxx(xxxxxx); diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/AmbiguousMethodCallIDEA67669.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/AmbiguousMethodCallIDEA67669.java index ed1f8df47c6f..1940cc0e83ae 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/AmbiguousMethodCallIDEA67669.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/AmbiguousMethodCallIDEA67669.java @@ -12,6 +12,6 @@ class B { public static void main(String[] args) { A a = null; - char c = a.foo(null).charAt(0); + char c = a.foo(null).charAt(0); } } \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlightingUnnamed/UnnamedVariables.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlightingUnnamed/UnnamedVariables.java index 192c59c95c9a..a43e3c630596 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlightingUnnamed/UnnamedVariables.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlightingUnnamed/UnnamedVariables.java @@ -14,7 +14,7 @@ public class UnnamedVariables { Consumer consumer3 = _ -> System.out.println(_.trim()); Consumer consumer4 = _ -> { var v = _; - System.out.println(v.trim()); + System.out.println(v.trim()); }; BiConsumer consumer5 = (_,_) -> {}; } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlightingUnnamed/UnnamedVariablesJava22.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlightingUnnamed/UnnamedVariablesJava22.java index 192c59c95c9a..a43e3c630596 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlightingUnnamed/UnnamedVariablesJava22.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlightingUnnamed/UnnamedVariablesJava22.java @@ -14,7 +14,7 @@ public class UnnamedVariables { Consumer consumer3 = _ -> System.out.println(_.trim()); Consumer consumer4 = _ -> { var v = _; - System.out.println(v.trim()); + System.out.println(v.trim()); }; BiConsumer consumer5 = (_,_) -> {}; } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlightingUnnamed/UnnamedVariablesJava8.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlightingUnnamed/UnnamedVariablesJava8.java index d9f39f160406..742f1803a495 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlightingUnnamed/UnnamedVariablesJava8.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlightingUnnamed/UnnamedVariablesJava8.java @@ -14,7 +14,7 @@ public class UnnamedVariables { Consumer consumer3 = _ -> System.out.println(_.trim()); Consumer consumer4 = _ -> { var v = _; - System.out.println(v.trim()); + System.out.println(v.trim()); }; BiConsumer consumer5 = (_,_) -> {}; } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlightingUnnamed/UnnamedVariablesJava9.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlightingUnnamed/UnnamedVariablesJava9.java index a6739554e556..cc331a9c04fd 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlightingUnnamed/UnnamedVariablesJava9.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlightingUnnamed/UnnamedVariablesJava9.java @@ -14,7 +14,7 @@ public class UnnamedVariables { Consumer consumer3 = _ -> System.out.println(_.trim()); Consumer consumer4 = _ -> { var v = _; - System.out.println(v.trim()); + System.out.println(v.trim()); }; BiConsumer consumer5 = (_,_) -> {}; } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advLVTI/SimpleAvailability.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advLVTI/SimpleAvailability.java index 001dcd748e45..a1f533aca825 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advLVTI/SimpleAvailability.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advLVTI/SimpleAvailability.java @@ -14,7 +14,8 @@ class Main { var y = new Object[] {y = null}; var z = baz(z = 1); var zz = zz; - zz.hashCode(); + zz.hashCode(); + System.out.println(zz.zz); } static int baz(Object o) {return 42;} diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/incompleteHighlighting/IncompleteRecursiveParameters.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/incompleteHighlighting/IncompleteRecursiveParameters.java index a71688afebc4..bfae5a1c5c88 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/incompleteHighlighting/IncompleteRecursiveParameters.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/incompleteHighlighting/IncompleteRecursiveParameters.java @@ -14,13 +14,13 @@ public class LombokDumbModeApplication { .surname("3") .email("4") .name("1")a - .id(1) + .id(1) .build(); String name = userDao .nhaame(); UserChain userChain = new UserChain(); - String name1 = userChain.getName(); + String name1 = userChain.getName(); } } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/incompleteHighlighting/Server.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/incompleteHighlighting/Server.java index 6b3a0a903ce8..0d9dd0980d33 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/incompleteHighlighting/Server.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/incompleteHighlighting/Server.java @@ -87,7 +87,7 @@ public class Server { } protected void initGenerate() throws IOException { - Reporting reporting = new ReportEngineCreator().createReportingEngine(propertiesLoader); + Reporting reporting = new ReportEngineCreator().createReportingEngine(propertiesLoader); get("/generate", (req, res) -> { try { @@ -101,15 +101,15 @@ public class Server { Map params = parseParameters(req, report); String templateCode = req.queryParams("templateCode"); - RunParams reportParams = new RunParams(report).params(params); + RunParams reportParams = new RunParams(report).params(params); if (StringUtils.isNotBlank(templateCode)) { - reportParams.templateCode(templateCode); + reportParams.templateCode(templateCode); } - ReportOutputDocument reportOutputDocument = reporting.runReport(reportParams); + ReportOutputDocument reportOutputDocument = reporting.runReport(reportParams); writeResult(res, reportOutputDocument); return "Ok"; } catch (Exception e) { - logger.error(String.format("An error occurred while generating report [%s]", req.queryParams("report")), e); + logger.error(String.format("An error occurred while generating report [%s]", req.queryParams("report")), e); throw new RuntimeException(e); } }); @@ -123,24 +123,24 @@ public class Server { } protected Report loadReport(Request req) throws IOException { - String reportName = req.queryParams("report"); + String reportName = req.queryParams("report"); if (StringUtils.isBlank(reportName)) { return null; } else { XmlReader xmlReader = new DefaultXmlReader(); - return xmlReader.parseXml(FileUtils.readFileToString(new File(String.format("%s/%s.xml", reportsPath, reportName)))); + return xmlReader.parseXml(FileUtils.readFileToString(new File(String.format("%s/%s.xml", reportsPath, reportName)))); } } protected Map parseParameters(Request req, Report report) { - QueryParamsMap queryParams = req.queryMap("params"); + QueryParamsMap queryParams = req.queryMap("params"); Map params = new HashMap<>(); - for (ReportParameter reportParameter : report.getReportParameters()) { - java.lang.String paramValueStr = queryParams.value(reportParameter.getAlias()); + for (ReportParameter reportParameter : report.getReportParameters()) { + java.lang.String paramValueStr = queryParams.value(reportParameter.getAlias()); if (paramValueStr != null) { - params.put(reportParameter.getAlias(), - converter.convertFromString(reportParameter.getParameterClass(), paramValueStr)); + params.put(reportParameter.getAlias(), + converter.convertFromString(reportParameter.getParameterClass(), paramValueStr)); } } @@ -148,10 +148,10 @@ public class Server { } protected void writeResult(Response res, ReportOutputDocument reportOutputDocument) throws IOException { - HttpServletResponse raw = res.raw(); - raw.setHeader("Content-Disposition", String.format("attachment; filename=\"%s\"", reportOutputDocument.getDocumentName())); - raw.setContentLength(reportOutputDocument.getContent().length); - raw.getOutputStream().write(reportOutputDocument.getContent()); - res.status(200); + HttpServletResponse raw = res.raw(); + raw.setHeader("Content-Disposition", String.format("attachment; filename=\"%s\"", reportOutputDocument.getDocumentName())); + raw.setContentLength(reportOutputDocument.getContent().length); + raw.getOutputStream().write(reportOutputDocument.getContent()); + res.status(200); } } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/incompleteHighlighting/Simple.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/incompleteHighlighting/Simple.java index e9fc44b3d468..946628099627 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/incompleteHighlighting/Simple.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/incompleteHighlighting/Simple.java @@ -12,7 +12,7 @@ import my.run(); + test().run(); return 0; } @@ -45,9 +45,9 @@ public class Simple { } void refsInUnresolvedClass(Cls s) { - s.hashCode(); - s.dream(); - System.out.println(s.field); + s.hashCode(); + s.dream(); + System.out.println(s.field); System.out.println(Cls.STATIC); } @@ -98,11 +98,11 @@ public class Simple { @Anno(Cls.CONST) void testAssign(Unknown u) { - u.field = 2; + u.field = 2; } void callOnArray(Unknown u) { - u.foo()[0].blah(); + u.foo()[0].blah(); } void initArray() { @@ -116,10 +116,10 @@ public class Simple { void varTest() { var x = Cls.getSomething(); - x.getSomethingElse(); + x.getSomethingElse(); var y = x; - var z = y.getSomethingCompletelyDifferent(); - z.getFromZ(); + var z = y.getSomethingCompletelyDifferent(); + z.getFromZ(); var t = t; } @@ -135,7 +135,7 @@ public class Simple { void testThrow(Cls cls) { try { - cls.unknownM(); + cls.unknownM(); } catch (Cls x) { } catch (IOException | RuntimeException ex) { @@ -158,7 +158,7 @@ public class Simple { void declaredUnknownException() throws Cls {} void testConcat(Cls cls) { - System.out.println("hello " + cls.getSomething() + "!!!"); + System.out.println("hello " + cls.getSomething() + "!!!"); } static class Clss implements MyInterface { diff --git a/java/java-tests/testData/inspection/dataFlow/fixture/AvoidWarningAtNotInferredType.java b/java/java-tests/testData/inspection/dataFlow/fixture/AvoidWarningAtNotInferredType.java index a48ff3773520..5b3ddfd1aab6 100644 --- a/java/java-tests/testData/inspection/dataFlow/fixture/AvoidWarningAtNotInferredType.java +++ b/java/java-tests/testData/inspection/dataFlow/fixture/AvoidWarningAtNotInferredType.java @@ -1,7 +1,7 @@ class Test { void test() { var x = unresolved(); - System.out.println(x.hashCode()); - System.out.println(x.x); + System.out.println(x.hashCode()); + System.out.println(x.x); } } \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/fixture/InstanceOfUnresolved.java b/java/java-tests/testData/inspection/dataFlow/fixture/InstanceOfUnresolved.java index 1f92ae0a5ee4..0a90009da697 100644 --- a/java/java-tests/testData/inspection/dataFlow/fixture/InstanceOfUnresolved.java +++ b/java/java-tests/testData/inspection/dataFlow/fixture/InstanceOfUnresolved.java @@ -4,7 +4,7 @@ class Test { } void test2(XXX bar) { - System.out.println(bar.hashCode()); + System.out.println(bar.hashCode()); if (bar instanceof CharSequence) {} } diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/problems/ClassProblemsTest.kt b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/problems/ClassProblemsTest.kt index e2c4646cd33e..1c8c11be9f5a 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/problems/ClassProblemsTest.kt +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/problems/ClassProblemsTest.kt @@ -1,4 +1,4 @@ -// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.java.codeInsight.daemon.problems import com.intellij.codeInsight.daemon.problems.Problem @@ -292,7 +292,7 @@ internal class ClassProblemsTest : ProjectProblemsViewTest() { method.identifyingElement?.replace(factory.createIdentifier("foo")) } myFixture.doHighlighting() - assertSize(2, ProjectProblemUtils.getReportedProblems(myFixture.editor).entries) + assertSize(1, ProjectProblemUtils.getReportedProblems(myFixture.editor).entries) changeClass(targetClass) { psiClass, _ -> psiClass.identifyingElement?.replace(factory.createIdentifier("A")) diff --git a/plugins/lombok/testData/highlights/incomplete/Logs.java b/plugins/lombok/testData/highlights/incomplete/Logs.java index 4ff5988ba751..c9133134e465 100644 --- a/plugins/lombok/testData/highlights/incomplete/Logs.java +++ b/plugins/lombok/testData/highlights/incomplete/Logs.java @@ -4,6 +4,6 @@ import lombokinfo("Hello World!"); + log.info("Hello World!"); } } \ No newline at end of file