mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[java] better error message when permits list not allowed (IDEA-350501)
GitOrigin-RevId: 93cc9241dd77e12df1baeda1d06538f3159a6e59
This commit is contained in:
committed by
intellij-monorepo-bot
parent
e614239ca4
commit
0fc08dae0c
+5
-5
@@ -1211,12 +1211,12 @@ public final class HighlightClassUtil {
|
||||
PsiIdentifier nameIdentifier = aClass.getNameIdentifier();
|
||||
if (nameIdentifier == null) return;
|
||||
if (aClass.isEnum() || aClass.isRecord() || aClass.isAnnotationType()) {
|
||||
String description = aClass.isEnum() ? JavaErrorBundle.message("permits.after.enum") : null;
|
||||
if (description == null) {
|
||||
description = JavaErrorBundle.message(aClass.isRecord() ? "record.permits" : "annotation.type.permits");
|
||||
}
|
||||
String description;
|
||||
if (aClass.isEnum()) description = JavaErrorBundle.message("permits.after.enum");
|
||||
else if (aClass.isRecord()) description = JavaErrorBundle.message("record.permits");
|
||||
else description = JavaErrorBundle.message("annotation.type.permits");
|
||||
HighlightInfo.Builder builder = HighlightInfo.newHighlightInfo(HighlightInfoType.ERROR)
|
||||
.range(list)
|
||||
.range(list.getFirstChild())
|
||||
.descriptionAndTooltip(description);
|
||||
IntentionAction action = QuickFixFactory.getInstance().createDeleteFix(list);
|
||||
builder.registerFix(action, null, null, null, null);
|
||||
|
||||
@@ -104,7 +104,7 @@ no.interface.expected=No interface expected here
|
||||
class.expected=Class name expected here
|
||||
implements.after.interface=No implements clause allowed for interface
|
||||
extends.after.enum=No extends clause allowed for enum
|
||||
permits.after.enum=No permits clause allowed for enum
|
||||
permits.after.enum='permits' not allowed on enum
|
||||
class.must.be.abstract=Class ''{0}'' must either be declared abstract or implement abstract method ''{1}'' in ''{2}''
|
||||
enum.constant.must.implement.method=Enum constant ''{0}'' must implement abstract method ''{1}'' in ''{2}''
|
||||
class.must.implement.method=Class ''{0}'' must implement abstract method ''{1}'' in ''{2}''
|
||||
@@ -514,7 +514,7 @@ record.accessor=Record component accessor
|
||||
record.component.not.initialized=Record component ''{0}'' might not be initialized in canonical constructor
|
||||
compact.constructor.in.regular.class=Parameter list expected
|
||||
record.compact.constructor.return='return' statement is not allowed in compact constructor
|
||||
record.permits=No permits clause allowed for record
|
||||
record.permits='permits' not allowed on record
|
||||
|
||||
insufficient.language.level={0} are not supported at language level ''{1}''
|
||||
|
||||
@@ -583,7 +583,7 @@ text.improper.formed.type=Improper formed type; some type parameters are missing
|
||||
text.class.is.not.accessible={0} is not accessible in current context
|
||||
text.class.cannot.access=Cannot access {0}
|
||||
auto.closeable.resource=auto-closeable resource
|
||||
annotation.type.permits=No permits clause allowed for annotation type
|
||||
annotation.type.permits='permits' not allowed on @interface
|
||||
too.many.array.dimensions=Too many array dimensions
|
||||
error.cannot.infer.pattern.type=Cannot infer pattern type: {0}
|
||||
error.extra.semicolons.between.import.statements.not.allowed=Extra semicolons between import statements are not allowed
|
||||
|
||||
+1
-1
@@ -9,7 +9,7 @@ class ClassWithComponents<error descr="Record header declared for non-record">(i
|
||||
class ClassWithComponents2<error descr="Record header declared for non-record">(int x, int y)</error> {}
|
||||
<error descr="Modifier 'abstract' not allowed here">abstract</error> record AbstractRecord() {}
|
||||
record ExtendsObject() <error descr="No extends clause allowed for record">extends Object</error> {}
|
||||
record PermitsObject() <error descr="No permits clause allowed for record">permits Object</error> {}
|
||||
record PermitsObject() <error descr="'permits' not allowed on record">permits</error> Object {}
|
||||
class ExtendsRecord extends <error descr="Cannot inherit from final 'NoComponents'">NoComponents</error> {}
|
||||
abstract class ExtendsJLR extends <error descr="Classes cannot directly extend 'java.lang.Record'">Record</error> {}
|
||||
class AnonymousExtendsJLR {
|
||||
|
||||
+2
-2
@@ -19,7 +19,7 @@ final class IndirectInheritor implements MiddleMan {}
|
||||
|
||||
sealed class AnotherPackage permits <error descr="Class is not allowed to extend sealed class from another package">p1.P1</error> {}
|
||||
|
||||
enum ImlicitlySealedWithPermitsClause <error descr="No permits clause allowed for enum">permits FOO</error> {
|
||||
enum ImlicitlySealedWithPermitsClause <error descr="'permits' not allowed on enum">permits</error> FOO {
|
||||
FOO {};
|
||||
}
|
||||
|
||||
@@ -27,4 +27,4 @@ sealed class Parent permits TypedChild<error descr="Generics are not allowed in
|
||||
|
||||
non-sealed class TypedChild<F> extends Parent {}
|
||||
|
||||
@interface AnnotationType <error descr="No permits clause allowed for annotation type">permits I</error> {}
|
||||
@interface AnnotationType <error descr="'permits' not allowed on @interface">permits</error> I {}
|
||||
Reference in New Issue
Block a user