Quick-fix for DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE added #KT-15966 Fixed

This commit is contained in:
Mikhail Glukhikh
2017-02-15 20:45:34 +03:00
parent b83b534374
commit 80063b6f91
17 changed files with 349 additions and 9 deletions
@@ -0,0 +1,11 @@
// "Specify override for 'foo(): Unit' explicitly" "true"
interface A {
fun foo()
}
open class B : A {
override fun foo() {}
}
class C<caret>(a: A) : B(), A by a
@@ -0,0 +1,15 @@
// "Specify override for 'foo(): Unit' explicitly" "true"
interface A {
fun foo()
}
open class B : A {
override fun foo() {}
}
class C(private val a: A) : B(), A by a {
override fun foo() {
a.foo()
}
}
@@ -0,0 +1,15 @@
// "Specify override for 'foo(): Unit' explicitly" "true"
interface A {
fun foo()
}
open class B : A {
override fun foo() {}
}
fun bar(): A = null!!
val a: A = bar()
class C<caret>() : B(), A by a
@@ -0,0 +1,19 @@
// "Specify override for 'foo(): Unit' explicitly" "true"
interface A {
fun foo()
}
open class B : A {
override fun foo() {}
}
fun bar(): A = null!!
val a: A = bar()
class C() : B(), A by a {
override fun foo() {
a.foo()
}
}
@@ -0,0 +1,6 @@
// "Specify override for 'isEmpty(): Boolean' explicitly" "true"
// WITH_RUNTIME
import java.util.*
class <caret>B(f: MutableList<String>): ArrayList<String>(), MutableList<String> by f
@@ -0,0 +1,10 @@
// "Specify override for 'isEmpty(): Boolean' explicitly" "true"
// WITH_RUNTIME
import java.util.*
class B(private val f: MutableList<String>): ArrayList<String>(), MutableList<String> by f {
override fun isEmpty(): Boolean {
return f.isEmpty()
}
}
@@ -0,0 +1,10 @@
// "Specify override for 'size: Int' explicitly" "true"
// WITH_RUNTIME
import java.util.*
class <caret>B(private val f: MutableList<String>): ArrayList<String>(), MutableList<String> by f {
override fun isEmpty(): Boolean {
return f.isEmpty()
}
}
@@ -0,0 +1,13 @@
// "Specify override for 'size: Int' explicitly" "true"
// WITH_RUNTIME
import java.util.*
class B(private val f: MutableList<String>): ArrayList<String>(), MutableList<String> by f {
override fun isEmpty(): Boolean {
return f.isEmpty()
}
override val size: Int
get() = f.size
}
@@ -0,0 +1,19 @@
// "Specify override for 'foo(): Unit' explicitly" "false"
// ACTION: Convert to secondary constructor
// ACTION: Create test
// ACTION: Make primary constructor internal
// ACTION: Make primary constructor private
// ACTION: Move 'C' to separate file
// ACTION: Rename file to C.kt
interface A {
fun foo()
}
class W(val a: A)
open class B : A {
override fun foo() {}
}
class C<caret>(w: W) : B(), A by w.a
@@ -0,0 +1,13 @@
// "Specify override for 'foo(): Unit' explicitly" "true"
interface A {
fun foo()
}
open class B : A {
override fun foo() {}
}
fun bar(a: A) {
class C<caret> : B(), A by a
}
@@ -0,0 +1,17 @@
// "Specify override for 'foo(): Unit' explicitly" "true"
interface A {
fun foo()
}
open class B : A {
override fun foo() {}
}
fun bar(a: A) {
class C : B(), A by a {
override fun foo() {
a.foo()
}
}
}
@@ -0,0 +1,11 @@
// "Specify override for 'foo(): Unit' explicitly" "true"
interface A {
fun foo()
}
open class B : A {
override fun foo() {}
}
class C<caret>(val a: A) : B(), A by a
@@ -0,0 +1,15 @@
// "Specify override for 'foo(): Unit' explicitly" "true"
interface A {
fun foo()
}
open class B : A {
override fun foo() {}
}
class C(val a: A) : B(), A by a {
override fun foo() {
a.foo()
}
}