get rid of 'internal protected' visibility
This commit is contained in:
@@ -84,13 +84,6 @@ public class Visibilities {
|
||||
}
|
||||
};
|
||||
|
||||
public static final Visibility INTERNAL_PROTECTED = new Visibility("internal protected", false) {
|
||||
@Override
|
||||
protected boolean isVisible(@NotNull DeclarationDescriptorWithVisibility what, @NotNull DeclarationDescriptor from) {
|
||||
return PROTECTED.isVisible(what, from) && INTERNAL.isVisible(what, from);
|
||||
}
|
||||
};
|
||||
|
||||
public static final Visibility LOCAL = new Visibility("local", false) {
|
||||
@Override
|
||||
protected boolean isVisible(@NotNull DeclarationDescriptorWithVisibility what, @NotNull DeclarationDescriptor from) {
|
||||
@@ -113,7 +106,7 @@ public class Visibilities {
|
||||
}
|
||||
};
|
||||
|
||||
public static final Set<Visibility> INTERNAL_VISIBILITIES = Sets.newHashSet(PRIVATE, INTERNAL, INTERNAL_PROTECTED, LOCAL);
|
||||
public static final Set<Visibility> INTERNAL_VISIBILITIES = Sets.newHashSet(PRIVATE, INTERNAL, LOCAL);
|
||||
|
||||
private Visibilities() {
|
||||
}
|
||||
@@ -136,10 +129,9 @@ public class Visibilities {
|
||||
|
||||
static {
|
||||
ORDERED_VISIBILITIES.put(PRIVATE, 0);
|
||||
ORDERED_VISIBILITIES.put(INTERNAL_PROTECTED, 1);
|
||||
ORDERED_VISIBILITIES.put(INTERNAL, 2);
|
||||
ORDERED_VISIBILITIES.put(PROTECTED, 2);
|
||||
ORDERED_VISIBILITIES.put(PUBLIC, 3);
|
||||
ORDERED_VISIBILITIES.put(INTERNAL, 1);
|
||||
ORDERED_VISIBILITIES.put(PROTECTED, 1);
|
||||
ORDERED_VISIBILITIES.put(PUBLIC, 2);
|
||||
}
|
||||
|
||||
/*package*/
|
||||
|
||||
@@ -318,8 +318,7 @@ public class DeclarationsChecker {
|
||||
}
|
||||
}
|
||||
|
||||
checkCompatibility(modifierList, Lists.newArrayList(JetTokens.PRIVATE_KEYWORD, JetTokens.PROTECTED_KEYWORD, JetTokens.PUBLIC_KEYWORD, JetTokens.INTERNAL_KEYWORD),
|
||||
Lists.<JetToken>newArrayList(JetTokens.PROTECTED_KEYWORD, JetTokens.INTERNAL_KEYWORD));
|
||||
checkCompatibility(modifierList, Lists.newArrayList(JetTokens.PRIVATE_KEYWORD, JetTokens.PROTECTED_KEYWORD, JetTokens.PUBLIC_KEYWORD, JetTokens.INTERNAL_KEYWORD));
|
||||
}
|
||||
|
||||
private void checkCompatibility(@Nullable JetModifierList modifierList, Collection<JetKeywordToken> availableModifiers, Collection<JetToken>... availableCombinations) {
|
||||
|
||||
@@ -743,15 +743,8 @@ public class DescriptorResolver {
|
||||
if (modifierList == null) return defaultVisibility;
|
||||
if (modifierList.hasModifier(JetTokens.PRIVATE_KEYWORD)) return Visibilities.PRIVATE;
|
||||
if (modifierList.hasModifier(JetTokens.PUBLIC_KEYWORD)) return Visibilities.PUBLIC;
|
||||
if (modifierList.hasModifier(JetTokens.PROTECTED_KEYWORD)) {
|
||||
if (modifierList.hasModifier(JetTokens.INTERNAL_KEYWORD)) {
|
||||
return Visibilities.INTERNAL_PROTECTED;
|
||||
}
|
||||
return Visibilities.PROTECTED;
|
||||
}
|
||||
if (modifierList.hasModifier(JetTokens.INTERNAL_KEYWORD)) {
|
||||
return Visibilities.INTERNAL;
|
||||
}
|
||||
if (modifierList.hasModifier(JetTokens.PROTECTED_KEYWORD)) return Visibilities.PROTECTED;
|
||||
if (modifierList.hasModifier(JetTokens.INTERNAL_KEYWORD)) return Visibilities.INTERNAL;
|
||||
return defaultVisibility;
|
||||
}
|
||||
|
||||
|
||||
@@ -7,12 +7,10 @@ fun test() {
|
||||
val p = test.Public()
|
||||
if (p.public is Int) <!AUTOCAST_IMPOSSIBLE!>p.public<!> + 1
|
||||
if (p.<!INVISIBLE_MEMBER!>protected<!> is Int) <!AUTOCAST_IMPOSSIBLE!>p.<!INVISIBLE_MEMBER!>protected<!><!> + 1
|
||||
if (p.<!INVISIBLE_MEMBER!>i_protected<!> is Int) p.<!INVISIBLE_MEMBER!>i_protected<!> + 1
|
||||
if (p.internal is Int) p.internal + 1
|
||||
val i = test.Public()
|
||||
if (i.public is Int) <!AUTOCAST_IMPOSSIBLE!>i.public<!> + 1
|
||||
if (i.<!INVISIBLE_MEMBER!>protected<!> is Int) <!AUTOCAST_IMPOSSIBLE!>i.<!INVISIBLE_MEMBER!>protected<!><!> + 1
|
||||
if (i.<!INVISIBLE_MEMBER!>i_protected<!> is Int) i.<!INVISIBLE_MEMBER!>i_protected<!> + 1
|
||||
if (i.internal is Int) i.internal + 1
|
||||
}
|
||||
|
||||
@@ -22,12 +20,10 @@ package test
|
||||
public class Public() {
|
||||
public val public : Int? = 1;
|
||||
protected val protected : Int? = 1;
|
||||
internal protected val i_protected : Int? = 1;
|
||||
val internal : Int? = 1
|
||||
}
|
||||
internal class Internal() {
|
||||
public val public : Int? = 1;
|
||||
protected val protected : Int? = 1;
|
||||
internal protected val i_protected : Int? = 1;
|
||||
val internal : Int? = 1
|
||||
}
|
||||
@@ -40,7 +40,7 @@ fun test_fun_stays_protected(g: G) {
|
||||
|
||||
//------------
|
||||
open class H {
|
||||
internal protected open fun pi_fun() {}
|
||||
protected open fun pi_fun() {}
|
||||
}
|
||||
|
||||
class I : H() {
|
||||
@@ -48,7 +48,7 @@ class I : H() {
|
||||
}
|
||||
|
||||
class J : H() {
|
||||
internal override fun pi_fun() {}
|
||||
<!CANNOT_CHANGE_ACCESS_PRIVILEGE!>internal<!> override fun pi_fun() {}
|
||||
}
|
||||
|
||||
class K : H() {
|
||||
@@ -69,11 +69,11 @@ class M : L() {
|
||||
}
|
||||
//---------------
|
||||
trait R {
|
||||
internal protected fun foo() {}
|
||||
<!INCOMPATIBLE_MODIFIERS!>internal<!> <!INCOMPATIBLE_MODIFIERS!>protected<!> fun foo() {}
|
||||
}
|
||||
|
||||
trait P : R {
|
||||
internal override fun foo() {}
|
||||
<!CANNOT_CHANGE_ACCESS_PRIVILEGE!>internal<!> override fun foo() {}
|
||||
}
|
||||
|
||||
trait Q : R {
|
||||
|
||||
@@ -55,7 +55,7 @@ public final class JetDescriptorIconProvider {
|
||||
return PlatformIcons.PUBLIC_ICON;
|
||||
}
|
||||
|
||||
if (visibility == Visibilities.PROTECTED || visibility == Visibilities.INTERNAL_PROTECTED) {
|
||||
if (visibility == Visibilities.PROTECTED) {
|
||||
return PlatformIcons.PROTECTED_ICON;
|
||||
}
|
||||
|
||||
|
||||
@@ -113,10 +113,6 @@ public class ChangeVisibilityModifierFix extends JetIntentionAction<JetModifierL
|
||||
else if (maxVisibility == Visibilities.INTERNAL) {
|
||||
modifier = JetTokens.INTERNAL_KEYWORD;
|
||||
}
|
||||
else if (maxVisibility == Visibilities.INTERNAL_PROTECTED) {
|
||||
//todo should be internal and protected keywords
|
||||
modifier = JetTokens.INTERNAL_KEYWORD;
|
||||
}
|
||||
return modifier;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
// "Specify Return Type Explicitly" "true"
|
||||
package a
|
||||
|
||||
class A() {
|
||||
internal protected fun foo(): Int = 1
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
// "Specify Return Type Explicitly" "true"
|
||||
package a
|
||||
|
||||
class A() {
|
||||
internal protected fun <caret>foo() = 1
|
||||
}
|
||||
Reference in New Issue
Block a user