diff --git a/java/java-tests/testData/ig/com/siyeh/igtest/jdk/forward_compatibility/QualifiedYieldWithUnexpectedToken.java b/java/java-tests/testData/ig/com/siyeh/igtest/jdk/forward_compatibility/QualifiedYieldWithUnexpectedToken.java new file mode 100644 index 000000000000..a102b63c5ddb --- /dev/null +++ b/java/java-tests/testData/ig/com/siyeh/igtest/jdk/forward_compatibility/QualifiedYieldWithUnexpectedToken.java @@ -0,0 +1,5 @@ +class A { + public void f() { + someUnexpectedText Thread.yield(); + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/siyeh/ig/jdk/ForwardCompatibilityInspectionTest.java b/java/java-tests/testSrc/com/siyeh/ig/jdk/ForwardCompatibilityInspectionTest.java index bd6f225f6f72..405e90ac290a 100644 --- a/java/java-tests/testSrc/com/siyeh/ig/jdk/ForwardCompatibilityInspectionTest.java +++ b/java/java-tests/testSrc/com/siyeh/ig/jdk/ForwardCompatibilityInspectionTest.java @@ -1,16 +1,22 @@ // Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.siyeh.ig.jdk; +import com.intellij.codeInsight.daemon.impl.HighlightInfo; import com.intellij.codeInspection.InspectionProfileEntry; +import com.intellij.lang.annotation.HighlightSeverity; import com.intellij.openapi.module.LanguageLevelUtil; import com.intellij.openapi.module.Module; import com.intellij.pom.java.LanguageLevel; import com.intellij.testFramework.IdeaTestUtil; import com.intellij.testFramework.LightProjectDescriptor; +import com.intellij.util.containers.ContainerUtil; +import com.siyeh.InspectionGadgetsBundle; import com.siyeh.ig.LightJavaInspectionTestCase; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.util.List; + public class ForwardCompatibilityInspectionTest extends LightJavaInspectionTestCase { @Override protected String getBasePath() { @@ -39,6 +45,22 @@ public class ForwardCompatibilityInspectionTest extends LightJavaInspectionTestC public void testUnqualifiedYield() { doTest(); } + public void testQualifiedYieldWithUnexpectedToken() { + withLevel(LanguageLevel.JDK_1_8, () -> { + myFixture.configureByFile(getTestName(false) + ".java"); + List list = ContainerUtil.filter(myFixture.doHighlighting(HighlightSeverity.WARNING), it -> it.getSeverity().equals(HighlightSeverity.WARNING)); + assertEquals(1, list.size()); + HighlightInfo info = ContainerUtil.getOnlyItem(list); + assertEquals("yield", info.getText()); + assertEquals("Unqualified call to 'yield' method is not supported in releases since Java 14", info.getDescription()); + assertEquals(60, info.getStartOffset()); + assertEquals(65, info.getEndOffset()); + assertFalse(info.findRegisteredQuickFix((descriptor, textRange) -> { + return descriptor.getAction().getFamilyName().equals(InspectionGadgetsBundle.message("qualify.call.fix.family.name")); + })); + }); + } + public void testUnderscore() { doTest(); } public void testRestrictedKeywordWarning() { doTest(); }