| /* |
| * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license |
| * that can be found in the LICENSE file. |
| */ |
| // WITH_STDLIB |
| |
| import kotlin.test.* |
| |
| // vtable call + interface call |
| interface Z { |
| fun foo(): Any |
| } |
| |
| interface Y { |
| fun foo(): Int |
| } |
| |
| open class A { |
| fun foo(): Int = 42 |
| } |
| |
| open class B: A(), Z, Y |
| |
| fun box(): String { |
| val z: Z = B() |
| val y: Y = z as Y |
| val res1 = z.foo().toString() |
| if (res1 != "42") return "FAIL 1: $res1" |
| val res2 = y.foo().toString() |
| if (res2 != "42") return "FAIL 2: $res2" |
| |
| return "OK" |
| } |