fun foo() { when (a) { a.foo -> a a.foo() -> a a.foo -> a a.foo(a) -> a a.foo(a, d) -> a a.{bar} -> a a.{!bar} -> a a.{ -> !bar} -> a else -> a } }