/* * 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.* interface A { fun foo(): T } class B : A { override fun foo() = "OK" } class C(a: A) : A by a fun box(): String { val c = C(B()) val a: A = c val cfoo = c.foo() if (cfoo != "OK") return "FAIL cfoo: $cfoo" val afoo = a.foo() if (afoo != "OK") return "FAIL afoo: $afoo" return "OK" }