7333589663
Before this commit, we added Enum.entries only in case when LanguageFeature.EnumEntries was ON (with an exception in K1/Java case). In this commit we add Enum.entries unconditionally, and in case the language feature is OFF we filter them out during tower resolve.
66 lines
2.8 KiB
Plaintext
Vendored
66 lines
2.8 KiB
Plaintext
Vendored
FILE: valueOfOrNull.kt
|
|
public final enum class SomeEnum : R|kotlin/Enum<SomeEnum>| {
|
|
private constructor(): R|SomeEnum| {
|
|
super<R|kotlin/Enum<SomeEnum>|>()
|
|
}
|
|
|
|
public final static enum entry ENTRY: R|SomeEnum|
|
|
public final static fun values(): R|kotlin/Array<SomeEnum>| {
|
|
}
|
|
|
|
public final static fun valueOf(value: R|kotlin/String|): R|SomeEnum| {
|
|
}
|
|
|
|
public final static val entries: R|kotlin/enums/EnumEntries<SomeEnum>|
|
|
public get(): R|kotlin/enums/EnumEntries<SomeEnum>|
|
|
|
|
}
|
|
public final fun foo(s: R|kotlin/String?|): R|kotlin/Unit| {
|
|
lval result: R|SomeEnum| = R|<local>/s|?.{ $subj$.R|kotlin/let|<R|kotlin/String|, R|SomeEnum?|>(<L> = let@fun <anonymous>(it: R|kotlin/String|): R|SomeEnum?| <inline=Inline, kind=EXACTLY_ONCE> {
|
|
^ R|/valueOfOrNull|<R|SomeEnum|>(R|<local>/it|)
|
|
}
|
|
) } ?: Q|SomeEnum|.R|/SomeEnum.ENTRY|
|
|
lval result2: R|SomeEnum| = R|<local>/s|?.{ $subj$.R|kotlin/let|<R|kotlin/String|, R|SomeEnum?|>(<L> = let@fun <anonymous>(it: R|kotlin/String|): R|SomeEnum?| <inline=Inline, kind=EXACTLY_ONCE> {
|
|
^ R|/valueOfOrNull|<R|SomeEnum|>(R|<local>/it|)
|
|
}
|
|
) } ?: Q|SomeEnum|.R|/SomeEnum.ENTRY|
|
|
lval result3: R|SomeEnum?| = when () {
|
|
==(R|<local>/s|, Null(null)) -> {
|
|
Q|SomeEnum|.R|/SomeEnum.ENTRY|
|
|
}
|
|
else -> {
|
|
R|/valueOfOrNull|<R|SomeEnum|>(R|<local>/s|)
|
|
}
|
|
}
|
|
|
|
lval result4: R|SomeEnum?| = when () {
|
|
==(R|<local>/s|, Null(null)) -> {
|
|
Q|SomeEnum|.R|/SomeEnum.ENTRY|
|
|
}
|
|
else -> {
|
|
R|<local>/s|.R|kotlin/let|<R|kotlin/String|, R|SomeEnum?|>(<L> = let@fun <anonymous>(it: R|kotlin/String|): R|SomeEnum?| <inline=Inline, kind=EXACTLY_ONCE> {
|
|
^ R|/valueOfOrNull|<R|SomeEnum|>(R|<local>/it|)
|
|
}
|
|
)
|
|
}
|
|
}
|
|
|
|
}
|
|
public final inline fun <reified E : R|kotlin/Enum<E>|> valueOfOrNull(value: R|kotlin/String|): R|E?| {
|
|
{
|
|
lval <iterator>: R|kotlin/collections/Iterator<E>| = R|kotlin/enumValues|<R|E|>().R|SubstitutionOverride<kotlin/Array.iterator: R|kotlin/collections/Iterator<E>|>|()
|
|
while(R|<local>/<iterator>|.R|SubstitutionOverride<kotlin/collections/Iterator.hasNext: R|kotlin/Boolean|>|()) {
|
|
lval enumValue: R|E| = R|<local>/<iterator>|.R|SubstitutionOverride<kotlin/collections/Iterator.next: R|E|>|()
|
|
when () {
|
|
==(R|<local>/enumValue|.R|SubstitutionOverride<kotlin/Enum.name: R|kotlin/String|>|, R|<local>/value|) -> {
|
|
^valueOfOrNull R|<local>/enumValue|
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
^valueOfOrNull Null(null)
|
|
}
|