Generate RETURN instead of ARETURN if (cross)inline suspend lambda returns Unit

#KT-30073 Fixed
This commit is contained in:
Ilmir Usmanov
2019-03-12 21:14:13 +03:00
parent cc9a0041e0
commit 7956ef18b2
11 changed files with 621 additions and 21 deletions
+77 -17
View File
@@ -4,7 +4,7 @@ final class OomInReturnUnitKt$test$1 {
synthetic field data: java.lang.Object
synthetic field exception: java.lang.Throwable
inner class OomInReturnUnitKt$test$1
method <init>(p0: COROUTINES_PACKAGE.Continuation): void
method <init>(p0: kotlin.coroutines.experimental.Continuation): void
public final @org.jetbrains.annotations.Nullable method doResume(@org.jetbrains.annotations.Nullable p0: java.lang.Object, @org.jetbrains.annotations.Nullable p1: java.lang.Throwable): java.lang.Object
synthetic final method getLabel(): int
synthetic final method setLabel(p0: int): void
@@ -13,25 +13,47 @@ final class OomInReturnUnitKt$test$1 {
@kotlin.Metadata
public final class OomInReturnUnitKt {
inner class OomInReturnUnitKt$test$1
public final static @org.jetbrains.annotations.Nullable method some(@org.jetbrains.annotations.NotNull p0: COROUTINES_PACKAGE.Continuation): java.lang.Object
public final static @org.jetbrains.annotations.Nullable method test(@org.jetbrains.annotations.NotNull p0: COROUTINES_PACKAGE.Continuation): java.lang.Object
public final static @org.jetbrains.annotations.Nullable method some(@org.jetbrains.annotations.NotNull p0: kotlin.coroutines.experimental.Continuation): java.lang.Object
public final static @org.jetbrains.annotations.Nullable method test(@org.jetbrains.annotations.NotNull p0: kotlin.coroutines.experimental.Continuation): java.lang.Object
}
@kotlin.Metadata
final class helpers/CheckStateMachineContinuation$resume$1 {
public final static field INSTANCE: helpers.CheckStateMachineContinuation$resume$1
inner class helpers/CheckStateMachineContinuation$resume$1
static method <clinit>(): void
method <init>(): void
public synthetic method invoke(): java.lang.Object
public final method invoke(): void
}
@kotlin.Metadata
public final class helpers/CheckStateMachineContinuation {
public final static field INSTANCE: helpers.CheckStateMachineContinuation
inner class helpers/CheckStateMachineContinuation$resume$1
static method <clinit>(): void
private method <init>(): void
public @org.jetbrains.annotations.NotNull method getContext(): kotlin.coroutines.experimental.CoroutineContext
public method resume(@org.jetbrains.annotations.NotNull p0: kotlin.Unit): void
public synthetic method resume(p0: java.lang.Object): void
public method resumeWithException(@org.jetbrains.annotations.NotNull p0: java.lang.Throwable): void
}
@kotlin.Metadata
public abstract class helpers/ContinuationAdapter {
private final @org.jetbrains.annotations.NotNull field context: COROUTINES_PACKAGE.CoroutineContext
private final @org.jetbrains.annotations.NotNull field context: kotlin.coroutines.experimental.CoroutineContext
public method <init>(): void
public @org.jetbrains.annotations.NotNull method getContext(): COROUTINES_PACKAGE.CoroutineContext
public @org.jetbrains.annotations.NotNull method getContext(): kotlin.coroutines.experimental.CoroutineContext
}
@kotlin.Metadata
public final class helpers/CoroutineUtilKt$handleExceptionContinuation$1 {
synthetic final field $x: kotlin.jvm.functions.Function1
private final @org.jetbrains.annotations.NotNull field context: COROUTINES_PACKAGE.EmptyCoroutineContext
private final @org.jetbrains.annotations.NotNull field context: kotlin.coroutines.experimental.EmptyCoroutineContext
inner class helpers/CoroutineUtilKt$handleExceptionContinuation$1
method <init>(p0: kotlin.jvm.functions.Function1): void
public synthetic method getContext(): COROUTINES_PACKAGE.CoroutineContext
public @org.jetbrains.annotations.NotNull method getContext(): COROUTINES_PACKAGE.EmptyCoroutineContext
public synthetic method getContext(): kotlin.coroutines.experimental.CoroutineContext
public @org.jetbrains.annotations.NotNull method getContext(): kotlin.coroutines.experimental.EmptyCoroutineContext
public method resume(@org.jetbrains.annotations.Nullable p0: java.lang.Object): void
public method resumeWithException(@org.jetbrains.annotations.NotNull p0: java.lang.Throwable): void
}
@@ -39,11 +61,11 @@ public final class helpers/CoroutineUtilKt$handleExceptionContinuation$1 {
@kotlin.Metadata
public final class helpers/CoroutineUtilKt$handleResultContinuation$1 {
synthetic final field $x: kotlin.jvm.functions.Function1
private final @org.jetbrains.annotations.NotNull field context: COROUTINES_PACKAGE.EmptyCoroutineContext
private final @org.jetbrains.annotations.NotNull field context: kotlin.coroutines.experimental.EmptyCoroutineContext
inner class helpers/CoroutineUtilKt$handleResultContinuation$1
method <init>(p0: kotlin.jvm.functions.Function1): void
public synthetic method getContext(): COROUTINES_PACKAGE.CoroutineContext
public @org.jetbrains.annotations.NotNull method getContext(): COROUTINES_PACKAGE.EmptyCoroutineContext
public synthetic method getContext(): kotlin.coroutines.experimental.CoroutineContext
public @org.jetbrains.annotations.NotNull method getContext(): kotlin.coroutines.experimental.EmptyCoroutineContext
public method resume(p0: java.lang.Object): void
public method resumeWithException(@org.jetbrains.annotations.NotNull p0: java.lang.Throwable): void
}
@@ -52,8 +74,8 @@ public final class helpers/CoroutineUtilKt$handleResultContinuation$1 {
public final class helpers/CoroutineUtilKt {
inner class helpers/CoroutineUtilKt$handleExceptionContinuation$1
inner class helpers/CoroutineUtilKt$handleResultContinuation$1
public final static @org.jetbrains.annotations.NotNull method handleExceptionContinuation(@org.jetbrains.annotations.NotNull p0: kotlin.jvm.functions.Function1): COROUTINES_PACKAGE.Continuation
public final static @org.jetbrains.annotations.NotNull method handleResultContinuation(@org.jetbrains.annotations.NotNull p0: kotlin.jvm.functions.Function1): COROUTINES_PACKAGE.Continuation
public final static @org.jetbrains.annotations.NotNull method handleExceptionContinuation(@org.jetbrains.annotations.NotNull p0: kotlin.jvm.functions.Function1): kotlin.coroutines.experimental.Continuation
public final static @org.jetbrains.annotations.NotNull method handleResultContinuation(@org.jetbrains.annotations.NotNull p0: kotlin.jvm.functions.Function1): kotlin.coroutines.experimental.Continuation
}
@kotlin.Metadata
@@ -66,13 +88,51 @@ public final class helpers/EmptyContinuation$Companion {
@kotlin.Metadata
public class helpers/EmptyContinuation {
public final static field Companion: helpers.EmptyContinuation$Companion
private final @org.jetbrains.annotations.NotNull field context: COROUTINES_PACKAGE.CoroutineContext
private final @org.jetbrains.annotations.NotNull field context: kotlin.coroutines.experimental.CoroutineContext
inner class helpers/EmptyContinuation$Companion
static method <clinit>(): void
public method <init>(): void
public method <init>(@org.jetbrains.annotations.NotNull p0: COROUTINES_PACKAGE.CoroutineContext): void
public synthetic method <init>(p0: COROUTINES_PACKAGE.CoroutineContext, p1: int, p2: kotlin.jvm.internal.DefaultConstructorMarker): void
public @org.jetbrains.annotations.NotNull method getContext(): COROUTINES_PACKAGE.CoroutineContext
public method <init>(@org.jetbrains.annotations.NotNull p0: kotlin.coroutines.experimental.CoroutineContext): void
public synthetic method <init>(p0: kotlin.coroutines.experimental.CoroutineContext, p1: int, p2: kotlin.jvm.internal.DefaultConstructorMarker): void
public @org.jetbrains.annotations.NotNull method getContext(): kotlin.coroutines.experimental.CoroutineContext
public method resume(@org.jetbrains.annotations.Nullable p0: java.lang.Object): void
public method resumeWithException(@org.jetbrains.annotations.NotNull p0: java.lang.Throwable): void
}
@kotlin.Metadata
final class helpers/StateMachineChecker$proceed$1 {
public final static field INSTANCE: helpers.StateMachineChecker$proceed$1
inner class helpers/StateMachineChecker$proceed$1
static method <clinit>(): void
method <init>(): void
public synthetic method invoke(): java.lang.Object
public final method invoke(): void
}
@kotlin.Metadata
final class helpers/StateMachineChecker$suspendHere$2$1 {
synthetic final field $c: kotlin.coroutines.experimental.Continuation
inner class helpers/StateMachineChecker$suspendHere$2$1
method <init>(p0: kotlin.coroutines.experimental.Continuation): void
public synthetic method invoke(): java.lang.Object
public final method invoke(): void
}
@kotlin.Metadata
public final class helpers/StateMachineChecker {
public final static field INSTANCE: helpers.StateMachineChecker
private static field counter: int
private static field finished: boolean
private static @org.jetbrains.annotations.NotNull field proceed: kotlin.jvm.functions.Function0
inner class helpers/StateMachineChecker$proceed$1
static method <clinit>(): void
private method <init>(): void
public synthetic final static method access$getCounter$p(p0: helpers.StateMachineChecker): int
public synthetic final static method access$setCounter$p(p0: helpers.StateMachineChecker, p1: int): void
public final method check(p0: int): void
public final method getFinished(): boolean
public final @org.jetbrains.annotations.NotNull method getProceed(): kotlin.jvm.functions.Function0
public final method setFinished(p0: boolean): void
public final method setProceed(@org.jetbrains.annotations.NotNull p0: kotlin.jvm.functions.Function0): void
public final @org.jetbrains.annotations.Nullable method suspendHere(@org.jetbrains.annotations.NotNull p0: kotlin.coroutines.experimental.Continuation): java.lang.Object
}
@@ -16,6 +16,28 @@ public final class OomInReturnUnitKt {
public final static @org.jetbrains.annotations.Nullable method test(@org.jetbrains.annotations.NotNull p0: kotlin.coroutines.Continuation): java.lang.Object
}
@kotlin.Metadata
final class helpers/CheckStateMachineContinuation$resume$1 {
public final static field INSTANCE: helpers.CheckStateMachineContinuation$resume$1
inner class helpers/CheckStateMachineContinuation$resume$1
static method <clinit>(): void
method <init>(): void
public synthetic method invoke(): java.lang.Object
public final method invoke(): void
}
@kotlin.Metadata
public final class helpers/CheckStateMachineContinuation {
public final static field INSTANCE: helpers.CheckStateMachineContinuation
inner class helpers/CheckStateMachineContinuation$resume$1
static method <clinit>(): void
private method <init>(): void
public @org.jetbrains.annotations.NotNull method getContext(): kotlin.coroutines.CoroutineContext
public method resume(@org.jetbrains.annotations.NotNull p0: kotlin.Unit): void
public synthetic method resume(p0: java.lang.Object): void
public method resumeWithException(@org.jetbrains.annotations.NotNull p0: java.lang.Throwable): void
}
@kotlin.Metadata
public abstract class helpers/ContinuationAdapter {
private final @org.jetbrains.annotations.NotNull field context: kotlin.coroutines.CoroutineContext
@@ -75,3 +97,41 @@ public class helpers/EmptyContinuation {
public @org.jetbrains.annotations.NotNull method getContext(): kotlin.coroutines.CoroutineContext
public method resumeWith(@org.jetbrains.annotations.NotNull p0: java.lang.Object): void
}
@kotlin.Metadata
final class helpers/StateMachineChecker$proceed$1 {
public final static field INSTANCE: helpers.StateMachineChecker$proceed$1
inner class helpers/StateMachineChecker$proceed$1
static method <clinit>(): void
method <init>(): void
public synthetic method invoke(): java.lang.Object
public final method invoke(): void
}
@kotlin.Metadata
final class helpers/StateMachineChecker$suspendHere$2$1 {
synthetic final field $c: kotlin.coroutines.Continuation
inner class helpers/StateMachineChecker$suspendHere$2$1
method <init>(p0: kotlin.coroutines.Continuation): void
public synthetic method invoke(): java.lang.Object
public final method invoke(): void
}
@kotlin.Metadata
public final class helpers/StateMachineChecker {
public final static field INSTANCE: helpers.StateMachineChecker
private static field counter: int
private static field finished: boolean
private static @org.jetbrains.annotations.NotNull field proceed: kotlin.jvm.functions.Function0
inner class helpers/StateMachineChecker$proceed$1
static method <clinit>(): void
private method <init>(): void
public synthetic final static method access$getCounter$p(p0: helpers.StateMachineChecker): int
public synthetic final static method access$setCounter$p(p0: helpers.StateMachineChecker, p1: int): void
public final method check(p0: int): void
public final method getFinished(): boolean
public final @org.jetbrains.annotations.NotNull method getProceed(): kotlin.jvm.functions.Function0
public final method setFinished(p0: boolean): void
public final method setProceed(@org.jetbrains.annotations.NotNull p0: kotlin.jvm.functions.Function0): void
public final @org.jetbrains.annotations.Nullable method suspendHere(@org.jetbrains.annotations.NotNull p0: kotlin.coroutines.Continuation): java.lang.Object
}