redrield
07/27/2018, 1:05 AMinline class
be used to make a union typegildor
07/27/2018, 3:10 AMelect
07/27/2018, 7:54 AMgildor
07/27/2018, 7:55 AMgildor
07/27/2018, 8:00 AMinline class FooOrBar(private val value: Any) {
fun fooOrNull(): Foo? = value as? Foo
fun barOrNull(): Bar? = value as? Bar
fun isFoo() = value is Foo
fun isBar() = value is Bar
}
gildor
07/27/2018, 8:03 AMgildor
07/27/2018, 8:06 AMelect
07/27/2018, 8:31 AMgildor
07/27/2018, 8:34 AMfun Foo.toFooOrBar() = FooOrBar(this)
fun Bar.toFooOrBar() = FooOrBar(this)
fun Any.toFooOrBar() = if (this is Foo || this is Bar) FooOrBar(this) else error("Wrong type $this")
gildor
07/27/2018, 8:35 AMgildor
07/27/2018, 8:37 AMgildor
07/27/2018, 8:38 AMgildor
07/27/2018, 8:39 AMelect
07/27/2018, 8:41 AMelect
07/27/2018, 8:42 AMgildor
07/27/2018, 8:42 AMgildor
07/27/2018, 8:43 AMelect
07/27/2018, 8:52 AMgildor
07/27/2018, 8:56 AMgildor
07/27/2018, 8:56 AM