Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

optimize: override for synthetic functions #68

Merged
merged 2 commits into from
Oct 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion buildSrc/src/main/kotlin/IProject.kt
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ object IProject : ProjectDetail() {

// Remember the libs.versions.toml!
val ktVersion = "2.1.0-Beta1"
val pluginVersion = "0.9.2"
val pluginVersion = "0.9.3"

override val version: String = "$ktVersion-$pluginVersion"

Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -49,4 +49,16 @@ public void testTypeAttr() {
public void testOpt() {
runTest("src/testData/codegen/opt.kt");
}

@Test
@TestMetadata("implOverriden.kt")
public void testImplOverriden() {
runTest("src/testData/codegen/implOverriden.kt");
}

@Test
@TestMetadata("implOverridenGeneric.kt")
public void testImplOverridenGeneric() {
runTest("src/testData/codegen/implOverridenGeneric.kt");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,297 @@
public abstract interface FooInterface1 : java/lang/Object {
public abstract java.lang.Object data(kotlin.coroutines.Continuation p0)

public abstract java.lang.Object data2(int p0, kotlin.coroutines.Continuation p1)

public abstract java.lang.Object data3(int p0, kotlin.coroutines.Continuation p1)
}

final class FooInterface1Impl$data2Blocking$1 : kotlin/coroutines/jvm/internal/SuspendLambda, kotlin/jvm/functions/Function1 {
final int $value

int label

final FooInterface1Impl this$0

void <init>(FooInterface1Impl $receiver, int $value, kotlin.coroutines.Continuation $completion)

public final kotlin.coroutines.Continuation create(kotlin.coroutines.Continuation $completion)

public final java.lang.Object invoke(kotlin.coroutines.Continuation p1)

public java.lang.Object invoke(java.lang.Object p1)

public final java.lang.Object invokeSuspend(java.lang.Object $result)
}

final class FooInterface1Impl$data3Blocking$1 : kotlin/coroutines/jvm/internal/SuspendLambda, kotlin/jvm/functions/Function1 {
final int $this_data3Blocking

int label

final FooInterface1Impl this$0

void <init>(FooInterface1Impl $receiver, int $receiver, kotlin.coroutines.Continuation $completion)

public final kotlin.coroutines.Continuation create(kotlin.coroutines.Continuation $completion)

public final java.lang.Object invoke(kotlin.coroutines.Continuation p1)

public java.lang.Object invoke(java.lang.Object p1)

public final java.lang.Object invokeSuspend(java.lang.Object $result)
}

final class FooInterface1Impl$dataBlocking$1 : kotlin/coroutines/jvm/internal/SuspendLambda, kotlin/jvm/functions/Function1 {
int label

final FooInterface1Impl this$0

void <init>(FooInterface1Impl $receiver, kotlin.coroutines.Continuation $completion)

public final kotlin.coroutines.Continuation create(kotlin.coroutines.Continuation $completion)

public final java.lang.Object invoke(kotlin.coroutines.Continuation p1)

public java.lang.Object invoke(java.lang.Object p1)

public final java.lang.Object invokeSuspend(java.lang.Object $result)
}

public final class FooInterface1Impl : java/lang/Object, FooInterface1 {
public void <init>()

public java.lang.Object data(kotlin.coroutines.Continuation $completion)

public java.lang.Object data2(int value, kotlin.coroutines.Continuation $completion)

public java.lang.String data2Blocking(int value)

public java.lang.Object data3(int $this$data3, kotlin.coroutines.Continuation $completion)

public java.lang.String data3Blocking(int $this$data3Blocking)

public java.lang.String dataBlocking()
}

public final class FooInterface2$DefaultImpls : java/lang/Object {
public static java.lang.String data2Blocking(FooInterface2 $this, int value)

public static java.lang.String data3Blocking(FooInterface2 $this, int $receiver)

public static java.lang.String dataBlocking(FooInterface2 $this)
}

public abstract interface FooInterface2 : java/lang/Object {
public abstract java.lang.Object data(kotlin.coroutines.Continuation p0)

public abstract java.lang.Object data2(int p0, kotlin.coroutines.Continuation p1)

public abstract java.lang.String data2Blocking(int p0)

public abstract java.lang.Object data3(int p0, kotlin.coroutines.Continuation p1)

public abstract java.lang.String data3Blocking(int p0)

public abstract java.lang.String dataBlocking()
}

final class FooInterface2Impl$data2Blocking$1 : kotlin/coroutines/jvm/internal/SuspendLambda, kotlin/jvm/functions/Function1 {
final int $value

int label

final FooInterface2Impl this$0

void <init>(FooInterface2Impl $receiver, int $value, kotlin.coroutines.Continuation $completion)

public final kotlin.coroutines.Continuation create(kotlin.coroutines.Continuation $completion)

public final java.lang.Object invoke(kotlin.coroutines.Continuation p1)

public java.lang.Object invoke(java.lang.Object p1)

public final java.lang.Object invokeSuspend(java.lang.Object $result)
}

final class FooInterface2Impl$data3Blocking$1 : kotlin/coroutines/jvm/internal/SuspendLambda, kotlin/jvm/functions/Function1 {
final int $this_data3Blocking

int label

final FooInterface2Impl this$0

void <init>(FooInterface2Impl $receiver, int $receiver, kotlin.coroutines.Continuation $completion)

public final kotlin.coroutines.Continuation create(kotlin.coroutines.Continuation $completion)

public final java.lang.Object invoke(kotlin.coroutines.Continuation p1)

public java.lang.Object invoke(java.lang.Object p1)

public final java.lang.Object invokeSuspend(java.lang.Object $result)
}

final class FooInterface2Impl$dataBlocking$1 : kotlin/coroutines/jvm/internal/SuspendLambda, kotlin/jvm/functions/Function1 {
int label

final FooInterface2Impl this$0

void <init>(FooInterface2Impl $receiver, kotlin.coroutines.Continuation $completion)

public final kotlin.coroutines.Continuation create(kotlin.coroutines.Continuation $completion)

public final java.lang.Object invoke(kotlin.coroutines.Continuation p1)

public java.lang.Object invoke(java.lang.Object p1)

public final java.lang.Object invokeSuspend(java.lang.Object $result)
}

public final class FooInterface2Impl : java/lang/Object, FooInterface2 {
public void <init>()

public java.lang.Object data(kotlin.coroutines.Continuation $completion)

public java.lang.Object data2(int value, kotlin.coroutines.Continuation $completion)

public java.lang.String data2Blocking(int value)

public java.lang.Object data3(int $this$data3, kotlin.coroutines.Continuation $completion)

public java.lang.String data3Blocking(int $this$data3Blocking)

public java.lang.String dataBlocking()
}

public final class FooInterface3$DefaultImpls : java/lang/Object {
public static java.lang.String getDataBlocking(FooInterface3 $this)
}

public abstract interface FooInterface3 : java/lang/Object {
public abstract java.lang.Object data(kotlin.coroutines.Continuation p0)

public abstract java.lang.String getDataBlocking()
}

final class FooInterface3Impl$dataBlocking$1 : kotlin/coroutines/jvm/internal/SuspendLambda, kotlin/jvm/functions/Function1 {
int label

final FooInterface3Impl this$0

void <init>(FooInterface3Impl $receiver, kotlin.coroutines.Continuation $completion)

public final kotlin.coroutines.Continuation create(kotlin.coroutines.Continuation $completion)

public final java.lang.Object invoke(kotlin.coroutines.Continuation p1)

public java.lang.Object invoke(java.lang.Object p1)

public final java.lang.Object invokeSuspend(java.lang.Object $result)
}

public final class FooInterface3Impl : java/lang/Object, FooInterface3 {
public void <init>()

public java.lang.Object data(kotlin.coroutines.Continuation $completion)

public java.lang.String getDataBlocking()

public static void getDataBlocking$annotations()
}

public final class FooInterface4$DefaultImpls : java/lang/Object {
public static java.lang.String data2Blocking(FooInterface4 $this, int value)

public static java.lang.String dataBlocking(FooInterface4 $this)
}

final class FooInterface4$data2Blocking$1 : kotlin/coroutines/jvm/internal/SuspendLambda, kotlin/jvm/functions/Function1 {
final int $value

int label

final FooInterface4 this$0

void <init>(FooInterface4 $receiver, int $value, kotlin.coroutines.Continuation $completion)

public final kotlin.coroutines.Continuation create(kotlin.coroutines.Continuation $completion)

public final java.lang.Object invoke(kotlin.coroutines.Continuation p1)

public java.lang.Object invoke(java.lang.Object p1)

public final java.lang.Object invokeSuspend(java.lang.Object $result)
}

final class FooInterface4$dataBlocking$1 : kotlin/coroutines/jvm/internal/SuspendLambda, kotlin/jvm/functions/Function1 {
int label

final FooInterface4 this$0

void <init>(FooInterface4 $receiver, kotlin.coroutines.Continuation $completion)

public final kotlin.coroutines.Continuation create(kotlin.coroutines.Continuation $completion)

public final java.lang.Object invoke(kotlin.coroutines.Continuation p1)

public java.lang.Object invoke(java.lang.Object p1)

public final java.lang.Object invokeSuspend(java.lang.Object $result)
}

public abstract interface FooInterface4 : java/lang/Object {
public abstract java.lang.Object data(kotlin.coroutines.Continuation p0)

public abstract java.lang.Object data2(int p0, kotlin.coroutines.Continuation p1)

public abstract java.lang.String data2Blocking(int p0)

public abstract java.lang.String dataBlocking()
}

final class FooInterface4Impl$data2Blocking$1 : kotlin/coroutines/jvm/internal/SuspendLambda, kotlin/jvm/functions/Function1 {
final int $value

int label

final FooInterface4Impl this$0

void <init>(FooInterface4Impl $receiver, int $value, kotlin.coroutines.Continuation $completion)

public final kotlin.coroutines.Continuation create(kotlin.coroutines.Continuation $completion)

public final java.lang.Object invoke(kotlin.coroutines.Continuation p1)

public java.lang.Object invoke(java.lang.Object p1)

public final java.lang.Object invokeSuspend(java.lang.Object $result)
}

final class FooInterface4Impl$dataBlocking$1 : kotlin/coroutines/jvm/internal/SuspendLambda, kotlin/jvm/functions/Function1 {
int label

final FooInterface4Impl this$0

void <init>(FooInterface4Impl $receiver, kotlin.coroutines.Continuation $completion)

public final kotlin.coroutines.Continuation create(kotlin.coroutines.Continuation $completion)

public final java.lang.Object invoke(kotlin.coroutines.Continuation p1)

public java.lang.Object invoke(java.lang.Object p1)

public final java.lang.Object invokeSuspend(java.lang.Object $result)
}

public final class FooInterface4Impl : java/lang/Object, FooInterface4 {
public void <init>()

public java.lang.Object data(kotlin.coroutines.Continuation $completion)

public java.lang.Object data2(int value, kotlin.coroutines.Continuation $completion)

public java.lang.String data2Blocking(int value)

public java.lang.String dataBlocking()
}
Loading