FILE: valueOfOrNull.kt public final enum class SomeEnum : R|kotlin/Enum| { private constructor(): R|SomeEnum| { super|>() } public final static enum entry ENTRY: R|SomeEnum| public final static fun values(): R|kotlin/Array| { } public final static fun valueOf(value: R|kotlin/String|): R|SomeEnum| { } public final static val entries: R|kotlin/enums/EnumEntries| public get(): R|kotlin/enums/EnumEntries| } public final fun foo(s: R|kotlin/String?|): R|kotlin/Unit| { lval result: R|SomeEnum| = R|/s|?.{ $subj$.R|kotlin/let|( = let@fun (it: R|kotlin/String|): R|SomeEnum?| { ^ R|/valueOfOrNull|(R|/it|) } ) } ?: Q|SomeEnum|.R|/SomeEnum.ENTRY| lval result2: R|SomeEnum| = R|/s|?.{ $subj$.R|kotlin/let|( = let@fun (it: R|kotlin/String|): R|SomeEnum?| { ^ R|/valueOfOrNull|(R|/it|) } ) } ?: Q|SomeEnum|.R|/SomeEnum.ENTRY| lval result3: R|SomeEnum?| = when () { ==(R|/s|, Null(null)) -> { Q|SomeEnum|.R|/SomeEnum.ENTRY| } else -> { R|/valueOfOrNull|(R|/s|) } } lval result4: R|SomeEnum?| = when () { ==(R|/s|, Null(null)) -> { Q|SomeEnum|.R|/SomeEnum.ENTRY| } else -> { R|/s|.R|kotlin/let|( = let@fun (it: R|kotlin/String|): R|SomeEnum?| { ^ R|/valueOfOrNull|(R|/it|) } ) } } } public final inline fun |> valueOfOrNull(value: R|kotlin/String|): R|E?| { { lval : R|kotlin/collections/Iterator| = R|kotlin/enumValues|().R|SubstitutionOverride|>|() while(R|/|.R|SubstitutionOverride|()) { lval enumValue: R|E| = R|/|.R|SubstitutionOverride|() { when () { ==(R|/enumValue|.R|SubstitutionOverride|, R|/value|) -> { ^valueOfOrNull R|/enumValue| } } } } } ^valueOfOrNull Null(null) }