Top-level private classes are public in Java
This commit is contained in:
+8
-2
@@ -273,6 +273,7 @@ public class KotlinLightClassForExplicitDeclaration extends AbstractLightClass i
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private String[] computeModifiers() {
|
private String[] computeModifiers() {
|
||||||
|
boolean nestedClass = classOrObject.getParent() != classOrObject.getContainingFile();
|
||||||
Collection<String> psiModifiers = Sets.newHashSet();
|
Collection<String> psiModifiers = Sets.newHashSet();
|
||||||
|
|
||||||
// PUBLIC, PROTECTED, PRIVATE, ABSTRACT, FINAL
|
// PUBLIC, PROTECTED, PRIVATE, ABSTRACT, FINAL
|
||||||
@@ -280,7 +281,6 @@ public class KotlinLightClassForExplicitDeclaration extends AbstractLightClass i
|
|||||||
Pair.create(PUBLIC_KEYWORD, PsiModifier.PUBLIC),
|
Pair.create(PUBLIC_KEYWORD, PsiModifier.PUBLIC),
|
||||||
Pair.create(INTERNAL_KEYWORD, PsiModifier.PUBLIC),
|
Pair.create(INTERNAL_KEYWORD, PsiModifier.PUBLIC),
|
||||||
Pair.create(PROTECTED_KEYWORD, PsiModifier.PROTECTED),
|
Pair.create(PROTECTED_KEYWORD, PsiModifier.PROTECTED),
|
||||||
Pair.create(PRIVATE_KEYWORD, PsiModifier.PRIVATE),
|
|
||||||
Pair.create(ABSTRACT_KEYWORD, PsiModifier.ABSTRACT),
|
Pair.create(ABSTRACT_KEYWORD, PsiModifier.ABSTRACT),
|
||||||
Pair.create(FINAL_KEYWORD, PsiModifier.FINAL));
|
Pair.create(FINAL_KEYWORD, PsiModifier.FINAL));
|
||||||
|
|
||||||
@@ -290,6 +290,12 @@ public class KotlinLightClassForExplicitDeclaration extends AbstractLightClass i
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (classOrObject.hasModifier(PRIVATE_KEYWORD)) {
|
||||||
|
// Top-level private class has PUBLIC visibility in Java
|
||||||
|
// Nested private class has PRIVATE visibility
|
||||||
|
psiModifiers.add(nestedClass ? PsiModifier.PRIVATE : PsiModifier.PUBLIC);
|
||||||
|
}
|
||||||
|
|
||||||
if (!psiModifiers.contains(PsiModifier.PRIVATE) && !psiModifiers.contains(PsiModifier.PROTECTED)) {
|
if (!psiModifiers.contains(PsiModifier.PRIVATE) && !psiModifiers.contains(PsiModifier.PROTECTED)) {
|
||||||
psiModifiers.add(PsiModifier.PUBLIC); // For internal (default) visibility
|
psiModifiers.add(PsiModifier.PUBLIC); // For internal (default) visibility
|
||||||
}
|
}
|
||||||
@@ -300,7 +306,7 @@ public class KotlinLightClassForExplicitDeclaration extends AbstractLightClass i
|
|||||||
}
|
}
|
||||||
|
|
||||||
// STATIC
|
// STATIC
|
||||||
if (classOrObject.getParent() != classOrObject.getContainingFile()
|
if (nestedClass
|
||||||
//TODO: && !jetModifierList.hasModifier(INNER_KEYWORD)
|
//TODO: && !jetModifierList.hasModifier(INNER_KEYWORD)
|
||||||
) {
|
) {
|
||||||
psiModifiers.add(PsiModifier.STATIC);
|
psiModifiers.add(PsiModifier.STATIC);
|
||||||
|
|||||||
Reference in New Issue
Block a user