diff --git a/build-logic/chameleon/chameleon-compiler-plugin/src/test/data/box/Basic.ir.txt b/build-logic/chameleon/chameleon-compiler-plugin/src/test/data/box/Basic.ir.txt index 2f67de39..bf084932 100644 --- a/build-logic/chameleon/chameleon-compiler-plugin/src/test/data/box/Basic.ir.txt +++ b/build-logic/chameleon/chameleon-compiler-plugin/src/test/data/box/Basic.ir.txt @@ -109,10 +109,10 @@ FILE fqName: fileName:/SnapshotTester.kt ENUM_CONSTRUCTOR_CALL 'public constructor (name: kotlin.String, ordinal: kotlin.Int) declared in kotlin.Enum' TYPE_ARG E: .ThemeVariant INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:ThemeVariant modality:FINAL visibility:public superTypes:[kotlin.Enum<.ThemeVariant>]' type=kotlin.Unit - FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL returnType:.ThemeVariant + FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL returnType:.ThemeVariant [companion] VALUE_PARAMETER kind:Regular name:value index:0 type:kotlin.String SYNTHETIC_BODY kind=ENUM_VALUEOF - FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL returnType:kotlin.Array<.ThemeVariant> + FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL returnType:kotlin.Array<.ThemeVariant> [companion] SYNTHETIC_BODY kind=ENUM_VALUES FUN FAKE_OVERRIDE name:compareTo visibility:public modality:FINAL returnType:kotlin.Int [fake_override,operator] VALUE_PARAMETER kind:DispatchReceiver name: index:0 type:kotlin.Enum<.ThemeVariant> @@ -137,7 +137,7 @@ FILE fqName: fileName:/SnapshotTester.kt overridden: public open fun toString (): kotlin.String declared in kotlin.Enum PROPERTY ENUM_CLASS_SPECIAL_MEMBER name:entries visibility:public modality:FINAL [val] - FUN ENUM_CLASS_SPECIAL_MEMBER name: visibility:public modality:FINAL returnType:kotlin.enums.EnumEntries<.ThemeVariant> + FUN ENUM_CLASS_SPECIAL_MEMBER name: visibility:public modality:FINAL returnType:kotlin.enums.EnumEntries<.ThemeVariant> [companion] correspondingProperty: PROPERTY ENUM_CLASS_SPECIAL_MEMBER name:entries visibility:public modality:FINAL [val] SYNTHETIC_BODY kind=ENUM_ENTRIES PROPERTY FAKE_OVERRIDE name:name visibility:public modality:FINAL [fake_override,val] diff --git a/build-logic/chameleon/chameleon-compiler-plugin/src/test/data/box/ExistingThemeVariantProperty.ir.txt b/build-logic/chameleon/chameleon-compiler-plugin/src/test/data/box/ExistingThemeVariantProperty.ir.txt index fa6410b3..69114c24 100644 --- a/build-logic/chameleon/chameleon-compiler-plugin/src/test/data/box/ExistingThemeVariantProperty.ir.txt +++ b/build-logic/chameleon/chameleon-compiler-plugin/src/test/data/box/ExistingThemeVariantProperty.ir.txt @@ -108,10 +108,10 @@ FILE fqName: fileName:/SnapshotTester.kt ENUM_CONSTRUCTOR_CALL 'public constructor (name: kotlin.String, ordinal: kotlin.Int) declared in kotlin.Enum' TYPE_ARG E: .ThemeVariant INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:ThemeVariant modality:FINAL visibility:public superTypes:[kotlin.Enum<.ThemeVariant>]' type=kotlin.Unit - FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL returnType:.ThemeVariant + FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL returnType:.ThemeVariant [companion] VALUE_PARAMETER kind:Regular name:value index:0 type:kotlin.String SYNTHETIC_BODY kind=ENUM_VALUEOF - FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL returnType:kotlin.Array<.ThemeVariant> + FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL returnType:kotlin.Array<.ThemeVariant> [companion] SYNTHETIC_BODY kind=ENUM_VALUES FUN FAKE_OVERRIDE name:compareTo visibility:public modality:FINAL returnType:kotlin.Int [fake_override,operator] VALUE_PARAMETER kind:DispatchReceiver name: index:0 type:kotlin.Enum<.ThemeVariant> @@ -136,7 +136,7 @@ FILE fqName: fileName:/SnapshotTester.kt overridden: public open fun toString (): kotlin.String declared in kotlin.Enum PROPERTY ENUM_CLASS_SPECIAL_MEMBER name:entries visibility:public modality:FINAL [val] - FUN ENUM_CLASS_SPECIAL_MEMBER name: visibility:public modality:FINAL returnType:kotlin.enums.EnumEntries<.ThemeVariant> + FUN ENUM_CLASS_SPECIAL_MEMBER name: visibility:public modality:FINAL returnType:kotlin.enums.EnumEntries<.ThemeVariant> [companion] correspondingProperty: PROPERTY ENUM_CLASS_SPECIAL_MEMBER name:entries visibility:public modality:FINAL [val] SYNTHETIC_BODY kind=ENUM_ENTRIES PROPERTY FAKE_OVERRIDE name:name visibility:public modality:FINAL [fake_override,val] diff --git a/build-logic/chameleon/chameleon-compiler-plugin/src/test/data/box/NoSnapshotFunctionCalls.ir.txt b/build-logic/chameleon/chameleon-compiler-plugin/src/test/data/box/NoSnapshotFunctionCalls.ir.txt index 9ce8747d..0c45ea79 100644 --- a/build-logic/chameleon/chameleon-compiler-plugin/src/test/data/box/NoSnapshotFunctionCalls.ir.txt +++ b/build-logic/chameleon/chameleon-compiler-plugin/src/test/data/box/NoSnapshotFunctionCalls.ir.txt @@ -76,10 +76,10 @@ FILE fqName: fileName:/SnapshotTester.kt ENUM_CONSTRUCTOR_CALL 'public constructor (name: kotlin.String, ordinal: kotlin.Int) declared in kotlin.Enum' TYPE_ARG E: .ThemeVariant INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:ThemeVariant modality:FINAL visibility:public superTypes:[kotlin.Enum<.ThemeVariant>]' type=kotlin.Unit - FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL returnType:.ThemeVariant + FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL returnType:.ThemeVariant [companion] VALUE_PARAMETER kind:Regular name:value index:0 type:kotlin.String SYNTHETIC_BODY kind=ENUM_VALUEOF - FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL returnType:kotlin.Array<.ThemeVariant> + FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL returnType:kotlin.Array<.ThemeVariant> [companion] SYNTHETIC_BODY kind=ENUM_VALUES FUN FAKE_OVERRIDE name:compareTo visibility:public modality:FINAL returnType:kotlin.Int [fake_override,operator] VALUE_PARAMETER kind:DispatchReceiver name: index:0 type:kotlin.Enum<.ThemeVariant> @@ -104,7 +104,7 @@ FILE fqName: fileName:/SnapshotTester.kt overridden: public open fun toString (): kotlin.String declared in kotlin.Enum PROPERTY ENUM_CLASS_SPECIAL_MEMBER name:entries visibility:public modality:FINAL [val] - FUN ENUM_CLASS_SPECIAL_MEMBER name: visibility:public modality:FINAL returnType:kotlin.enums.EnumEntries<.ThemeVariant> + FUN ENUM_CLASS_SPECIAL_MEMBER name: visibility:public modality:FINAL returnType:kotlin.enums.EnumEntries<.ThemeVariant> [companion] correspondingProperty: PROPERTY ENUM_CLASS_SPECIAL_MEMBER name:entries visibility:public modality:FINAL [val] SYNTHETIC_BODY kind=ENUM_ENTRIES PROPERTY FAKE_OVERRIDE name:name visibility:public modality:FINAL [fake_override,val] diff --git a/build-logic/chameleon/chameleon-compiler-plugin/src/test/data/box/ThemeVariantArgumentProvided.ir.txt b/build-logic/chameleon/chameleon-compiler-plugin/src/test/data/box/ThemeVariantArgumentProvided.ir.txt index 549f1ef4..29b66cdd 100644 --- a/build-logic/chameleon/chameleon-compiler-plugin/src/test/data/box/ThemeVariantArgumentProvided.ir.txt +++ b/build-logic/chameleon/chameleon-compiler-plugin/src/test/data/box/ThemeVariantArgumentProvided.ir.txt @@ -41,10 +41,10 @@ FILE fqName: fileName:/SnapshotTester.kt ENUM_CONSTRUCTOR_CALL 'public constructor (name: kotlin.String, ordinal: kotlin.Int) declared in kotlin.Enum' TYPE_ARG E: .ThemeVariant INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:ThemeVariant modality:FINAL visibility:public superTypes:[kotlin.Enum<.ThemeVariant>]' type=kotlin.Unit - FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL returnType:.ThemeVariant + FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL returnType:.ThemeVariant [companion] VALUE_PARAMETER kind:Regular name:value index:0 type:kotlin.String SYNTHETIC_BODY kind=ENUM_VALUEOF - FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL returnType:kotlin.Array<.ThemeVariant> + FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL returnType:kotlin.Array<.ThemeVariant> [companion] SYNTHETIC_BODY kind=ENUM_VALUES FUN FAKE_OVERRIDE name:compareTo visibility:public modality:FINAL returnType:kotlin.Int [fake_override,operator] VALUE_PARAMETER kind:DispatchReceiver name: index:0 type:kotlin.Enum<.ThemeVariant> @@ -69,7 +69,7 @@ FILE fqName: fileName:/SnapshotTester.kt overridden: public open fun toString (): kotlin.String declared in kotlin.Enum PROPERTY ENUM_CLASS_SPECIAL_MEMBER name:entries visibility:public modality:FINAL [val] - FUN ENUM_CLASS_SPECIAL_MEMBER name: visibility:public modality:FINAL returnType:kotlin.enums.EnumEntries<.ThemeVariant> + FUN ENUM_CLASS_SPECIAL_MEMBER name: visibility:public modality:FINAL returnType:kotlin.enums.EnumEntries<.ThemeVariant> [companion] correspondingProperty: PROPERTY ENUM_CLASS_SPECIAL_MEMBER name:entries visibility:public modality:FINAL [val] SYNTHETIC_BODY kind=ENUM_ENTRIES PROPERTY FAKE_OVERRIDE name:name visibility:public modality:FINAL [fake_override,val] diff --git a/build-logic/routebinding/routebinding-compiler-plugin/build.gradle.kts b/build-logic/routebinding/routebinding-compiler-plugin/build.gradle.kts index 54934d81..32addcff 100644 --- a/build-logic/routebinding/routebinding-compiler-plugin/build.gradle.kts +++ b/build-logic/routebinding/routebinding-compiler-plugin/build.gradle.kts @@ -36,6 +36,7 @@ dependencies { metroRuntimeClasspath(libs.metro.runtime) composeRuntimeClasspath(libs.androidx.compose.runtime) + testImplementation(libs.kotlinx.coroutines.core) testImplementation(libs.metro.compiler) testImplementation(libs.composeCompiler) testImplementation(kotlin("test-junit5")) diff --git a/build-logic/routebinding/routebinding-compiler-plugin/src/test/data/dump/NoReceiverAndParams.kt.txt b/build-logic/routebinding/routebinding-compiler-plugin/src/test/data/dump/NoReceiverAndParams.kt.txt index e6b3ff84..00baf067 100644 --- a/build-logic/routebinding/routebinding-compiler-plugin/src/test/data/dump/NoReceiverAndParams.kt.txt +++ b/build-logic/routebinding/routebinding-compiler-plugin/src/test/data/dump/NoReceiverAndParams.kt.txt @@ -35,15 +35,15 @@ class FooScreen_NavEntryInstaller : NavEntryInstaller { } + @ComptimeOnly @HiddenFromObjC - override operator fun invoke(): FooScreen_NavEntryInstaller { - return Companion.newInstance() + fun declarationMirror(): FooScreen_NavEntryInstaller { + return error(message = "Never called") } - @ComptimeOnly @HiddenFromObjC - fun mirrorFunction(): FooScreen_NavEntryInstaller { - return error(message = "Never called") + override operator fun invoke(): FooScreen_NavEntryInstaller { + return Companion.newInstance() } } diff --git a/build-logic/routebinding/routebinding-compiler-plugin/src/test/data/dump/Standard.kt.txt b/build-logic/routebinding/routebinding-compiler-plugin/src/test/data/dump/Standard.kt.txt index 903f58f2..2a3b185d 100644 --- a/build-logic/routebinding/routebinding-compiler-plugin/src/test/data/dump/Standard.kt.txt +++ b/build-logic/routebinding/routebinding-compiler-plugin/src/test/data/dump/Standard.kt.txt @@ -35,15 +35,15 @@ class FooScreen_NavEntryInstaller : NavEntryInstaller { } + @ComptimeOnly @HiddenFromObjC - override operator fun invoke(): FooScreen_NavEntryInstaller { - return Companion.newInstance() + fun declarationMirror(): FooScreen_NavEntryInstaller { + return error(message = "Never called") } - @ComptimeOnly @HiddenFromObjC - fun mirrorFunction(): FooScreen_NavEntryInstaller { - return error(message = "Never called") + override operator fun invoke(): FooScreen_NavEntryInstaller { + return Companion.newInstance() } } diff --git a/build-logic/routebinding/routebinding-compiler-plugin/src/test/data/dump/WithBackStackParamOnly.kt.txt b/build-logic/routebinding/routebinding-compiler-plugin/src/test/data/dump/WithBackStackParamOnly.kt.txt index 10a5d2ee..d19958ee 100644 --- a/build-logic/routebinding/routebinding-compiler-plugin/src/test/data/dump/WithBackStackParamOnly.kt.txt +++ b/build-logic/routebinding/routebinding-compiler-plugin/src/test/data/dump/WithBackStackParamOnly.kt.txt @@ -35,15 +35,15 @@ class FooScreen_NavEntryInstaller : NavEntryInstaller { } + @ComptimeOnly @HiddenFromObjC - override operator fun invoke(): FooScreen_NavEntryInstaller { - return Companion.newInstance() + fun declarationMirror(): FooScreen_NavEntryInstaller { + return error(message = "Never called") } - @ComptimeOnly @HiddenFromObjC - fun mirrorFunction(): FooScreen_NavEntryInstaller { - return error(message = "Never called") + override operator fun invoke(): FooScreen_NavEntryInstaller { + return Companion.newInstance() } } diff --git a/build-logic/routebinding/routebinding-compiler-plugin/src/test/data/dump/WithMetadataProvider.kt.txt b/build-logic/routebinding/routebinding-compiler-plugin/src/test/data/dump/WithMetadataProvider.kt.txt index f4582a52..80d14472 100644 --- a/build-logic/routebinding/routebinding-compiler-plugin/src/test/data/dump/WithMetadataProvider.kt.txt +++ b/build-logic/routebinding/routebinding-compiler-plugin/src/test/data/dump/WithMetadataProvider.kt.txt @@ -35,15 +35,15 @@ class FooScreen_NavEntryInstaller : NavEntryInstaller { } + @ComptimeOnly @HiddenFromObjC - override operator fun invoke(): FooScreen_NavEntryInstaller { - return Companion.newInstance() + fun declarationMirror(): FooScreen_NavEntryInstaller { + return error(message = "Never called") } - @ComptimeOnly @HiddenFromObjC - fun mirrorFunction(): FooScreen_NavEntryInstaller { - return error(message = "Never called") + override operator fun invoke(): FooScreen_NavEntryInstaller { + return Companion.newInstance() } } diff --git a/build-logic/routebinding/routebinding-compiler-plugin/src/test/data/dump/WithParamWithDefaultValue.kt.txt b/build-logic/routebinding/routebinding-compiler-plugin/src/test/data/dump/WithParamWithDefaultValue.kt.txt index 8d9ec20d..95a22fa2 100644 --- a/build-logic/routebinding/routebinding-compiler-plugin/src/test/data/dump/WithParamWithDefaultValue.kt.txt +++ b/build-logic/routebinding/routebinding-compiler-plugin/src/test/data/dump/WithParamWithDefaultValue.kt.txt @@ -35,15 +35,15 @@ class FooScreen_NavEntryInstaller : NavEntryInstaller { } + @ComptimeOnly @HiddenFromObjC - override operator fun invoke(): FooScreen_NavEntryInstaller { - return Companion.newInstance() + fun declarationMirror(): FooScreen_NavEntryInstaller { + return error(message = "Never called") } - @ComptimeOnly @HiddenFromObjC - fun mirrorFunction(): FooScreen_NavEntryInstaller { - return error(message = "Never called") + override operator fun invoke(): FooScreen_NavEntryInstaller { + return Companion.newInstance() } } diff --git a/build-logic/routebinding/routebinding-compiler-plugin/src/test/data/dump/WithRouteParamOnly.kt.txt b/build-logic/routebinding/routebinding-compiler-plugin/src/test/data/dump/WithRouteParamOnly.kt.txt index 81ef3f2c..90adbe76 100644 --- a/build-logic/routebinding/routebinding-compiler-plugin/src/test/data/dump/WithRouteParamOnly.kt.txt +++ b/build-logic/routebinding/routebinding-compiler-plugin/src/test/data/dump/WithRouteParamOnly.kt.txt @@ -35,15 +35,15 @@ class FooScreen_NavEntryInstaller : NavEntryInstaller { } + @ComptimeOnly @HiddenFromObjC - override operator fun invoke(): FooScreen_NavEntryInstaller { - return Companion.newInstance() + fun declarationMirror(): FooScreen_NavEntryInstaller { + return error(message = "Never called") } - @ComptimeOnly @HiddenFromObjC - fun mirrorFunction(): FooScreen_NavEntryInstaller { - return error(message = "Never called") + override operator fun invoke(): FooScreen_NavEntryInstaller { + return Companion.newInstance() } } diff --git a/build-logic/routebinding/routebinding-compiler-plugin/src/test/data/dump/WithSharedTransitionScopeAsContextParam.kt.txt b/build-logic/routebinding/routebinding-compiler-plugin/src/test/data/dump/WithSharedTransitionScopeAsContextParam.kt.txt index 36a33284..cf05d3c4 100644 --- a/build-logic/routebinding/routebinding-compiler-plugin/src/test/data/dump/WithSharedTransitionScopeAsContextParam.kt.txt +++ b/build-logic/routebinding/routebinding-compiler-plugin/src/test/data/dump/WithSharedTransitionScopeAsContextParam.kt.txt @@ -35,15 +35,15 @@ class FooScreen_NavEntryInstaller : NavEntryInstaller { } + @ComptimeOnly @HiddenFromObjC - override operator fun invoke(): FooScreen_NavEntryInstaller { - return Companion.newInstance() + fun declarationMirror(): FooScreen_NavEntryInstaller { + return error(message = "Never called") } - @ComptimeOnly @HiddenFromObjC - fun mirrorFunction(): FooScreen_NavEntryInstaller { - return error(message = "Never called") + override operator fun invoke(): FooScreen_NavEntryInstaller { + return Companion.newInstance() } } diff --git a/build-logic/routebinding/routebinding-compiler-plugin/src/test/data/dump/WithSharedTransitionScopeAsValueParam.kt.txt b/build-logic/routebinding/routebinding-compiler-plugin/src/test/data/dump/WithSharedTransitionScopeAsValueParam.kt.txt index 5f46a1e3..c97753de 100644 --- a/build-logic/routebinding/routebinding-compiler-plugin/src/test/data/dump/WithSharedTransitionScopeAsValueParam.kt.txt +++ b/build-logic/routebinding/routebinding-compiler-plugin/src/test/data/dump/WithSharedTransitionScopeAsValueParam.kt.txt @@ -35,15 +35,15 @@ class FooScreen_NavEntryInstaller : NavEntryInstaller { } + @ComptimeOnly @HiddenFromObjC - override operator fun invoke(): FooScreen_NavEntryInstaller { - return Companion.newInstance() + fun declarationMirror(): FooScreen_NavEntryInstaller { + return error(message = "Never called") } - @ComptimeOnly @HiddenFromObjC - fun mirrorFunction(): FooScreen_NavEntryInstaller { - return error(message = "Never called") + override operator fun invoke(): FooScreen_NavEntryInstaller { + return Companion.newInstance() } } diff --git a/gradle.properties b/gradle.properties index 1987e9be..dd2f3251 100644 --- a/gradle.properties +++ b/gradle.properties @@ -18,9 +18,6 @@ kotlin.native.ignoreDisabledTargets=true # Enable small binary size for iOS kotlin.native.binary.smallBinary=true -# Enable incremental klib compilation -kotlin.incremental.native=true - # Default Android build features android.library.defaults.buildfeatures.androidresources=false diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 3ef0afb0..2fd71cee 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -kotlin = "2.4.20-Beta1" +kotlin = "2.4.20-Beta2" androidGradlePlugin = "9.4.0-alpha07" gradle-develocityPlugin = "4.4.0" gradle-toolchainsResolverPlugin = "1.0.0" @@ -17,7 +17,7 @@ detekt = "2.0.0-alpha.5" androidPublisher = "4.0.0" kotlinpoet = "2.3.0" leakcanary = "2.14" -metro = "1.3.2" +metro = "1.4.0" kotlinx-coroutines = "1.11.0" kotlinx-datetime = "0.8.0" kotlinx-serialization = "1.11.0"