Improve error message for inaccessible invisible_fake members
#KT-8989 Fixed
This commit is contained in:
+5
-5
@@ -94,8 +94,8 @@ public class DefaultErrorMessages {
|
||||
static {
|
||||
MAP.put(UNRESOLVED_REFERENCE, "Unresolved reference: {0}", ELEMENT_TEXT);
|
||||
|
||||
MAP.put(INVISIBLE_REFERENCE, "Cannot access ''{0}'': it is ''{1}'' in {2}", NAME, TO_STRING, NAME_OF_PARENT_OR_FILE);
|
||||
MAP.put(INVISIBLE_MEMBER, "Cannot access ''{0}'': it is ''{1}'' in {2}", NAME, TO_STRING, NAME_OF_PARENT_OR_FILE);
|
||||
MAP.put(INVISIBLE_REFERENCE, "Cannot access ''{0}'': it is ''{1}'' in {2}", NAME, VISIBILITY, NAME_OF_PARENT_OR_FILE);
|
||||
MAP.put(INVISIBLE_MEMBER, "Cannot access ''{0}'': it is ''{1}'' in {2}", NAME, VISIBILITY, NAME_OF_PARENT_OR_FILE);
|
||||
|
||||
MAP.put(PROTECTED_CONSTRUCTOR_NOT_IN_SUPER_CALL, "Protected constructor ''{0}'' from other classes can only be used in super-call", Renderers.SHORT_NAMES_IN_TYPES);
|
||||
|
||||
@@ -276,7 +276,7 @@ public class DefaultErrorMessages {
|
||||
MAP.put(VAL_REASSIGNMENT, "Val cannot be reassigned", NAME);
|
||||
MAP.put(CAPTURED_VAL_INITIALIZATION, "Captured values initialization is forbidden due to possible reassignment", NAME);
|
||||
MAP.put(SETTER_PROJECTED_OUT, "Setter for ''{0}'' is removed by type projection", NAME);
|
||||
MAP.put(INVISIBLE_SETTER, "Cannot assign to ''{0}'': the setter is {1} in {2}", NAME, TO_STRING, NAME_OF_PARENT_OR_FILE);
|
||||
MAP.put(INVISIBLE_SETTER, "Cannot assign to ''{0}'': the setter is {1} in {2}", NAME, VISIBILITY, NAME_OF_PARENT_OR_FILE);
|
||||
MAP.put(INITIALIZATION_BEFORE_DECLARATION, "Variable cannot be initialized before declaration", NAME);
|
||||
MAP.put(VARIABLE_EXPECTED, "Variable expected");
|
||||
|
||||
@@ -587,8 +587,8 @@ public class DefaultErrorMessages {
|
||||
MAP.put(INVALID_IF_AS_EXPRESSION, "'if' must have both main and 'else' branches if used as an expression");
|
||||
|
||||
MAP.put(OVERRIDING_FINAL_MEMBER, "''{0}'' in ''{1}'' is final and cannot be overridden", NAME, NAME);
|
||||
MAP.put(CANNOT_WEAKEN_ACCESS_PRIVILEGE, "Cannot weaken access privilege ''{0}'' for ''{1}'' in ''{2}''", TO_STRING, NAME, NAME);
|
||||
MAP.put(CANNOT_CHANGE_ACCESS_PRIVILEGE, "Cannot change access privilege ''{0}'' for ''{1}'' in ''{2}''", TO_STRING, NAME, NAME);
|
||||
MAP.put(CANNOT_WEAKEN_ACCESS_PRIVILEGE, "Cannot weaken access privilege ''{0}'' for ''{1}'' in ''{2}''", VISIBILITY, NAME, NAME);
|
||||
MAP.put(CANNOT_CHANGE_ACCESS_PRIVILEGE, "Cannot change access privilege ''{0}'' for ''{1}'' in ''{2}''", VISIBILITY, NAME, NAME);
|
||||
|
||||
MAP.put(RETURN_TYPE_MISMATCH_ON_OVERRIDE, "Return type of ''{0}'' is not a subtype of the return type of the overridden member ''{1}''",
|
||||
NAME, FQ_NAMES_IN_TYPES);
|
||||
|
||||
@@ -75,6 +75,12 @@ object Renderers {
|
||||
|
||||
@JvmField val NAME = Renderer<Named> { it.name.asString() }
|
||||
|
||||
@JvmField val VISIBILITY = Renderer<Visibility> {
|
||||
if (it == Visibilities.INVISIBLE_FAKE)
|
||||
"invisible (private in a supertype)"
|
||||
else it.displayName
|
||||
}
|
||||
|
||||
@JvmField val DECLARATION_NAME_WITH_KIND = Renderer<DeclarationDescriptor> {
|
||||
val declarationKindWithSpace = when (it) {
|
||||
is PackageFragmentDescriptor -> "package "
|
||||
|
||||
@@ -23,12 +23,12 @@ public class B: <error descr="[INVISIBLE_MEMBER] Cannot access '<init>': it is '
|
||||
fun accessA(<warning descr="[UNUSED_PARAMETER] Parameter 'a' is never used">a</warning>: A) {}
|
||||
|
||||
fun f() {
|
||||
<error descr="[INVISIBLE_MEMBER] Cannot access 'pri': it is 'invisible_fake' in 'B'">pri</error>()
|
||||
<error descr="[INVISIBLE_MEMBER] Cannot access 'pri': it is 'invisible (private in a supertype)' in 'B'">pri</error>()
|
||||
|
||||
pro()
|
||||
|
||||
pub()
|
||||
|
||||
<error descr="[INVISIBLE_MEMBER] Cannot access 'int': it is 'invisible_fake' in 'B'">int</error>()
|
||||
<error descr="[INVISIBLE_MEMBER] Cannot access 'int': it is 'invisible (private in a supertype)' in 'B'">int</error>()
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
// ERROR: Cannot access 'p': it is 'invisible_fake' in 'A'
|
||||
// ERROR: Cannot access 'p': it is 'invisible (private in a supertype)' in 'A'
|
||||
enum class E private constructor(private val p: Int) {
|
||||
A(1) {
|
||||
override fun bar() {
|
||||
@@ -15,4 +15,4 @@ enum class E private constructor(private val p: Int) {
|
||||
}
|
||||
|
||||
internal abstract fun bar()
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -7,4 +7,4 @@ Cannot access 'InternalClass1': it is 'internal' in 'test' at line 8, column 36
|
||||
Cannot access 'InternalClass2': it is 'internal' in 'test' at line 19, column 15
|
||||
Cannot access 'InternalClassAnnotation': it is 'internal' in 'test' at line 10, column 2
|
||||
Cannot access 'InternalFileAnnotation': it is 'internal' in 'test' at line 1, column 7
|
||||
Cannot access 'member': it is 'invisible_fake' in 'ClassAA1' at line 27, column 25
|
||||
Cannot access 'member': it is 'invisible (private in a supertype)' in 'ClassAA1' at line 27, column 25
|
||||
@@ -5,4 +5,4 @@ Cannot access 'InternalClass1': it is 'internal' in 'test' at line 5, column 13
|
||||
Cannot access 'InternalClass1': it is 'internal' in 'test' at line 8, column 36
|
||||
Cannot access 'InternalClassAnnotation': it is 'internal' in 'test' at line 10, column 2
|
||||
Cannot access 'InternalTestAnnotation': it is 'internal' in 'test' at line 1, column 7
|
||||
Cannot access 'member': it is 'invisible_fake' in 'ClassAA1' at line 27, column 25
|
||||
Cannot access 'member': it is 'invisible (private in a supertype)' in 'ClassAA1' at line 27, column 25
|
||||
Vendored
+1
-1
@@ -38,7 +38,7 @@ Cannot access 'A': it is 'private' in file
|
||||
Cannot access 'A': it is 'private' in file
|
||||
Cannot access 'A': it is 'private' in file
|
||||
Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type Any?
|
||||
Cannot access 'x': it is 'invisible_fake' in 'B'
|
||||
Cannot access 'x': it is 'invisible (private in a supertype)' in 'B'
|
||||
Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type Any?
|
||||
|
||||
================ Step #2 =================
|
||||
|
||||
Reference in New Issue
Block a user