// !LANGUAGE: +VariableDeclarationInWhenSubject var effectCount = 0 fun withSideEffect(): Any { effectCount++ return 42 } fun box(): String { when (val y = withSideEffect()) { 1 -> throw AssertionError() "" -> throw AssertionError() is String -> throw AssertionError() 42 -> {} } if (effectCount != 1) throw AssertionError("effectCount=$effectCount") return "OK" }