Report VIRTUAL_MEMBER_HIDDEN on declaration name

#KT-13749 Fixed
This commit is contained in:
Dmitry Petrov
2017-05-25 14:57:26 +03:00
parent 96f7a2d38a
commit 9908212c99
12 changed files with 23 additions and 23 deletions
@@ -376,7 +376,7 @@ public interface Errors {
DiagnosticFactory1<KtModifierListOwner, CallableMemberDescriptor> NOTHING_TO_OVERRIDE = DiagnosticFactory1.create(ERROR, OVERRIDE_MODIFIER);
DiagnosticFactory3<KtNamedDeclaration, CallableMemberDescriptor, CallableMemberDescriptor, DeclarationDescriptor> VIRTUAL_MEMBER_HIDDEN =
DiagnosticFactory3.create(ERROR, DECLARATION_SIGNATURE);
DiagnosticFactory3.create(ERROR, DECLARATION_NAME);
DiagnosticFactory2<KtModifierListOwner, CallableMemberDescriptor, CallableDescriptor> CANNOT_OVERRIDE_INVISIBLE_MEMBER =
DiagnosticFactory2.create(ERROR, OVERRIDE_MODIFIER);
@@ -1,6 +1,6 @@
enum class E {
ENTRY;
<!VIRTUAL_MEMBER_HIDDEN!>fun getDeclaringClass()<!> {}
<!VIRTUAL_MEMBER_HIDDEN!>fun finalize()<!> {}
fun <!VIRTUAL_MEMBER_HIDDEN!>getDeclaringClass<!>() {}
fun <!VIRTUAL_MEMBER_HIDDEN!>finalize<!>() {}
}
@@ -1,5 +1,5 @@
interface IA {
<!VIRTUAL_MEMBER_HIDDEN!>fun toString(): String<!> = "IB"
fun <!VIRTUAL_MEMBER_HIDDEN!>toString<!>(): String = "IB"
override fun equals(other: Any?): Boolean
}
+2 -2
View File
@@ -23,8 +23,8 @@ open class MyGenericClass<T>(t : T) : MyTrait<T>, MyAbstractClass<T>(), MyProps<
class MyChildClass() : MyGenericClass<Int>(1) {}
class MyChildClass1<T>(t : T) : MyGenericClass<T>(t) {}
class MyChildClass2<T>(t : T) : MyGenericClass<T>(t) {
<!VIRTUAL_MEMBER_HIDDEN!>fun foo(t: T)<!> = t
<!VIRTUAL_MEMBER_HIDDEN!>val pr : T<!> = t
fun <!VIRTUAL_MEMBER_HIDDEN!>foo<!>(t: T) = t
val <!VIRTUAL_MEMBER_HIDDEN!>pr<!> : T = t
override fun bar(t: T) = t
override val p : T = t
}
@@ -7,9 +7,9 @@ interface Y {
}
class Z : X, Y {
<!VIRTUAL_MEMBER_HIDDEN!>fun foo(a : Int)<!> {}
fun <!VIRTUAL_MEMBER_HIDDEN!>foo<!>(a : Int) {}
}
object ZO : X, Y {
<!VIRTUAL_MEMBER_HIDDEN!>fun foo(a : Int)<!> {}
fun <!VIRTUAL_MEMBER_HIDDEN!>foo<!>(a : Int) {}
}
@@ -36,15 +36,15 @@ class MyChildClass() : MyClass() {}
}
<!ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED!>class MyIllegalClass4<!>() : MyTrait, MyAbstractClass() {
<!VIRTUAL_MEMBER_HIDDEN!>fun foo()<!> {}
<!VIRTUAL_MEMBER_HIDDEN, MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>val pr : Unit<!>
fun <!VIRTUAL_MEMBER_HIDDEN!>foo<!>() {}
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>val <!VIRTUAL_MEMBER_HIDDEN!>pr<!> : Unit<!>
<!NOTHING_TO_OVERRIDE!>override<!> fun other() {}
<!NOTHING_TO_OVERRIDE!>override<!> val otherPr : Int = 1
}
class MyChildClass1() : MyClass() {
<!VIRTUAL_MEMBER_HIDDEN!>fun foo()<!> {}
<!VIRTUAL_MEMBER_HIDDEN!>val pr : Unit<!> = Unit
fun <!VIRTUAL_MEMBER_HIDDEN!>foo<!>() {}
val <!VIRTUAL_MEMBER_HIDDEN!>pr<!> : Unit = Unit
override fun bar() {}
override val prr : Unit = Unit
}
@@ -25,7 +25,7 @@ fun test() {
}
class E: A() {
<!VIRTUAL_MEMBER_HIDDEN!>fun foo()<!> = A()
fun <!VIRTUAL_MEMBER_HIDDEN!>foo<!>() = A()
init {
val a: A = foo() // todo: discuss
@@ -1,7 +1,7 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER -PLATFORM_CLASS_MAPPED_TO_KOTLIN
abstract class Test1 : Map<String, String> {
<!VIRTUAL_MEMBER_HIDDEN!>fun containsKey(key: String): Boolean<!> = TODO()
fun <!VIRTUAL_MEMBER_HIDDEN!>containsKey<!>(key: String): Boolean = TODO()
fun getOrDefault(key: String, defaultValue: String): String = TODO()
}
@@ -11,7 +11,7 @@ abstract class Test2 : MutableMap<String, String> {
}
abstract class Test3 : java.util.AbstractMap<String, String>() {
<!VIRTUAL_MEMBER_HIDDEN!>fun containsKey(key: String): Boolean<!> = TODO()
fun <!VIRTUAL_MEMBER_HIDDEN!>containsKey<!>(key: String): Boolean = TODO()
fun replace(key: String, value: String): String? = TODO()
}
@@ -7,7 +7,7 @@
open class WithDelegation(val m: Map<String, String>) : Map<String, String> by m
class TestNoDelegationToDefaultMethods(m: Map<String, String>): WithDelegation(m) {
<!VIRTUAL_MEMBER_HIDDEN!>fun containsKey(key: String): Boolean<!> = TODO()
fun <!VIRTUAL_MEMBER_HIDDEN!>containsKey<!>(key: String): Boolean = TODO()
fun getOrDefault(key: String, defaultValue: String): String = TODO()
@@ -23,10 +23,10 @@ interface IBaseWithKotlinDeclaration : Map<String, String> {
abstract class WithDelegation2(val m: Map<String, String>) : Map<String, String> by m, IBaseWithKotlinDeclaration
abstract class TestNoDelegationToDefaultMethods2(m: Map<String, String>): WithDelegation2(m) {
<!VIRTUAL_MEMBER_HIDDEN!>fun containsKey(key: String): Boolean<!> = TODO()
fun <!VIRTUAL_MEMBER_HIDDEN!>containsKey<!>(key: String): Boolean = TODO()
fun getOrDefault(key: String, defaultValue: String): String = TODO()
// VIRTUAL_MEMBER_HIDDEN: hides member declaration inherited from a Kotlin interface
<!VIRTUAL_MEMBER_HIDDEN!>fun replace(key: String, value: String): String?<!> = TODO()
fun <!VIRTUAL_MEMBER_HIDDEN!>replace<!>(key: String, value: String): String? = TODO()
}
@@ -6,10 +6,10 @@ interface IBaseWithKotlinDeclaration : Map<String, String> {
interface TestDerivedInterfaceHidingWithKotlinDeclaration : IBaseWithKotlinDeclaration {
// VIRTUAL_MEMBER_HIDDEN: hides member declaration inherited from a Kotlin interface
<!VIRTUAL_MEMBER_HIDDEN!>fun replace(key: String, value: String): String?<!>
fun <!VIRTUAL_MEMBER_HIDDEN!>replace<!>(key: String, value: String): String?
}
interface TestDerivedInterfaceDefaultWithKotlinDeclaration : IBaseWithKotlinDeclaration {
// VIRTUAL_MEMBER_HIDDEN: hides member declaration inherited from a Kotlin interface
<!VIRTUAL_MEMBER_HIDDEN!>fun replace(key: String, value: String): String?<!> = TODO()
fun <!VIRTUAL_MEMBER_HIDDEN!>replace<!>(key: String, value: String): String? = TODO()
}
@@ -1,8 +1,8 @@
enum class TestEnum {
ENTRY;
<!VIRTUAL_MEMBER_HIDDEN!>fun getDeclaringClass()<!> {}
<!VIRTUAL_MEMBER_HIDDEN!>fun finalize()<!> {}
fun <!VIRTUAL_MEMBER_HIDDEN!>getDeclaringClass<!>() {}
fun <!VIRTUAL_MEMBER_HIDDEN!>finalize<!>() {}
}
class TestFinalize {
@@ -17,7 +17,7 @@ class A1 : java.util.ArrayList<String>() {
fun stream(): java.util.stream.Stream<String> = super.<!UNRESOLVED_REFERENCE!>stream<!>()
// `sort` is defined in ArrayList, so it was impossible to declare it in 1.0 without an 'override' keyword
<!VIRTUAL_MEMBER_HIDDEN!>fun sort(c: Comparator<in String>?)<!> {
fun <!VIRTUAL_MEMBER_HIDDEN!>sort<!>(c: Comparator<in String>?) {
super.sort(c)
}
}