// WITH_STDLIB // SKIP_TXT // !DIAGNOSTICS: -CAST_NEVER_SUCCEEDS -UNUSED_LAMBDA_EXPRESSION -UNCHECKED_CAST -UNUSED_PARAMETER -UNUSED_VARIABLE -OPT_IN_USAGE_ERROR -UNUSED_EXPRESSION import kotlin.experimental.ExperimentalTypeInference interface FlowCollector {} fun flow(block: suspend FlowCollector.() -> Unit) = Flow(block) class Flow(private val block: suspend FlowCollector.() -> Unit) fun select(vararg x: R) = x[0] fun poll0(): Flow { return flow { val inv = select({}, {}) inv() } } fun poll01(): Flow { return flow { val inv = select({ 1 }, { 1f }) inv() } } fun poll1(flag: Boolean): Flow { return flow { val inv = if (flag) { {} } else { {} } inv() } } fun poll11(flag: Boolean): Flow { return flow { val inv = if (flag) { { 1 } } else { { 1f } } inv() } } fun poll12(flag: Boolean): Flow { return flow { val inv = if (flag) ({ }) else ({ }) inv() } } fun poll13(flag: Boolean): Flow { return flow { val inv = if (flag) ({ 1 }) else ({ 1f }) inv() } } fun poll2(flag: Boolean): Flow { return flow { val inv = when (flag) { true -> {{}} else -> {{}} } inv() } } fun poll21(flag: Boolean): Flow { return flow { val inv = when (flag) { true -> {{1}} else -> {{1f}} } inv() } } fun poll22(flag: Boolean): Flow { return flow { val inv = when (flag) { true -> ({}) else -> ({}) } inv() } } fun poll23(flag: Boolean): Flow { return flow { val inv = when (flag) { true -> ({1}) else -> ({1f}) } inv() } } fun poll4(): Flow { return flow { val inv = try { {} } finally { {} } inv() } } fun poll41(): Flow { return flow { val inv = try { {1} } finally { {1f} } inv() } } fun poll42(): Flow { return flow { val inv = try { ({1}) } finally { ({1f}) } inv() } } fun poll43(): Flow { return flow { val inv = try { ({}) } finally { ({}) } inv() } } fun poll5(): Flow { return flow { val inv = try { {1} } catch (e: Exception) { {1f} } finally { {} } inv() } } fun poll7(): Flow { return flow { val inv = {}!! inv() } } fun poll71(): Flow { return flow { val inv = {1f}!! inv() } } fun poll72(): Flow { return flow { val inv = {{}}!! inv() } } fun poll73(): Flow { return flow { val inv = ({})!! inv } } fun poll8(): Flow { return flow { val inv = {1} in setOf({1f}) inv() } } fun poll81(): Flow { return flow { val inv = {} in setOf({}) inv() } } fun poll82(): Flow { return flow { val inv = {{}} in setOf({{}}) inv() } } fun poll83(): Flow { return flow { val inv = {({})} in setOf({({})}) inv() } } fun poll84(): Flow { return flow { val inv = {{1}} in setOf({{1f}}) inv() } } fun poll85(): Flow { return flow { val inv = {({"1"})} in setOf({({"1f"})}) inv() } } fun poll86(): Flow { return flow { val inv = {({"1"})}!! in setOf({({"1f"})}!!) inv() } }