Merge pull request #533 from InsanusMokrassar/0.24.3

0.24.3
This commit is contained in:
2025-01-15 13:36:29 +06:00
committed by GitHub
6 changed files with 53 additions and 7 deletions

View File

@@ -1,5 +1,11 @@
# Changelog # Changelog
## 0.24.3
* `Ksp`:
* `Sealed`:
* Fixes in processing of `GenerateSealedTypesWorkaround` annotations
## 0.24.2 ## 0.24.2
* `Versions`: * `Versions`:

View File

@@ -15,5 +15,5 @@ crypto_js_version=4.1.1
# Project data # Project data
group=dev.inmo group=dev.inmo
version=0.24.2 version=0.24.3
android_code_version=281 android_code_version=282

View File

@@ -116,9 +116,9 @@ class Processor(
allowNonSealed = annotation ?.includeNonSealedSubTypes ?: false allowNonSealed = annotation ?.includeNonSealedSubTypes ?: false
).distinct() ).distinct()
val subClassesNames = subClasses.filter { val subClassesNames = subClasses.filter {
it.getAnnotationsByType(GenerateSealedWorkaround.Exclude::class).count() == 0 it.getAnnotationsByType(GenerateSealedTypesWorkaround.Exclude::class).count() == 0
}.sortedBy { }.sortedBy {
(it.getAnnotationsByType(GenerateSealedWorkaround.Order::class).firstOrNull()) ?.order ?: 0 (it.getAnnotationsByType(GenerateSealedTypesWorkaround.Order::class).firstOrNull()) ?.order ?: 0
}.map { }.map {
it.toClassName() it.toClassName()
}.toList() }.toList()

View File

@@ -7,10 +7,10 @@ import dev.inmo.micro_utils.ksp.sealed.GenerateSealedWorkaround
@GenerateSealedTypesWorkaround @GenerateSealedTypesWorkaround
sealed interface Test { sealed interface Test {
@GenerateSealedWorkaround.Order(2) @GenerateSealedWorkaround.Order(2)
@GenerateSealedTypesWorkaround.Order(2) @GenerateSealedTypesWorkaround.Exclude
object A : Test object A : Test
@GenerateSealedWorkaround.Exclude @GenerateSealedWorkaround.Exclude
@GenerateSealedTypesWorkaround.Exclude @GenerateSealedTypesWorkaround.Order(2)
object B : Test object B : Test
@GenerateSealedWorkaround.Order(0) @GenerateSealedWorkaround.Order(0)
@GenerateSealedTypesWorkaround.Order(0) @GenerateSealedTypesWorkaround.Order(0)

View File

@@ -7,6 +7,6 @@ import kotlin.collections.Set
import kotlin.reflect.KClass import kotlin.reflect.KClass
private val subtypes: Set<KClass<out Test>> = setOf(Test.C::class, private val subtypes: Set<KClass<out Test>> = setOf(Test.C::class,
Test.A::class) Test.B::class)
public fun Test.Companion.subtypes(): Set<KClass<out Test>> = subtypes public fun Test.Companion.subtypes(): Set<KClass<out Test>> = subtypes

View File

@@ -0,0 +1,40 @@
import dev.inmo.micro_utils.ksp.sealed.generator.test.subtypes
import dev.inmo.micro_utils.ksp.sealed.generator.test.values
import kotlin.test.Test
import kotlin.test.assertEquals
import kotlin.test.assertTrue
class TestTests {
@Test
fun testThatAfterCompilationTestWorkaroundsHaveCorrectValues() {
val correctValues = arrayOf(
dev.inmo.micro_utils.ksp.sealed.generator.test.Test.C,
dev.inmo.micro_utils.ksp.sealed.generator.test.Test.A,
)
val correctSubtypes = arrayOf(
dev.inmo.micro_utils.ksp.sealed.generator.test.Test.C::class,
dev.inmo.micro_utils.ksp.sealed.generator.test.Test.B::class,
)
assertEquals(
correctValues.size, dev.inmo.micro_utils.ksp.sealed.generator.test.Test.values().size
)
correctValues.forEachIndexed { index, value ->
assertTrue(
value === dev.inmo.micro_utils.ksp.sealed.generator.test.Test.values().elementAt(index)
)
}
assertEquals(
correctSubtypes.size, dev.inmo.micro_utils.ksp.sealed.generator.test.Test.subtypes().size
)
correctSubtypes.forEachIndexed { index, value ->
assertTrue(
value.qualifiedName != null
)
assertTrue(
value.qualifiedName === dev.inmo.micro_utils.ksp.sealed.generator.test.Test.subtypes().elementAt(index).qualifiedName
)
}
}
}