Merge branch 'master' of ssh://git.labs.intellij.net/jet
This commit is contained in:
@@ -17,7 +17,7 @@ class C() : B() {
|
||||
<!VARIABLE_EXPECTED!>getInt()<!> = 12
|
||||
}
|
||||
|
||||
fun foo(c: C) {
|
||||
fun bar(c: C) {
|
||||
<!VARIABLE_EXPECTED!>this<!> = c //should be an error
|
||||
}
|
||||
}
|
||||
@@ -126,4 +126,4 @@ fun Array<Int>.checkThis() {
|
||||
|
||||
abstract class Ab {
|
||||
abstract fun getArray() : Array<Int>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +1,20 @@
|
||||
class N() : java.util.ArrayList<String>() {
|
||||
override fun add(el: String) : Boolean {
|
||||
super.add(el)
|
||||
return super.add(el + el)
|
||||
import java.util.ArrayList
|
||||
trait Tr {
|
||||
fun extra() : String = "_"
|
||||
}
|
||||
|
||||
class N() : ArrayList<Any>(), Tr {
|
||||
override fun add(el: Any) : Boolean {
|
||||
super<ArrayList>.add(el)
|
||||
return super<ArrayList>.add(el.toString() + super<Tr>.extra() + el + extra())
|
||||
}
|
||||
|
||||
override fun extra() : String = super<Tr>.extra() + super<Tr>.extra()
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val n = N()
|
||||
n.add("239")
|
||||
if (n.get(0) == "239" && n.get(1) == "239239") return "OK";
|
||||
if (n.get(0) == "239" && n.get(1) == "239_239__") return "OK";
|
||||
return "fail";
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
trait BK {
|
||||
fun x() : Int = 50
|
||||
}
|
||||
|
||||
trait K : BK {
|
||||
override fun x() : Int = super.x() * 2
|
||||
}
|
||||
|
||||
open class M() {
|
||||
open fun x() : Int = 10
|
||||
|
||||
open var y = 500
|
||||
}
|
||||
|
||||
open class N() : M(), K {
|
||||
|
||||
override fun x() : Int = 20
|
||||
|
||||
override var y = 200
|
||||
|
||||
open class C() : K {
|
||||
fun test1() = x()
|
||||
fun test2() = super<M>@N.x()
|
||||
fun test3() = super<K>@N.x()
|
||||
fun test4() = super<K>.x()
|
||||
fun test5() = y
|
||||
fun test6() : Int {
|
||||
super<M>@N.y += 200
|
||||
return super<M>@N.y
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
if (N().C().test1() != 100) return "test1 fail";
|
||||
if (N().C().test2() != 10) return "test2 fail";
|
||||
if (N().C().test3() != 100) return "test3 fail";
|
||||
if (N().C().test4() != 100) return "test4 fail";
|
||||
if (N().C().test5() != 200) return "test5 fail";
|
||||
if (N().C().test6() != 700) return "test6 fail";
|
||||
return "OK";
|
||||
}
|
||||
Reference in New Issue
Block a user