Fix PROTECTED_CONSTRUCTOR_NOT_IN_SUPER_CALL diagnostic in new inference

This commit is contained in:
Dmitriy Novozhilov
2019-01-18 14:40:17 +03:00
parent 090c2998d2
commit 2da3366a47
4 changed files with 7 additions and 7 deletions
@@ -55,7 +55,7 @@ object ProtectedConstructorCallChecker : CallChecker {
// And without ProtectedConstructorCallChecker such calls would be allowed only because they are performed within subclass
// of constructor owner
@Suppress("DEPRECATION")
if (Visibilities.findInvisibleMember(Visibilities.FALSE_IF_PROTECTED, descriptor, scopeOwner) == actualConstructor) {
if (Visibilities.findInvisibleMember(Visibilities.FALSE_IF_PROTECTED, descriptor, scopeOwner) == actualConstructor.original) {
context.trace.report(Errors.PROTECTED_CONSTRUCTOR_NOT_IN_SUPER_CALL.on(reportOn, descriptor))
}
}
+1 -1
View File
@@ -6,5 +6,5 @@ open class Foo protected constructor()
inline fun foo(f: () -> Unit) = object: Foo() {}
class A : Foo() {
inline fun foo(f: () -> Unit) = <!OI;PROTECTED_CONSTRUCTOR_NOT_IN_SUPER_CALL!>Foo<!>()
inline fun foo(f: () -> Unit) = <!PROTECTED_CONSTRUCTOR_NOT_IN_SUPER_CALL!>Foo<!>()
}
@@ -8,14 +8,14 @@ open class A protected constructor(x: Int) {
class B4 : A(1) {
init {
<!OI;PROTECTED_CONSTRUCTOR_NOT_IN_SUPER_CALL!>A<!>()
<!OI;PROTECTED_CONSTRUCTOR_NOT_IN_SUPER_CALL!>A<!>(1)
<!PROTECTED_CONSTRUCTOR_NOT_IN_SUPER_CALL!>A<!>()
<!PROTECTED_CONSTRUCTOR_NOT_IN_SUPER_CALL!>A<!>(1)
A(5.0)
}
fun foo() {
<!OI;PROTECTED_CONSTRUCTOR_NOT_IN_SUPER_CALL!>A<!>()
<!OI;PROTECTED_CONSTRUCTOR_NOT_IN_SUPER_CALL!>A<!>(1)
<!PROTECTED_CONSTRUCTOR_NOT_IN_SUPER_CALL!>A<!>()
<!PROTECTED_CONSTRUCTOR_NOT_IN_SUPER_CALL!>A<!>(1)
A(5.0)
object : A() {}
@@ -23,7 +23,7 @@ class MyDerived : MyClass(1.0) {
val test4 = <!INVISIBLE_MEMBER!>MyAlias<!>(1)
val test4a = <!INVISIBLE_MEMBER!>MyClass<!>(1)
val test5 = <!PROTECTED_CONSTRUCTOR_NOT_IN_SUPER_CALL!>MyAlias<!>("")
val test5a = <!OI;PROTECTED_CONSTRUCTOR_NOT_IN_SUPER_CALL!>MyClass<!>("")
val test5a = <!PROTECTED_CONSTRUCTOR_NOT_IN_SUPER_CALL!>MyClass<!>("")
val test6 = MyAlias(1.0)
val test6a = MyClass(1.0)
}