mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-20 13:31:28 +07:00
[java-highlighting] IJ-CR-165049 IDEA-374019 Don't show error about 'main' method if there is an error with braces
- highlight for java 21 duplicated classes GitOrigin-RevId: 31a935297e6b2dcb843cfd5ce1d10acb78774df1
This commit is contained in:
committed by
intellij-monorepo-bot
parent
d632b79c67
commit
e842105580
@@ -197,9 +197,10 @@ final class ClassChecker {
|
||||
}
|
||||
parent = element;
|
||||
|
||||
if (element instanceof PsiDeclarationStatement){ element = PsiTreeUtil.getChildOfType(element, PsiClass.class);}
|
||||
if (element instanceof PsiDeclarationStatement) element = PsiTreeUtil.getChildOfType(element, PsiClass.class);
|
||||
|
||||
if (element instanceof PsiImplicitClass) return;
|
||||
if (myVisitor.isApplicable(JavaFeature.IMPLICIT_CLASS_NAME_OUT_OF_SCOPE) &&
|
||||
element instanceof PsiImplicitClass) return;
|
||||
|
||||
if (element instanceof PsiClass psiClass && name.equals(psiClass.getName())) {
|
||||
myVisitor.report(JavaErrorKinds.CLASS_DUPLICATE.create(aClass, psiClass));
|
||||
|
||||
@@ -63,6 +63,7 @@ feature.enum.qualified.name.in.switch=Qualified enum as a constant in switch
|
||||
feature.string.templates=String templates
|
||||
feature.unnamed.vars=Unnamed patterns and variables
|
||||
feature.implicit.classes=Implicitly declared classes
|
||||
feature.implicit.class.name.out.of.scope=Names of implicitly declared classes are out of scopes
|
||||
feature.instance.main.method=Instance main method
|
||||
feature.inherited.static.main.method=Inherited static main method
|
||||
feature.scoped.values=Scoped Values
|
||||
|
||||
@@ -7,7 +7,6 @@ import org.jetbrains.annotations.Contract
|
||||
import org.jetbrains.annotations.Nls
|
||||
import org.jetbrains.annotations.NonNls
|
||||
import org.jetbrains.annotations.PropertyKey
|
||||
import kotlin.jvm.JvmStatic
|
||||
|
||||
/**
|
||||
* Represents Java language, JVM, or standard library features and provides information
|
||||
@@ -100,6 +99,8 @@ enum class JavaFeature {
|
||||
|
||||
SCOPED_VALUES(LanguageLevel.JDK_21_PREVIEW, "feature.scoped.values"),
|
||||
STRUCTURED_CONCURRENCY(LanguageLevel.JDK_21_PREVIEW, "feature.structured.concurrency"),
|
||||
|
||||
IMPLICIT_CLASS_NAME_OUT_OF_SCOPE(LanguageLevel.JDK_22_PREVIEW, "feature.implicit.class.name.out.of.scope"),
|
||||
CLASSFILE_API(LanguageLevel.JDK_22_PREVIEW, "feature.classfile.api"),
|
||||
STREAM_GATHERERS(LanguageLevel.JDK_22_PREVIEW, "feature.stream.gatherers"),
|
||||
STATEMENTS_BEFORE_SUPER(LanguageLevel.JDK_22_PREVIEW, "feature.statements.before.super"),
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
<error descr="Implicitly declared class contains no 'main' method">public class <error descr="Duplicate class: 'SameNameInnerClass21'">SameNameInnerClass21</error> {
|
||||
|
||||
}
|
||||
|
||||
int a = 1;</error>
|
||||
@@ -184,6 +184,12 @@ class ImplicitClassHighlightingTest : LightJavaCodeInsightFixtureTestCase() {
|
||||
doTest()
|
||||
}
|
||||
|
||||
fun testSameNameInnerClass21() {
|
||||
IdeaTestUtil.withLevel(module, LanguageLevel.JDK_21_PREVIEW, Runnable {
|
||||
doTest()
|
||||
})
|
||||
}
|
||||
|
||||
private fun doTest() {
|
||||
myFixture.configureByFile(getTestName(false) + ".java")
|
||||
myFixture.checkHighlighting()
|
||||
|
||||
Reference in New Issue
Block a user