blob: 723c5b259b27814081d48f8b35646c68d32811dc [file]
// RUN_PIPELINE_TILL: CODEGEN
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 */