JVM_IR: reuse MethodNodes for inline functions in same module
This fixes the weird cases when a class gets overwritten by an imperfect copy, reduces the number of classes in the output if an inline function contains an inline call that causes it to have regenerated anonymous objects, and makes inlining of same module functions a bit faster in general. On the other hand, this may increase memory footprint a bit because classes cannot be flushed to the output jar, as the inliner would not be able to locate classes for anonymous objects if they have already been unloaded from memory.
This commit is contained in:
+18
@@ -0,0 +1,18 @@
|
||||
@kotlin.coroutines.jvm.internal.DebugMetadata
|
||||
@kotlin.Metadata
|
||||
final class CoroutineContextIntrinsicKt$notTailCall$1 {
|
||||
field label: int
|
||||
synthetic field result: java.lang.Object
|
||||
inner class CoroutineContextIntrinsicKt$notTailCall$1
|
||||
method <init>(p0: kotlin.coroutines.Continuation): void
|
||||
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class CoroutineContextIntrinsicKt {
|
||||
inner class CoroutineContextIntrinsicKt$notTailCall$1
|
||||
public final static @org.jetbrains.annotations.Nullable method mustBeTailCall(@org.jetbrains.annotations.NotNull p0: kotlin.coroutines.Continuation): java.lang.Object
|
||||
public final static @org.jetbrains.annotations.Nullable method notTailCall(@org.jetbrains.annotations.NotNull p0: kotlin.coroutines.Continuation): java.lang.Object
|
||||
public final static @org.jetbrains.annotations.Nullable method retrieveCoroutineContext(@org.jetbrains.annotations.NotNull p0: kotlin.coroutines.Continuation): java.lang.Object
|
||||
public final static @org.jetbrains.annotations.Nullable method suspendHere(@org.jetbrains.annotations.NotNull p0: kotlin.coroutines.CoroutineContext, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): java.lang.Object
|
||||
}
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
@kotlin.Metadata
|
||||
@kotlin.coroutines.jvm.internal.DebugMetadata
|
||||
@kotlin.Metadata
|
||||
final class Controller$multipleSuspensions$1 {
|
||||
field L$0: java.lang.Object
|
||||
field label: int
|
||||
@@ -10,8 +10,8 @@ final class Controller$multipleSuspensions$1 {
|
||||
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
@kotlin.coroutines.jvm.internal.DebugMetadata
|
||||
@kotlin.Metadata
|
||||
final class Controller$nonTailCall$1 {
|
||||
field L$0: java.lang.Object
|
||||
field label: int
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
@kotlin.coroutines.jvm.internal.DebugMetadata
|
||||
@kotlin.Metadata
|
||||
final class OomInReturnUnitKt$test$1 {
|
||||
field L$0: java.lang.Object
|
||||
field label: int
|
||||
synthetic field result: java.lang.Object
|
||||
inner class OomInReturnUnitKt$test$1
|
||||
method <init>(p0: kotlin.coroutines.Continuation): void
|
||||
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
|
||||
}
|
||||
|
||||
@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: kotlin.coroutines.Continuation): java.lang.Object
|
||||
public final static @org.jetbrains.annotations.Nullable method test(@org.jetbrains.annotations.NotNull p0: kotlin.coroutines.Continuation): java.lang.Object
|
||||
}
|
||||
@@ -150,57 +150,6 @@ public final class TcoContinuationKt$map$$inlined$transform$1 {
|
||||
public @org.jetbrains.annotations.Nullable method collect(@org.jetbrains.annotations.NotNull p0: FlowCollector, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): java.lang.Object
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class TcoContinuationKt$map$$inlined$transform$2$1 {
|
||||
field label: int
|
||||
synthetic field result: java.lang.Object
|
||||
synthetic final field this$0: TcoContinuationKt$map$$inlined$transform$2
|
||||
inner class TcoContinuationKt$map$$inlined$transform$2
|
||||
inner class TcoContinuationKt$map$$inlined$transform$2$1
|
||||
public method <init>(p0: TcoContinuationKt$map$$inlined$transform$2, p1: kotlin.coroutines.Continuation): void
|
||||
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
@kotlin.coroutines.jvm.internal.DebugMetadata
|
||||
public final class TcoContinuationKt$map$$inlined$transform$2$2$1 {
|
||||
field L$0: java.lang.Object
|
||||
field L$1: java.lang.Object
|
||||
field L$2: java.lang.Object
|
||||
field L$3: java.lang.Object
|
||||
field L$4: java.lang.Object
|
||||
field L$5: java.lang.Object
|
||||
field label: int
|
||||
synthetic field result: java.lang.Object
|
||||
synthetic final field this$0: TcoContinuationKt$map$$inlined$transform$2$2
|
||||
inner class TcoContinuationKt$map$$inlined$transform$2$2
|
||||
inner class TcoContinuationKt$map$$inlined$transform$2$2$1
|
||||
public method <init>(p0: TcoContinuationKt$map$$inlined$transform$2$2, p1: kotlin.coroutines.Continuation): void
|
||||
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class TcoContinuationKt$map$$inlined$transform$2$2 {
|
||||
synthetic final field $this$inlined: FlowCollector
|
||||
synthetic final field $transformer$inlined$1: kotlin.jvm.functions.Function2
|
||||
inner class TcoContinuationKt$map$$inlined$transform$2$2
|
||||
inner class TcoContinuationKt$map$$inlined$transform$2$2$1
|
||||
public method <init>(p0: FlowCollector, p1: kotlin.jvm.functions.Function2): void
|
||||
public @org.jetbrains.annotations.Nullable method emit$$forInline(p0: java.lang.Object, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): java.lang.Object
|
||||
public @org.jetbrains.annotations.Nullable method emit(p0: java.lang.Object, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): java.lang.Object
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class TcoContinuationKt$map$$inlined$transform$2 {
|
||||
synthetic final field $this$inlined: Flow
|
||||
synthetic final field $transformer$inlined$1: kotlin.jvm.functions.Function2
|
||||
inner class TcoContinuationKt$map$$inlined$transform$2
|
||||
inner class TcoContinuationKt$map$$inlined$transform$2$1
|
||||
public method <init>(p0: Flow, p1: kotlin.jvm.functions.Function2): void
|
||||
public @org.jetbrains.annotations.Nullable method collect$$forInline(@org.jetbrains.annotations.NotNull p0: FlowCollector, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): java.lang.Object
|
||||
public @org.jetbrains.annotations.Nullable method collect(@org.jetbrains.annotations.NotNull p0: FlowCollector, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): java.lang.Object
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class TcoContinuationKt$transform$$inlined$flow$1$1 {
|
||||
field label: int
|
||||
@@ -223,50 +172,6 @@ public final class TcoContinuationKt$transform$$inlined$flow$1 {
|
||||
public @org.jetbrains.annotations.Nullable method collect(@org.jetbrains.annotations.NotNull p0: FlowCollector, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): java.lang.Object
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class TcoContinuationKt$transform$$inlined$flow$2$1 {
|
||||
field label: int
|
||||
synthetic field result: java.lang.Object
|
||||
synthetic final field this$0: TcoContinuationKt$transform$$inlined$flow$2
|
||||
inner class TcoContinuationKt$transform$$inlined$flow$2
|
||||
inner class TcoContinuationKt$transform$$inlined$flow$2$1
|
||||
public method <init>(p0: TcoContinuationKt$transform$$inlined$flow$2, p1: kotlin.coroutines.Continuation): void
|
||||
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class TcoContinuationKt$transform$$inlined$flow$2 {
|
||||
synthetic final field $this$inlined: Flow
|
||||
synthetic final field $transformer$inlined: kotlin.jvm.functions.Function3
|
||||
inner class TcoContinuationKt$transform$$inlined$flow$2
|
||||
inner class TcoContinuationKt$transform$$inlined$flow$2$1
|
||||
public method <init>(p0: Flow, p1: kotlin.jvm.functions.Function3): void
|
||||
public @org.jetbrains.annotations.Nullable method collect$$forInline(@org.jetbrains.annotations.NotNull p0: FlowCollector, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): java.lang.Object
|
||||
public @org.jetbrains.annotations.Nullable method collect(@org.jetbrains.annotations.NotNull p0: FlowCollector, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): java.lang.Object
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class TcoContinuationKt$transform$$inlined$flow$3$1 {
|
||||
field label: int
|
||||
synthetic field result: java.lang.Object
|
||||
synthetic final field this$0: TcoContinuationKt$transform$$inlined$flow$3
|
||||
inner class TcoContinuationKt$transform$$inlined$flow$3
|
||||
inner class TcoContinuationKt$transform$$inlined$flow$3$1
|
||||
public method <init>(p0: TcoContinuationKt$transform$$inlined$flow$3, p1: kotlin.coroutines.Continuation): void
|
||||
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class TcoContinuationKt$transform$$inlined$flow$3 {
|
||||
synthetic final field $this$inlined: Flow
|
||||
synthetic final field $transformer$inlined: kotlin.jvm.functions.Function3
|
||||
inner class TcoContinuationKt$transform$$inlined$flow$3
|
||||
inner class TcoContinuationKt$transform$$inlined$flow$3$1
|
||||
public method <init>(p0: Flow, p1: kotlin.jvm.functions.Function3): void
|
||||
public @org.jetbrains.annotations.Nullable method collect$$forInline(@org.jetbrains.annotations.NotNull p0: FlowCollector, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): java.lang.Object
|
||||
public @org.jetbrains.annotations.Nullable method collect(@org.jetbrains.annotations.NotNull p0: FlowCollector, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): java.lang.Object
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class TcoContinuationKt$transform$lambda-1$$inlined$collect$1$1 {
|
||||
field label: int
|
||||
@@ -289,50 +194,6 @@ public final class TcoContinuationKt$transform$lambda-1$$inlined$collect$1 {
|
||||
public @org.jetbrains.annotations.Nullable method emit(p0: java.lang.Object, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): java.lang.Object
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class TcoContinuationKt$transform$lambda-1$$inlined$collect$2$1 {
|
||||
field label: int
|
||||
synthetic field result: java.lang.Object
|
||||
synthetic final field this$0: TcoContinuationKt$transform$lambda-1$$inlined$collect$2
|
||||
inner class TcoContinuationKt$transform$lambda-1$$inlined$collect$2
|
||||
inner class TcoContinuationKt$transform$lambda-1$$inlined$collect$2$1
|
||||
public method <init>(p0: TcoContinuationKt$transform$lambda-1$$inlined$collect$2, p1: kotlin.coroutines.Continuation): void
|
||||
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class TcoContinuationKt$transform$lambda-1$$inlined$collect$2 {
|
||||
synthetic final field $this$inlined: FlowCollector
|
||||
synthetic final field $transformer$inlined: kotlin.jvm.functions.Function3
|
||||
inner class TcoContinuationKt$transform$lambda-1$$inlined$collect$2
|
||||
inner class TcoContinuationKt$transform$lambda-1$$inlined$collect$2$1
|
||||
public method <init>(p0: kotlin.jvm.functions.Function3, p1: FlowCollector): void
|
||||
public @org.jetbrains.annotations.Nullable method emit$$forInline(p0: java.lang.Object, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): java.lang.Object
|
||||
public @org.jetbrains.annotations.Nullable method emit(p0: java.lang.Object, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): java.lang.Object
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class TcoContinuationKt$transform$lambda-1$$inlined$collect$3$1 {
|
||||
field label: int
|
||||
synthetic field result: java.lang.Object
|
||||
synthetic final field this$0: TcoContinuationKt$transform$lambda-1$$inlined$collect$3
|
||||
inner class TcoContinuationKt$transform$lambda-1$$inlined$collect$3
|
||||
inner class TcoContinuationKt$transform$lambda-1$$inlined$collect$3$1
|
||||
public method <init>(p0: TcoContinuationKt$transform$lambda-1$$inlined$collect$3, p1: kotlin.coroutines.Continuation): void
|
||||
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class TcoContinuationKt$transform$lambda-1$$inlined$collect$3 {
|
||||
synthetic final field $this$inlined: FlowCollector
|
||||
synthetic final field $transformer$inlined: kotlin.jvm.functions.Function3
|
||||
inner class TcoContinuationKt$transform$lambda-1$$inlined$collect$3
|
||||
inner class TcoContinuationKt$transform$lambda-1$$inlined$collect$3$1
|
||||
public method <init>(p0: kotlin.jvm.functions.Function3, p1: FlowCollector): void
|
||||
public @org.jetbrains.annotations.Nullable method emit$$forInline(p0: java.lang.Object, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): java.lang.Object
|
||||
public @org.jetbrains.annotations.Nullable method emit(p0: java.lang.Object, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): java.lang.Object
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class TcoContinuationKt {
|
||||
inner class TcoContinuationKt$collect$2
|
||||
|
||||
Reference in New Issue
Block a user