| // LANGUAGE: +ContextParameters | |
| class Box<E>(val x: E) | |
| class A<X, Y : Number> { | |
| context(box: Box<X>, y: Y) | |
| fun foo(): String = box.x.toString() + y.toString() | |
| context(box: Box<X>, y: Y) | |
| val p1: String get() = box.x.toString() + y.toString() | |
| } | |
| context(box: Box<X>, y: Y) | |
| fun <X, Y : Number> bar(): String = box.x.toString() + y.toString() | |
| fun box(): String { | |
| return with(Box("OK")) { | |
| with(56) { | |
| val a = A<String, Int>() | |
| if (a.foo() != "OK56") return "fail 1" | |
| if (a.p1 != "OK56") return "fail 2" | |
| val b = bar<String, Int>() | |
| if (b != "OK56") return "fail 3" | |
| return "OK" | |
| } | |
| } | |
| } |