blob: c5613b423c31aa645536a5a5c4b4d4669e2014d6 [file]
// RUN_PIPELINE_TILL: BACKEND
enum class SomeEnum {
ENTRY;
}
fun foo(s: String?) {
val result = s?.let { valueOfOrNull(it) } ?: SomeEnum.ENTRY
val result2 = s?.let { valueOfOrNull<SomeEnum>(it) } ?: SomeEnum.ENTRY
val result3 = if (s == null) SomeEnum.ENTRY else valueOfOrNull(s)
val result4 = if (s == null) SomeEnum.ENTRY else s.let { valueOfOrNull(it) }
}
inline fun <reified E : Enum<E>> valueOfOrNull(value: String): E? {
for (enumValue in enumValues<E>()) {
if (enumValue.name == value) {
return enumValue
}
}
return null
}
/* GENERATED_FIR_TAGS: elvisExpression, enumDeclaration, enumEntry, equalityExpression, forLoop, functionDeclaration,
ifExpression, inline, lambdaLiteral, localProperty, nullableType, propertyDeclaration, reified, safeCall, smartcast,
typeConstraint, typeParameter */