mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
warn about private/static modifiers inside local classes (IDEA-85567)
This commit is contained in:
+1
-1
@@ -349,7 +349,7 @@ public class HighlightClassUtil {
|
||||
return null;
|
||||
}
|
||||
PsiClass aClass = (PsiClass)keyword.getParent();
|
||||
if (PsiUtilCore.hasErrorElementChild(aClass)) return null;
|
||||
if (PsiUtilCore.hasErrorElementChild(aClass) || (aClass.getQualifiedName() == null && !aClass.isInterface())) return null;
|
||||
// highlight 'static' keyword if any, or class or interface if not
|
||||
PsiElement context = null;
|
||||
PsiModifierList modifierList = aClass.getModifierList();
|
||||
|
||||
@@ -824,7 +824,7 @@ public class HighlightUtil {
|
||||
}
|
||||
else if (PsiModifier.STATIC.equals(modifier) || PsiModifier.PRIVATE.equals(modifier) || PsiModifier.PROTECTED.equals(modifier) ||
|
||||
PsiModifier.PACKAGE_LOCAL.equals(modifier)) {
|
||||
isAllowed = modifierOwnerParent instanceof PsiClass;
|
||||
isAllowed = modifierOwnerParent instanceof PsiClass && ((PsiClass)modifierOwnerParent).getQualifiedName() != null;
|
||||
}
|
||||
|
||||
if (aClass.isEnum()) {
|
||||
|
||||
+8
@@ -66,3 +66,11 @@ interface i3 {
|
||||
<error descr="Modifier 'transient' not allowed here">transient</error> int m2() { return 0; }
|
||||
<error descr="Modifier 'synchronized' not allowed here">synchronized</error> int m3() { return 0; }
|
||||
}
|
||||
|
||||
class LocalClassWithInner {
|
||||
void foo () {
|
||||
class A {
|
||||
<error descr="Modifier 'private' not allowed here">private</error> class B {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -48,7 +48,7 @@ public class a {
|
||||
<error descr="Inner classes cannot have static declarations">static</error>
|
||||
final int f2 = x instanceof Integer ? 1 : 0;
|
||||
|
||||
<error descr="Inner classes cannot have static declarations">static</error>
|
||||
<error descr="Modifier 'static' not allowed here">static</error>
|
||||
class a_ic_c2 {}
|
||||
|
||||
<error descr="Inner classes cannot have static declarations">static</error>
|
||||
@@ -75,7 +75,7 @@ public class a {
|
||||
<error descr="Inner classes cannot have static declarations">static</error>
|
||||
final int f2 = x instanceof Integer ? 1 : 0;
|
||||
|
||||
<error descr="Inner classes cannot have static declarations">static</error>
|
||||
<error descr="Modifier 'static' not allowed here">static</error>
|
||||
class a_ic_c2 {}
|
||||
|
||||
<error descr="Inner classes cannot have static declarations">static</error>
|
||||
|
||||
+1
-1
@@ -115,7 +115,7 @@ class X extends <error descr="Classes cannot directly extend 'java.lang.Enum'">E
|
||||
|
||||
enum StaticInEnumConstantInitializer {
|
||||
AN {
|
||||
<error descr="Inner classes cannot have static declarations">static</error> class s {
|
||||
<error descr="Modifier 'static' not allowed here">static</error> class s {
|
||||
}
|
||||
private <error descr="Inner classes cannot have static declarations">static</error> final String t = String.valueOf(1);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user