Assertions when approximating platform types in delegation by expression
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
public class Delegation {
|
||||
public static class ReturnNull {
|
||||
public String foo() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
trait Tr {
|
||||
fun foo(): String
|
||||
}
|
||||
|
||||
class DelegateTo : Delegation.ReturnNull(), Tr {
|
||||
override fun foo() = super<Delegation.ReturnNull>.foo()
|
||||
}
|
||||
|
||||
class DelegateFrom : Tr by DelegateTo() {
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
try {
|
||||
DelegateFrom().foo()
|
||||
return "Fail: should have been an exception"
|
||||
}
|
||||
catch(e: IllegalStateException) {
|
||||
println(e.getMessage())
|
||||
return "OK"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user