blob: 9a0f9d2d0344390202373f456ad0c9a2e9efb115 [file] [log] [blame]
public inline fun <T, R> with(receiver: T, block: T.() -> R): R = receiver.block()
fun aaGlobalFun(){}
val aaGlobalProp = 1
open class Base {
fun aaBaseFun(){}
val aaBaseProp = 1
}
class Derived : Base(), Common {
fun aaDerivedFun(){}
val aaDerivedProp = 1
fun foo(y: Y) {
val aaLocalVal = 1
fun aaLocalFun(){}
with (y) {
if (this is Z1 && this is Z2) {
aa<caret>
}
}
}
}
interface X {
fun aaX()
}
interface Y : X {
fun aaY()
}
interface Z1 : Common {
fun aaaZ1()
fun aabZ1()
}
interface Z2 {
fun aaaZ2()
fun aabZ2()
}
interface Common {
fun aazCommon()
}
fun Any.aaAnyExtensionFun(){}
fun Derived.aaExtensionFun(){}
val Any.aaAnyExtensionProp: Int get() = 1
val Derived.aaExtensionProp: Int get() = 1
fun <T> T.aaTypeParamExt(){}
fun X.aaXExt(){}
fun Y.aaYExt(){}
// ORDER: aaLocalVal
// ORDER: aaLocalFun
// ORDER: aaY
// ORDER: aaaZ1
// ORDER: aaaZ2
// ORDER: aabZ1
// ORDER: aabZ2
// ORDER: aaX
// ORDER: aaYExt
// ORDER: aaXExt
// ORDER: aaDerivedProp
// ORDER: aaDerivedFun
// ORDER: aaBaseProp
// ORDER: aaBaseFun
// ORDER: aaExtensionProp
// ORDER: aaExtensionFun
// ORDER: aazCommon
// ORDER: aaAnyExtensionProp
// ORDER: aaAnyExtensionFun
// ORDER: aaGlobalProp
// ORDER: aaGlobalFun
// ORDER: aaTypeParamExt