Fix "cannot override invisible member" diagnostic message

Fix "cannot has", delete "in class ..." as it's already present in the message
(function ... defined in class ...)
This commit is contained in:
Alexander Udalov
2014-04-17 18:51:40 +04:00
parent 1deb55bfde
commit 72dfca1698
6 changed files with 21 additions and 5 deletions
@@ -211,8 +211,8 @@ public interface Errors {
DiagnosticFactory3<PsiNameIdentifierOwner, CallableMemberDescriptor, CallableMemberDescriptor, DeclarationDescriptor> VIRTUAL_MEMBER_HIDDEN =
DiagnosticFactory3.create(ERROR, NAMED_ELEMENT);
DiagnosticFactory3<JetModifierListOwner, CallableMemberDescriptor, CallableDescriptor, DeclarationDescriptor> CANNOT_OVERRIDE_INVISIBLE_MEMBER =
DiagnosticFactory3.create(ERROR, OVERRIDE_MODIFIER);
DiagnosticFactory2<JetModifierListOwner, CallableMemberDescriptor, CallableDescriptor> CANNOT_OVERRIDE_INVISIBLE_MEMBER =
DiagnosticFactory2.create(ERROR, OVERRIDE_MODIFIER);
DiagnosticFactory2<JetAnnotationEntry, CallableMemberDescriptor, DeclarationDescriptor> DATA_CLASS_OVERRIDE_CONFLICT =
DiagnosticFactory2.create(ERROR);
@@ -158,8 +158,7 @@ public class DefaultErrorMessages {
MAP.put(DATA_CLASS_OVERRIDE_CONFLICT, "Function ''{0}'' generated for the data class conflicts with member of supertype ''{1}''", NAME, NAME);
MAP.put(CANNOT_OVERRIDE_INVISIBLE_MEMBER, "''{0}'' cannot has no access to ''{1}'' in class {2}, so it cannot override it",
TEXT, TEXT, TEXT);
MAP.put(CANNOT_OVERRIDE_INVISIBLE_MEMBER, "''{0}'' has no access to ''{1}'', so it cannot override it", TEXT, TEXT);
MAP.put(CANNOT_INFER_VISIBILITY, "Cannot infer visibility. Please specify it explicitly");
MAP.put(ENUM_ENTRY_SHOULD_BE_INITIALIZED, "Missing delegation specifier ''{0}''", NAME);
@@ -592,7 +592,7 @@ public class OverrideResolver {
@Override
public void cannotOverrideInvisibleMember(@NotNull CallableMemberDescriptor invisibleOverridden) {
trace.report(CANNOT_OVERRIDE_INVISIBLE_MEMBER.on(member, declared, invisibleOverridden, invisibleOverridden.getContainingDeclaration()));
trace.report(CANNOT_OVERRIDE_INVISIBLE_MEMBER.on(member, declared, invisibleOverridden));
}
@Override
@@ -0,0 +1,10 @@
// !DIAGNOSTICS_NUMBER: 1
// !DIAGNOSTICS: CANNOT_OVERRIDE_INVISIBLE_MEMBER
open class A {
private open fun foo() {}
}
class B : A() {
override fun foo() {}
}
@@ -0,0 +1,2 @@
<!-- cannotOverrideInvisibleMember1 -->
'internal open fun foo(): kotlin.Unit defined in B' has no access to 'private open fun foo(): kotlin.Unit defined in A', so it cannot override it
@@ -41,6 +41,11 @@ public class DiagnosticMessageTestGenerated extends AbstractDiagnosticMessageTes
doTest("idea/testData/diagnosticMessage/assignedButNeverAccessedVariable.kt");
}
@TestMetadata("cannotOverrideInvisibleMember.kt")
public void testCannotOverrideInvisibleMember() throws Exception {
doTest("idea/testData/diagnosticMessage/cannotOverrideInvisibleMember.kt");
}
@TestMetadata("conflictingOverloadsClass.kt")
public void testConflictingOverloadsClass() throws Exception {
doTest("idea/testData/diagnosticMessage/conflictingOverloadsClass.kt");