diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d3e82740aa..0fbf2accea 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -55,14 +55,19 @@ The form of the test itself is flexible as long as the logic is covered. > [!NOTE] > The `test-utils` directory is deprecated. Unit tests should be placed in `kotlin-analysis-api`. -Here are some [sample test processors](compiler-plugin/src/test/kotlin/com/google/devtools/ksp/processor) for your reference. +Here are some [sample test processors](kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor) for your reference. #### Steps for writing a test * KSP needs to be built with JDK 11+, because of test dependencies. * Create a test processor under the sample processor folder. * Write your logic by overriding corresponding functions. * Test is performed by running test processor and getting a collection of test results in the form of `List`. - * Make sure you override `toResult()` function to collect test results. + * [required] Ensure your test processor is in the package `com.google.devtools.ksp.processor`. + * [required] The test processor must extend the `AbstractTestProcessor` class. + * [required] Make sure you override `toResult()` function to collect test results. + * [required] The test processor must have a constructor parameter of type boolean. + Specifically, it must override the `enableNewFeatures` property in `AbstractTestProcessor`. + In other words, the constructor parameter list must be as follows: `class MyProcessor(override val enableNewFeatures: Boolean)`. * Leverage visitors for easy traversal of the test case. * To help with easy testing, you can create an annotation for test, and annotate the specific part of the code to avoid doing excess filtering when traveling along the program. * Write your test case to work with the test processor. @@ -74,6 +79,7 @@ Here are some [sample test processors](compiler-plugin/src/test/kotlin/com/googl * [optional] Add `// PROCESSOR INPUT: ` to specify inputs or predicates for the test processor (e.g. `// PROCESSOR INPUT: Anno` or `// PROCESSOR INPUT: kotlin.annotation.Retention, kotlin.annotation.Target`, as in [`aliasedAnnotation.kt`](kotlin-analysis-api/testData/getSymbolsWithAnnotation/aliasedAnnotation.kt)). Note: for a processor to accept input, its constructor must have a single `List` parameter. This is a handy way of writing a parametric test processor. + The `List` parameter list must come before the `enableNewFeatures` property. * Immediately after the test processor line(s), start your expected result lines. Every line should start with `// ` (with a space after `//`). * Add `// END` to indicate the end of expected test results. * Then follows the virtual files section till the end of the test file. @@ -83,7 +89,9 @@ Here are some [sample test processors](compiler-plugin/src/test/kotlin/com/googl * Annotate the test with `@Bug` and `@BugState`. * The `@Bug` annotation requires a link to an open or existing GitHub issue (e.g., `@Bug("https://github.com/google/ksp/issues/", BugState.OPEN)`). * Use the `@Negative` marker annotation if applicable. -* Run generated tests with `:compiler-plugin:test` and `:kotlin-analysis-api:test` gradle tasks. +* Run generated tests with the `:kotlin-analysis-api:test` gradle task. * This will execute all tests in the KSP test suite. To run your test only, specify the test name with `--tests "com.google.devtools.ksp.test.KSPUnitTestSuite."` * Make sure your change is not breaking any existing test as well :). +* [optional] You can run the `./gradlew check` task as well to run all tests. + * This task runs all integration tests as well, so it might take a while to complete. diff --git a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/AnnotationArrayValueTypeProcessor.kt b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/AnnotationArrayValueTypeProcessor.kt index 6a3b477960..3f326914da 100644 --- a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/AnnotationArrayValueTypeProcessor.kt +++ b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/AnnotationArrayValueTypeProcessor.kt @@ -21,7 +21,7 @@ import com.google.devtools.ksp.getClassDeclarationByName import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.KSAnnotated -class AnnotationArrayValueTypeProcessor : AbstractTestProcessor() { +class AnnotationArrayValueTypeProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { private val results = mutableListOf() override fun process(resolver: Resolver): List { diff --git a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/AnnotationsInDependenciesProcessor.kt b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/AnnotationsInDependenciesProcessor.kt index da4146b29c..d4c0cfee77 100644 --- a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/AnnotationsInDependenciesProcessor.kt +++ b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/AnnotationsInDependenciesProcessor.kt @@ -35,7 +35,7 @@ import com.google.devtools.ksp.symbol.Location import com.google.devtools.ksp.symbol.NonExistLocation import com.google.devtools.ksp.visitor.KSTopDownVisitor -class AnnotationsInDependenciesProcessor : AbstractTestProcessor() { +class AnnotationsInDependenciesProcessor(override val enableNewFeatures: Boolean) : AbstractTestProcessor() { private val results = mutableListOf() override fun toResult() = results @@ -69,7 +69,7 @@ class AnnotationsInDependenciesProcessor : AbstractTestProcessor() { private fun collectAnnotations(resolver: Resolver, qName: String): Map> { val output = mutableMapOf>() resolver.getClassDeclarationByName(qName)?.accept( - AnnotationVisitor(), + AnnotationVisitor(enableNewFeatures), output ) return output @@ -83,6 +83,7 @@ class AnnotationsInDependenciesProcessor : AbstractTestProcessor() { is KSValueParameter -> name?.let { "parameter ${it.asString()} ${this.location.lineNumber}" } ?: "no-name-value-parameter ${this.location.lineNumber}" + is KSPropertyGetter -> "getter of ${receiver.toSignature()}" // lineNumber handled by recursive call is KSPropertySetter -> "setter of ${receiver.toSignature()}" // lineNumber handled by recursive call is KSBackingField -> "field of ${property.toSignature()}" // lineNumber handled by recursive call @@ -108,7 +109,8 @@ class AnnotationsInDependenciesProcessor : AbstractTestProcessor() { is NonExistLocation -> "" } - class AnnotationVisitor : KSTopDownVisitor>, Unit>() { + class AnnotationVisitor(enableNewFeatures: Boolean) : + KSTopDownVisitor>, Unit>(enableNewFeatures) { override fun defaultHandler(node: KSNode, data: MutableMap>) { } diff --git a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/DefaultKClassValueProcessor.kt b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/DefaultKClassValueProcessor.kt index dade2a25b7..e076e6f742 100644 --- a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/DefaultKClassValueProcessor.kt +++ b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/DefaultKClassValueProcessor.kt @@ -5,7 +5,7 @@ import com.google.devtools.ksp.impl.symbol.kotlin.KSTypeImpl import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.KSAnnotated -class DefaultKClassValueProcessor : AbstractTestProcessor() { +class DefaultKClassValueProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() override fun toResult(): List { diff --git a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/EnumModifierProcessor.kt b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/EnumModifierProcessor.kt index ab5a4a0468..15c85672cd 100644 --- a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/EnumModifierProcessor.kt +++ b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/EnumModifierProcessor.kt @@ -21,7 +21,7 @@ import com.google.devtools.ksp.getClassDeclarationByName import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.KSAnnotated -class EnumModifierProcessor(val declarationNames: List) : AbstractTestProcessor() { +class EnumModifierProcessor(val declarationNames: List, override val enableNewFeatures: Boolean) : AbstractTestProcessor() { private val result: MutableList = mutableListOf() override fun toResult(): List = result.sorted() diff --git a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/EquivalentJavaWildcardProcessor.kt b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/EquivalentJavaWildcardProcessor.kt index 14580050e7..6285565362 100644 --- a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/EquivalentJavaWildcardProcessor.kt +++ b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/EquivalentJavaWildcardProcessor.kt @@ -25,14 +25,14 @@ import com.google.devtools.ksp.symbol.KSNode import com.google.devtools.ksp.symbol.KSTypeReference import com.google.devtools.ksp.visitor.KSTopDownVisitor -open class EquivalentJavaWildcardProcessor : AbstractTestProcessor() { +open class EquivalentJavaWildcardProcessor(override val enableNewFeatures: Boolean) : AbstractTestProcessor() { val results = mutableListOf() @OptIn(KspExperimental::class) override fun process(resolver: Resolver): List { resolver.getNewFiles().forEach { resolver.getNewFiles().forEach { - it.accept(RefVisitor(results, resolver), "") + it.accept(RefVisitor(results, resolver, enableNewFeatures), "") } } @@ -43,10 +43,8 @@ open class EquivalentJavaWildcardProcessor : AbstractTestProcessor() { return results } - private class RefVisitor( - val results: MutableList, - val resolver: Resolver - ) : KSTopDownVisitor() { + private class RefVisitor(val results: MutableList, val resolver: Resolver, enableNewFeatures: Boolean) : + KSTopDownVisitor(enableNewFeatures) { override fun defaultHandler(node: KSNode, data: String) = Unit private fun KSTypeReference.pretty(): String { diff --git a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/ExplicitBackingFieldsSubtypingProcessor.kt b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/ExplicitBackingFieldsSubtypingProcessor.kt index bbe0b3b71c..ee31d59e52 100644 --- a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/ExplicitBackingFieldsSubtypingProcessor.kt +++ b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/ExplicitBackingFieldsSubtypingProcessor.kt @@ -23,7 +23,7 @@ import com.google.devtools.ksp.symbol.KSAnnotated import com.google.devtools.ksp.symbol.KSFile import com.google.devtools.ksp.symbol.KSNode -class ExplicitBackingFieldsSubtypingProcessor : AbstractTestProcessor() { +class ExplicitBackingFieldsSubtypingProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() override fun toResult(): List { diff --git a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/GetDeclarationsProcessor.kt b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/GetDeclarationsProcessor.kt index f061706729..40e351a93d 100644 --- a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/GetDeclarationsProcessor.kt +++ b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/GetDeclarationsProcessor.kt @@ -21,7 +21,7 @@ import com.google.devtools.ksp.getClassDeclarationByName import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.KSAnnotated -class GetDeclarationsProcessor(val declarationNames: List) : AbstractTestProcessor() { +class GetDeclarationsProcessor(val declarationNames: List, override val enableNewFeatures: Boolean) : AbstractTestProcessor() { private val result = mutableListOf() override fun toResult(): List = result diff --git a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/GetSymbolsWithAnnotationProcessor.kt b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/GetSymbolsWithAnnotationProcessor.kt index eb16226ca9..37b4b1c0be 100644 --- a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/GetSymbolsWithAnnotationProcessor.kt +++ b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/GetSymbolsWithAnnotationProcessor.kt @@ -5,7 +5,7 @@ import com.google.devtools.ksp.symbol.KSAnnotated import com.google.devtools.ksp.symbol.KSFile import com.google.devtools.ksp.symbol.KSNode -class GetSymbolsWithAnnotationProcessor(val annotationNames: List) : AbstractTestProcessor() { +class GetSymbolsWithAnnotationProcessor(val annotationNames: List, override val enableNewFeatures: Boolean) : AbstractTestProcessor() { val results = mutableListOf() override fun toResult(): List { diff --git a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/HelloProcessor.kt b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/HelloProcessor.kt index 389f284afd..cb8e1cdf8d 100644 --- a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/HelloProcessor.kt +++ b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/HelloProcessor.kt @@ -20,7 +20,7 @@ package com.google.devtools.ksp.processor import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* -class HelloProcessor : AbstractTestProcessor() { +class HelloProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() val visitor = HelloVisitor() @@ -35,7 +35,7 @@ class HelloProcessor : AbstractTestProcessor() { return results.sorted() } - inner class HelloVisitor : KSVisitorVoid() { + inner class HelloVisitor : KSVisitorVoid(enableNewFeatures) { override fun visitClassDeclaration(classDeclaration: KSClassDeclaration, data: Unit) { results.add(classDeclaration.qualifiedName?.asString() ?: "") } diff --git a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/ImplicitElementProcessor.kt b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/ImplicitElementProcessor.kt index f24d4f375a..c9245bb375 100644 --- a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/ImplicitElementProcessor.kt +++ b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/ImplicitElementProcessor.kt @@ -26,7 +26,7 @@ import com.google.devtools.ksp.symbol.KSAnnotated import com.google.devtools.ksp.symbol.KSDeclaration import com.google.devtools.ksp.symbol.KSPropertyDeclaration -class ImplicitElementProcessor : AbstractTestProcessor() { +class ImplicitElementProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val result: MutableList = mutableListOf() override fun toResult(): List { diff --git a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/JavaBackingFieldProcessor.kt b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/JavaBackingFieldProcessor.kt index 08d79f6c14..361f5c1826 100644 --- a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/JavaBackingFieldProcessor.kt +++ b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/JavaBackingFieldProcessor.kt @@ -22,7 +22,7 @@ import com.google.devtools.ksp.getDeclaredProperties import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.KSAnnotated -class JavaBackingFieldProcessor : AbstractTestProcessor() { +class JavaBackingFieldProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() override fun toResult(): List { diff --git a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/JavaModifierJvmStaticAnnotationProcessor.kt b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/JavaModifierJvmStaticAnnotationProcessor.kt index 549ecb73c3..a228b4b5e9 100644 --- a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/JavaModifierJvmStaticAnnotationProcessor.kt +++ b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/JavaModifierJvmStaticAnnotationProcessor.kt @@ -23,7 +23,8 @@ import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.KSAnnotated import com.google.devtools.ksp.symbol.KSClassDeclaration -class JavaModifierJvmStaticAnnotationProcessor(val classNames: List) : AbstractTestProcessor() { +class JavaModifierJvmStaticAnnotationProcessor(val classNames: List, override val enableNewFeatures: Boolean) : + AbstractTestProcessor() { val results = mutableListOf() override fun toResult(): List { diff --git a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/JavaModifierProcessor.kt b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/JavaModifierProcessor.kt index 3b54987077..118fb08738 100644 --- a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/JavaModifierProcessor.kt +++ b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/JavaModifierProcessor.kt @@ -26,7 +26,7 @@ import com.google.devtools.ksp.symbol.* import com.google.devtools.ksp.symbol.KSPropertyDeclaration import com.google.devtools.ksp.visitor.KSTopDownVisitor -class JavaModifierProcessor : AbstractTestProcessor() { +class JavaModifierProcessor(override val enableNewFeatures: Boolean) : AbstractTestProcessor() { val results = mutableListOf() override fun toResult(): List { @@ -59,7 +59,7 @@ class JavaModifierProcessor : AbstractTestProcessor() { return emptyList() } - inner class ModifierVisitor(val resolver: Resolver) : KSTopDownVisitor() { + inner class ModifierVisitor(val resolver: Resolver) : KSTopDownVisitor(enableNewFeatures) { override fun defaultHandler(node: KSNode, data: Unit) { } diff --git a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/JavaWildcard2Processor.kt b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/JavaWildcard2Processor.kt index 4b9435ae40..ad7c9b5b73 100644 --- a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/JavaWildcard2Processor.kt +++ b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/JavaWildcard2Processor.kt @@ -22,14 +22,14 @@ import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* import com.google.devtools.ksp.visitor.KSTopDownVisitor -open class JavaWildcard2Processor : AbstractTestProcessor() { +open class JavaWildcard2Processor(override val enableNewFeatures: Boolean) : AbstractTestProcessor() { val results = mutableListOf() @OptIn(KspExperimental::class) override fun process(resolver: Resolver): List { resolver.getNewFiles().forEach { resolver.getNewFiles().forEach { - it.accept(RefVisitor(results, resolver), "") + it.accept(RefVisitor(results, resolver, enableNewFeatures), "") } } @@ -40,10 +40,8 @@ open class JavaWildcard2Processor : AbstractTestProcessor() { return results } - private class RefVisitor( - val results: MutableList, - val resolver: Resolver - ) : KSTopDownVisitor() { + private class RefVisitor(val results: MutableList, val resolver: Resolver, enableNewFeatures: Boolean) : + KSTopDownVisitor(enableNewFeatures) { override fun defaultHandler(node: KSNode, data: String) = Unit private fun KSTypeReference.pretty(): String { diff --git a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/NativePackageDeclarationProcessor.kt b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/NativePackageDeclarationProcessor.kt index 6aa3cbbd5b..7063cac102 100644 --- a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/NativePackageDeclarationProcessor.kt +++ b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/NativePackageDeclarationProcessor.kt @@ -21,7 +21,7 @@ import com.google.devtools.ksp.KspExperimental import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* -class NativePackageDeclarationProcessor(val packageNames: List) : AbstractTestProcessor() { +class NativePackageDeclarationProcessor(val packageNames: List, override val enableNewFeatures: Boolean) : AbstractTestProcessor() { val results = mutableListOf() override fun toResult(): List { diff --git a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/NestedAnnotationProcessor.kt b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/NestedAnnotationProcessor.kt index 9e211f16e1..5065e0b9cf 100644 --- a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/NestedAnnotationProcessor.kt +++ b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/NestedAnnotationProcessor.kt @@ -22,7 +22,7 @@ import com.google.devtools.ksp.getDeclaredProperties import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.KSAnnotated -class NestedAnnotationProcessor : AbstractTestProcessor() { +class NestedAnnotationProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val result = mutableListOf() override fun toResult(): List { diff --git a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/ParentOfJavaMethodOverridingKotlinPropertyProcessor.kt b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/ParentOfJavaMethodOverridingKotlinPropertyProcessor.kt index 6559f42f37..6ba0d9ab84 100644 --- a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/ParentOfJavaMethodOverridingKotlinPropertyProcessor.kt +++ b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/ParentOfJavaMethodOverridingKotlinPropertyProcessor.kt @@ -22,7 +22,7 @@ import com.google.devtools.ksp.getDeclaredFunctions import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.KSAnnotated -class ParentOfJavaMethodOverridingKotlinPropertyProcessor : AbstractTestProcessor() { +class ParentOfJavaMethodOverridingKotlinPropertyProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { private val result = mutableListOf() override fun process(resolver: Resolver): List { diff --git a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/RecordJavaAsMemberOfProcessor.kt b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/RecordJavaAsMemberOfProcessor.kt index 061e129c99..2beee2ebde 100644 --- a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/RecordJavaAsMemberOfProcessor.kt +++ b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/RecordJavaAsMemberOfProcessor.kt @@ -21,7 +21,7 @@ import com.google.devtools.ksp.impl.ResolverAAImpl import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* -class RecordJavaAsMemberOfProcessor : AbstractTestProcessor() { +class RecordJavaAsMemberOfProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() override fun toResult(): List { diff --git a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/RecordJavaGetAllMembersProcessor.kt b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/RecordJavaGetAllMembersProcessor.kt index c0fc468aa3..ecbe2b4507 100644 --- a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/RecordJavaGetAllMembersProcessor.kt +++ b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/RecordJavaGetAllMembersProcessor.kt @@ -21,7 +21,7 @@ import com.google.devtools.ksp.impl.ResolverAAImpl import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* -class RecordJavaGetAllMembersProcessor : AbstractTestProcessor() { +class RecordJavaGetAllMembersProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() override fun toResult(): List { diff --git a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/RecordJavaOverridesProcessor.kt b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/RecordJavaOverridesProcessor.kt index b97f36c86b..fd4ac0bbc7 100644 --- a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/RecordJavaOverridesProcessor.kt +++ b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/RecordJavaOverridesProcessor.kt @@ -21,7 +21,7 @@ import com.google.devtools.ksp.impl.ResolverAAImpl import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* -class RecordJavaOverridesProcessor : AbstractTestProcessor() { +class RecordJavaOverridesProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() override fun toResult(): List { diff --git a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/RecordJavaProcessor.kt b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/RecordJavaProcessor.kt index 6ab372d3ce..1dfa56f781 100644 --- a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/RecordJavaProcessor.kt +++ b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/RecordJavaProcessor.kt @@ -22,7 +22,7 @@ import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* import com.google.devtools.ksp.validate -class RecordJavaProcessor : AbstractTestProcessor() { +class RecordJavaProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() override fun toResult(): List { diff --git a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/RecordJavaSupertypesProcessor.kt b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/RecordJavaSupertypesProcessor.kt index 2beb7cf086..9aadb06d66 100644 --- a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/RecordJavaSupertypesProcessor.kt +++ b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/RecordJavaSupertypesProcessor.kt @@ -21,7 +21,7 @@ import com.google.devtools.ksp.impl.ResolverAAImpl import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* -class RecordJavaSupertypesProcessor : AbstractTestProcessor() { +class RecordJavaSupertypesProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() override fun toResult(): List { @@ -33,7 +33,7 @@ class RecordJavaSupertypesProcessor : AbstractTestProcessor() { override fun process(resolver: Resolver): List { val types = mutableSetOf() resolver.getAllFiles().forEach { - it.accept(TypeCollectorNoAccessor(), types) + it.accept(TypeCollectorNoAccessor(enableNewFeatures), types) } types.forEach { resolver.builtIns.anyType.isAssignableFrom(it) diff --git a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/TypeAnnotationClassReferenceProcessor.kt b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/TypeAnnotationClassReferenceProcessor.kt index 394668e192..fd65c84b16 100644 --- a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/TypeAnnotationClassReferenceProcessor.kt +++ b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/TypeAnnotationClassReferenceProcessor.kt @@ -23,7 +23,7 @@ import com.google.devtools.ksp.symbol.KSAnnotated import com.google.devtools.ksp.symbol.KSAnnotation import com.google.devtools.ksp.symbol.KSPropertyDeclaration -class TypeAnnotationClassReferenceProcessor : AbstractTestProcessor() { +class TypeAnnotationClassReferenceProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { private val results = mutableListOf() override fun process(resolver: Resolver): List { diff --git a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/ValueParameterProcessor.kt b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/ValueParameterProcessor.kt index 315056fe40..ca80489f3c 100644 --- a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/ValueParameterProcessor.kt +++ b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/processor/ValueParameterProcessor.kt @@ -4,7 +4,7 @@ import com.google.devtools.ksp.getClassDeclarationByName import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.KSAnnotated -class ValueParameterProcessor : AbstractTestProcessor() { +class ValueParameterProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() override fun toResult(): List { diff --git a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/test/AAConfiguredUnitTestSuite.kt b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/test/AAConfiguredUnitTestSuite.kt index a739f4eaf1..4f30255a1a 100644 --- a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/test/AAConfiguredUnitTestSuite.kt +++ b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/test/AAConfiguredUnitTestSuite.kt @@ -20,7 +20,9 @@ package com.google.devtools.ksp.test import org.jetbrains.kotlin.test.TestMetadata import org.junit.jupiter.api.Test -class AAConfiguredUnitTestSuite : KSPUnitTestSuite(experimentalPsiResolution = false) { +abstract class AAConfiguredUnitTestSuiteBase( + enableNewFeatures: Boolean +) : KSPUnitTestSuite(experimentalPsiResolution = false, enableNewFeatures) { @TestMetadata("getSymbolsWithAnnotation/aliasedAnnotation.kt") @Test @@ -58,3 +60,7 @@ class AAConfiguredUnitTestSuite : KSPUnitTestSuite(experimentalPsiResolution = f runTest("$AA_PATH/javaSubtypeOfKotlinInterface.kt") } } + +class AAConfiguredUnitTestSuite : AAConfiguredUnitTestSuiteBase(enableNewFeatures = false) + +class AAConfiguredNewFeaturesUnitTestSuite : AAConfiguredUnitTestSuiteBase(enableNewFeatures = true) diff --git a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/test/AbstractKSPAATest.kt b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/test/AbstractKSPAATest.kt index cf2b3377d5..e0827481de 100644 --- a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/test/AbstractKSPAATest.kt +++ b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/test/AbstractKSPAATest.kt @@ -52,7 +52,10 @@ import java.io.File import java.io.PrintStream import java.net.URLClassLoader -abstract class AbstractKSPAATest(val experimentalPsiResolution: Boolean) : AbstractKSPTest(FrontendKinds.FIR) { +abstract class AbstractKSPAATest( + val experimentalPsiResolution: Boolean, + enableNewFeatures: Boolean, +) : AbstractKSPTest(FrontendKinds.FIR, enableNewFeatures) { val TestModule.kotlinSrc get() = File(testRoot, "kotlinSrc") diff --git a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/test/AbstractKSPTest.kt b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/test/AbstractKSPTest.kt index 1a7e843438..e1ae6d3dee 100644 --- a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/test/AbstractKSPTest.kt +++ b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/test/AbstractKSPTest.kt @@ -80,7 +80,7 @@ abstract class DisposableTest { } } -abstract class AbstractKSPTest(frontend: FrontendKind<*>) : DisposableTest() { +abstract class AbstractKSPTest(frontend: FrontendKind<*>, val enableNewFeatures: Boolean) : DisposableTest() { companion object { const val TEST_PROCESSOR = "// TEST PROCESSOR:" const val PROCESSOR_INPUT = "// PROCESSOR INPUT:" @@ -302,40 +302,11 @@ abstract class AbstractKSPTest(frontend: FrontendKind<*>) : DisposableTest() { val fileContents = mainModule.files.first().originalFile.readLines() - val testProcessorName = fileContents - .single { it.startsWith(TEST_PROCESSOR) } - .substringAfter(TEST_PROCESSOR) - .trim() - - val testAnnotationNames = fileContents - .find { it.startsWith(PROCESSOR_INPUT) } - ?.substringAfter(PROCESSOR_INPUT) - ?.split(',') - ?.map { it.trim() } - - val processorClass = Class.forName("com.google.devtools.ksp.processor.$testProcessorName") - - val testProcessor: AbstractTestProcessor = - if (testAnnotationNames == null) { - // Instantiate processor class without constructor params - processorClass - .getDeclaredConstructor() - .newInstance() as AbstractTestProcessor - } else { - // Instantiate parameterized processor class - processorClass - .getDeclaredConstructor(List::class.java) - .newInstance(testAnnotationNames) as AbstractTestProcessor - } + val processorArguments = parseProcessorArguments(fileContents) + val processorClass = mkTestProcessorClass(parseTestProcessorName(fileContents)) + val testProcessor = mkProcessor(processorArguments, processorClass) - val expected = fileContents - .dropWhile { !it.startsWith(EXPECTED_RESULTS) } - .drop(1) - .takeWhile { !it.startsWith(EXPECTED_RESULTS_END) } - .joinToString("\n") { - // Remove '// ' prefix - it.substring(3).trim() - } + val expected = parseExpectedOutput(fileContents) val actual = { runTest( @@ -346,7 +317,45 @@ abstract class AbstractKSPTest(frontend: FrontendKind<*>) : DisposableTest() { ).joinToString("\n") } - return Pair(expected, actual) + return expected to actual + } + + private fun mkTestProcessorClass(testProcessorName: String): Class<*> = + Class.forName("com.google.devtools.ksp.processor.$testProcessorName") + + private fun parseTestProcessorName(fileContents: List): String = fileContents + .single { it.startsWith(TEST_PROCESSOR) } + .substringAfter(TEST_PROCESSOR) + .trim() + + private fun parseProcessorArguments(fileContents: List): List? = fileContents + .find { it.startsWith(PROCESSOR_INPUT) } + ?.substringAfter(PROCESSOR_INPUT) + ?.split(',') + ?.map { it.trim() } + + private fun parseExpectedOutput(fileContents: List): String = fileContents + .dropWhile { !it.startsWith(EXPECTED_RESULTS) } + .drop(1) + .takeWhile { !it.startsWith(EXPECTED_RESULTS_END) } + .joinToString("\n") { + // Remove '// ' prefix + it.substring(3).trim() + } + + private fun mkProcessor( + processorArguments: List?, + processorClass: Class<*> + ): AbstractTestProcessor = if (processorArguments == null) { + // Instantiate processor class with enableNewFeatures param + processorClass + .getDeclaredConstructor(Boolean::class.java) + .newInstance(this.enableNewFeatures) as AbstractTestProcessor + } else { + // Instantiate parameterized processor class + processorClass + .getDeclaredConstructor(List::class.java, Boolean::class.java) + .newInstance(processorArguments, this.enableNewFeatures) as AbstractTestProcessor } } diff --git a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/test/KSPUnitTestSuite.kt b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/test/KSPUnitTestSuite.kt index 42ddea4c8a..9e0d9c37b1 100644 --- a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/test/KSPUnitTestSuite.kt +++ b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/test/KSPUnitTestSuite.kt @@ -30,8 +30,9 @@ import org.junit.jupiter.api.parallel.ExecutionMode @Execution(ExecutionMode.SAME_THREAD) abstract class KSPUnitTestSuite( - experimentalPsiResolution: Boolean -) : AbstractKSPAATest(experimentalPsiResolution) { + experimentalPsiResolution: Boolean, + enableNewFeatures: Boolean +) : AbstractKSPAATest(experimentalPsiResolution, enableNewFeatures) { companion object { internal const val AA_PATH: String = "../kotlin-analysis-api/testData" diff --git a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/test/PsiConfiguredUnitTestSuite.kt b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/test/PsiConfiguredUnitTestSuite.kt index 107ca2ebde..258a9c751e 100644 --- a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/test/PsiConfiguredUnitTestSuite.kt +++ b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/test/PsiConfiguredUnitTestSuite.kt @@ -20,7 +20,9 @@ package com.google.devtools.ksp.test import org.jetbrains.kotlin.test.TestMetadata import org.junit.jupiter.api.Test -class PsiConfiguredUnitTestSuite : KSPUnitTestSuite(experimentalPsiResolution = true) { +abstract class PsiConfiguredUnitTestSuiteBase( + enableNewFeatures: Boolean +) : KSPUnitTestSuite(experimentalPsiResolution = true, enableNewFeatures) { @TestMetadata("getSymbolsWithAnnotation/aliasedAnnotation.kt") @Test @@ -58,3 +60,7 @@ class PsiConfiguredUnitTestSuite : KSPUnitTestSuite(experimentalPsiResolution = runFailingTest("$AA_PATH/javaSubtypeOfKotlinInterface.kt") } } + +class PsiConfiguredUnitTestSuite : PsiConfiguredUnitTestSuiteBase(enableNewFeatures = false) + +class PsiConfiguredNewFeaturesUnitTestSuite : PsiConfiguredUnitTestSuiteBase(enableNewFeatures = true) diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AbstractFunctionsProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AbstractFunctionsProcessor.kt index 2b49854e74..18ef0ec64e 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AbstractFunctionsProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AbstractFunctionsProcessor.kt @@ -6,8 +6,8 @@ import com.google.devtools.ksp.symbol.KSFunctionDeclaration import com.google.devtools.ksp.symbol.KSNode import com.google.devtools.ksp.visitor.KSTopDownVisitor -class AbstractFunctionsProcessor : AbstractTestProcessor() { - private val visitor = Visitor() +class AbstractFunctionsProcessor(override val enableNewFeatures: Boolean) : AbstractTestProcessor() { + private val visitor = Visitor(enableNewFeatures) override fun toResult(): List { return visitor.abstractFunctionNames.sorted() @@ -18,7 +18,7 @@ class AbstractFunctionsProcessor : AbstractTestProcessor() { return emptyList() } - private class Visitor : KSTopDownVisitor() { + private class Visitor(enableNewFeatures: Boolean) : KSTopDownVisitor(enableNewFeatures) { val abstractFunctionNames = arrayListOf() override fun defaultHandler(node: KSNode, data: Unit) { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AbstractTestProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AbstractTestProcessor.kt index c6a818768c..651fdfc4a2 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AbstractTestProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AbstractTestProcessor.kt @@ -22,7 +22,13 @@ import com.google.devtools.ksp.processing.SymbolProcessorEnvironment import com.google.devtools.ksp.processing.SymbolProcessorProvider abstract class AbstractTestProcessor : SymbolProcessor, SymbolProcessorProvider { + abstract val enableNewFeatures: Boolean abstract fun toResult(): List - override fun create(environment: SymbolProcessorEnvironment): SymbolProcessor = this + override fun create(environment: SymbolProcessorEnvironment): SymbolProcessor { + if (enableNewFeatures) { + environment.registerProcessorForNewFeatures(this) + } + return this + } } diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AllFunctionsProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AllFunctionsProcessor.kt index 65c682b232..728baba586 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AllFunctionsProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AllFunctionsProcessor.kt @@ -20,8 +20,8 @@ package com.google.devtools.ksp.processor import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* -class AllFunctionsProcessor : AbstractTestProcessor() { - val visitor = AllFunctionsVisitor() +class AllFunctionsProcessor(override val enableNewFeatures: Boolean) : AbstractTestProcessor() { + val visitor = AllFunctionsVisitor(enableNewFeatures) override fun toResult(): List { return visitor.toResult() @@ -32,7 +32,7 @@ class AllFunctionsProcessor : AbstractTestProcessor() { return emptyList() } - class AllFunctionsVisitor : KSVisitorVoid() { + class AllFunctionsVisitor(enableNewFeatures: Boolean) : KSVisitorVoid(enableNewFeatures) { private val declarationsByClass = mutableMapOf>() fun toResult(): List { return declarationsByClass.entries @@ -42,19 +42,22 @@ class AllFunctionsProcessor : AbstractTestProcessor() { listOf(it.key) + it.value } } + fun KSFunctionDeclaration.toSignature(): String { return this.simpleName.asString() + - "(${this.parameters.map { - buildString { - append(it.type.resolve().declaration.qualifiedName?.asString()) - if (it.hasDefault) { - append("(hasDefault)") - } - if (it.isVararg) { - append(" ...") + "(${ + this.parameters.map { + buildString { + append(it.type.resolve().declaration.qualifiedName?.asString()) + if (it.hasDefault) { + append("(hasDefault)") + } + if (it.isVararg) { + append(" ...") + } } - } - }.joinToString(",")})" + + }.joinToString(",") + })" + ": ${this.returnType?.resolve()?.declaration?.qualifiedName?.asString() ?: ""}" } diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotatedUtilProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotatedUtilProcessor.kt index 954feb432b..608a429c4d 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotatedUtilProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotatedUtilProcessor.kt @@ -26,7 +26,7 @@ import com.google.devtools.ksp.symbol.KSNode import com.google.devtools.ksp.visitor.KSTopDownVisitor import kotlin.reflect.KClass -class AnnotatedUtilProcessor : AbstractTestProcessor() { +class AnnotatedUtilProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() private val annotationKClasses = listOf( ParametersTestAnnotation::class, @@ -34,7 +34,7 @@ class AnnotatedUtilProcessor : AbstractTestProcessor() { ParametersTestWithNegativeDefaultsAnnotation::class, OuterAnnotation::class ) - private val visitors = listOf(IsAnnotationPresentVisitor(), GetAnnotationsByTypeVisitor()) + private val visitors = listOf(IsAnnotationPresentVisitor(enableNewFeatures), GetAnnotationsByTypeVisitor(enableNewFeatures)) override fun process(resolver: Resolver): List { resolver.getSymbolsWithAnnotation("com.google.devtools.ksp.processor.Test", true).forEach { @@ -48,7 +48,7 @@ class AnnotatedUtilProcessor : AbstractTestProcessor() { return results } - inner class IsAnnotationPresentVisitor : KSTopDownVisitor, Unit>() { + inner class IsAnnotationPresentVisitor(enableNewFeatures: Boolean) : KSTopDownVisitor, Unit>(enableNewFeatures) { @OptIn(KspExperimental::class) override fun visitAnnotated(annotated: KSAnnotated, data: MutableCollection) { annotationKClasses.forEach { clazz -> @@ -62,7 +62,7 @@ class AnnotatedUtilProcessor : AbstractTestProcessor() { } } - inner class GetAnnotationsByTypeVisitor : KSTopDownVisitor, Unit>() { + inner class GetAnnotationsByTypeVisitor(enableNewFeatures: Boolean) : KSTopDownVisitor, Unit>(enableNewFeatures) { @OptIn(KspExperimental::class) override fun visitAnnotated(annotated: KSAnnotated, data: MutableCollection) { annotationKClasses.forEach { clazz -> diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationArbitraryClassValueProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationArbitraryClassValueProcessor.kt index 26bbb2a92a..efa9da49ba 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationArbitraryClassValueProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationArbitraryClassValueProcessor.kt @@ -26,7 +26,7 @@ import com.google.devtools.ksp.symbol.KSAnnotated import kotlin.reflect.KClass @KspExperimental -class AnnotationArbitraryClassValueProcessor : AbstractTestProcessor() { +class AnnotationArbitraryClassValueProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val result = mutableListOf() override fun toResult(): List { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationArgumentProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationArgumentProcessor.kt index b3b2fe989d..1982e0070c 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationArgumentProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationArgumentProcessor.kt @@ -21,14 +21,14 @@ import com.google.devtools.ksp.getClassDeclarationByName import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* -class AnnotationArgumentProcessor : AbstractTestProcessor() { +class AnnotationArgumentProcessor(override val enableNewFeatures: Boolean) : AbstractTestProcessor() { val results = mutableListOf() val visitor = ArgumentVisitor() override fun process(resolver: Resolver): List { listOf("MyClass", "MyClassInLib").forEach { clsName -> resolver.getClassDeclarationByName(clsName)?.let { cls -> - cls.annotations.forEach() { annotation -> + cls.annotations.forEach { annotation -> results.add( "$clsName: ${annotation.annotationType.resolve().declaration.qualifiedName?.asString()}" ) @@ -135,7 +135,7 @@ class AnnotationArgumentProcessor : AbstractTestProcessor() { return results } - inner class ArgumentVisitor : KSVisitorVoid() { + inner class ArgumentVisitor : KSVisitorVoid(enableNewFeatures) { override fun visitValueArgument(valueArgument: KSValueArgument, data: Unit) { if (valueArgument.value is KSType) { results.add((valueArgument.value as KSType).declaration.toString()) diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationArrayValueProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationArrayValueProcessor.kt index 44874e5bfa..fca237ef89 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationArrayValueProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationArrayValueProcessor.kt @@ -22,7 +22,7 @@ import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.KSAnnotated import com.google.devtools.ksp.symbol.KSClassDeclaration -class AnnotationArrayValueProcessor : AbstractTestProcessor() { +class AnnotationArrayValueProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val result = mutableListOf() override fun toResult(): List { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationDefaultValueProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationDefaultValueProcessor.kt index bd2c1aae81..3dd0d755b6 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationDefaultValueProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationDefaultValueProcessor.kt @@ -22,7 +22,7 @@ import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.KSAnnotated import com.google.devtools.ksp.symbol.KSClassDeclaration -class AnnotationDefaultValueProcessor : AbstractTestProcessor() { +class AnnotationDefaultValueProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val result = mutableListOf() override fun toResult(): List { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationDefaultValuesProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationDefaultValuesProcessor.kt index 2637cb2f80..aa5cfda6d5 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationDefaultValuesProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationDefaultValuesProcessor.kt @@ -21,7 +21,7 @@ import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.KSAnnotated import com.google.devtools.ksp.symbol.KSClassDeclaration -class AnnotationDefaultValuesProcessor : AbstractTestProcessor() { +class AnnotationDefaultValuesProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val result = mutableListOf() override fun toResult(): List { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationJavaTypeValueProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationJavaTypeValueProcessor.kt index e59763ded0..b505b27277 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationJavaTypeValueProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationJavaTypeValueProcessor.kt @@ -22,7 +22,7 @@ import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.KSAnnotated import com.google.devtools.ksp.symbol.KSClassDeclaration -class AnnotationJavaTypeValueProcessor : AbstractTestProcessor() { +class AnnotationJavaTypeValueProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val result = mutableListOf() override fun toResult(): List { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationNestedClassValueProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationNestedClassValueProcessor.kt index b60102c3b0..af63343da7 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationNestedClassValueProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationNestedClassValueProcessor.kt @@ -24,7 +24,7 @@ import com.google.devtools.ksp.symbol.KSAnnotated import kotlin.reflect.KClass @KspExperimental -class AnnotationNestedClassValueProcessor : AbstractTestProcessor() { +class AnnotationNestedClassValueProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val result = mutableListOf() override fun toResult(): List { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationOnConstructorParameterProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationOnConstructorParameterProcessor.kt index 1b7b034989..f1c4dcc018 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationOnConstructorParameterProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationOnConstructorParameterProcessor.kt @@ -22,7 +22,7 @@ import com.google.devtools.ksp.getDeclaredProperties import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* -class AnnotationOnConstructorParameterProcessor : AbstractTestProcessor() { +class AnnotationOnConstructorParameterProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() override fun process(resolver: Resolver): List { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationOnReceiverProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationOnReceiverProcessor.kt index 6abdb41b0e..56384a77f2 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationOnReceiverProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationOnReceiverProcessor.kt @@ -6,7 +6,7 @@ import com.google.devtools.ksp.getDeclaredProperties import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.KSAnnotated -class AnnotationOnReceiverProcessor : AbstractTestProcessor() { +class AnnotationOnReceiverProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() override fun toResult(): List { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationTargetsProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationTargetsProcessor.kt index 2d035bc3a8..dcace84adc 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationTargetsProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationTargetsProcessor.kt @@ -20,7 +20,7 @@ package com.google.devtools.ksp.processor import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* -class AnnotationTargetsProcessor : AbstractTestProcessor() { +class AnnotationTargetsProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() override fun process(resolver: Resolver): List { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationsRepeatableProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationsRepeatableProcessor.kt index ca4483dae1..53e5b0f4bd 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationsRepeatableProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationsRepeatableProcessor.kt @@ -21,7 +21,7 @@ import com.google.devtools.ksp.getClassDeclarationByName import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* -open class AnnotationsRepeatableProcessor : AbstractTestProcessor() { +open class AnnotationsRepeatableProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() override fun process(resolver: Resolver): List { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AsMemberOfProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AsMemberOfProcessor.kt index 655cb5cf51..ae680171b7 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AsMemberOfProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AsMemberOfProcessor.kt @@ -7,7 +7,7 @@ import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* @Suppress("unused") // used by generated tests -class AsMemberOfProcessor : AbstractTestProcessor() { +class AsMemberOfProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() // keep a list of all signatures we generate and ensure equals work as expected private val functionsBySignature = mutableMapOf>() diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/BackingFieldProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/BackingFieldProcessor.kt index ed4d8f39f5..c2a1875f5e 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/BackingFieldProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/BackingFieldProcessor.kt @@ -26,7 +26,7 @@ import com.google.devtools.ksp.visitor.KSTopDownVisitor @Suppress("unused") // used in tests @OptIn(KspExperimental::class) -open class BackingFieldProcessor : AbstractTestProcessor() { +open class BackingFieldProcessor(override val enableNewFeatures: Boolean) : AbstractTestProcessor() { lateinit var results: List override fun process(resolver: Resolver): List { @@ -34,7 +34,7 @@ open class BackingFieldProcessor : AbstractTestProcessor() { resolver.getDeclarationsFromPackage(pkg) .flatMap { declaration -> val properties = mutableListOf() - declaration.accept(AllMembersVisitor(), properties) + declaration.accept(AllMembersVisitor(enableNewFeatures), properties) properties }.map { "${it.qualifiedName?.asString()}: ${it.hasBackingField}" @@ -43,7 +43,8 @@ open class BackingFieldProcessor : AbstractTestProcessor() { return emptyList() } - private class AllMembersVisitor : KSTopDownVisitor, Unit>() { + private class AllMembersVisitor(enableNewFeatures: Boolean) : + KSTopDownVisitor, Unit>(enableNewFeatures) { override fun defaultHandler(node: KSNode, data: MutableList) { } diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/BaseVisitor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/BaseVisitor.kt index 20e6eb4b93..dac5085748 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/BaseVisitor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/BaseVisitor.kt @@ -5,7 +5,7 @@ import com.google.devtools.ksp.symbol.KSFile import com.google.devtools.ksp.symbol.KSFunctionDeclaration import com.google.devtools.ksp.symbol.KSVisitorVoid -open class BaseVisitor : KSVisitorVoid() { +open class BaseVisitor(enableNewFeatures: Boolean) : KSVisitorVoid(enableNewFeatures) { override fun visitClassDeclaration(classDeclaration: KSClassDeclaration, data: Unit) { for (declaration in classDeclaration.declarations) { declaration.accept(this, Unit) diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/BuiltInTypesProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/BuiltInTypesProcessor.kt index d7c955b5ec..1880da32b2 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/BuiltInTypesProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/BuiltInTypesProcessor.kt @@ -20,9 +20,9 @@ package com.google.devtools.ksp.processor import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* -open class BuiltInTypesProcessor : AbstractTestProcessor() { +open class BuiltInTypesProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() - val typeCollector = TypeCollectorNoAccessor() + val typeCollector = TypeCollectorNoAccessor(enableNewFeatures) val types = mutableSetOf() override fun process(resolver: Resolver): List { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/CheckOverrideProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/CheckOverrideProcessor.kt index b9010b0608..9f2f4fa49b 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/CheckOverrideProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/CheckOverrideProcessor.kt @@ -22,7 +22,7 @@ import com.google.devtools.ksp.getDeclaredFunctions import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* -class CheckOverrideProcessor : AbstractTestProcessor() { +class CheckOverrideProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() override fun toResult(): List { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ClassKindsProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ClassKindsProcessor.kt index f2d464673f..03aef81140 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ClassKindsProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ClassKindsProcessor.kt @@ -22,7 +22,7 @@ import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* import com.google.devtools.ksp.visitor.KSTopDownVisitor -open class ClassKindsProcessor : AbstractTestProcessor() { +open class ClassKindsProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() override fun process(resolver: Resolver): List { @@ -30,7 +30,7 @@ open class ClassKindsProcessor : AbstractTestProcessor() { val files = resolver.getNewFiles() files.forEach { it.accept( - object : KSTopDownVisitor() { + object : KSTopDownVisitor(enableNewFeatures) { override fun defaultHandler(node: KSNode, data: Unit) = Unit override fun visitClassDeclaration(classDeclaration: KSClassDeclaration, data: Unit) { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ClassWithCompanionProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ClassWithCompanionProcessor.kt index f1b8478329..6166459a04 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ClassWithCompanionProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ClassWithCompanionProcessor.kt @@ -24,7 +24,7 @@ import com.google.devtools.ksp.symbol.KSClassDeclaration import com.google.devtools.ksp.symbol.KSFile import com.google.devtools.ksp.symbol.KSVisitorVoid -class ClassWithCompanionProcessor : AbstractTestProcessor() { +class ClassWithCompanionProcessor(override val enableNewFeatures: Boolean) : AbstractTestProcessor() { val results = mutableListOf() val visitor = CompanionVisitor() @@ -38,7 +38,7 @@ class ClassWithCompanionProcessor : AbstractTestProcessor() { return results } - inner class CompanionVisitor : KSVisitorVoid() { + inner class CompanionVisitor : KSVisitorVoid(enableNewFeatures) { override fun visitFile(file: KSFile, data: Unit) { file.declarations.forEach { it.accept(this, Unit) } } diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ConstPropertiesProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ConstPropertiesProcessor.kt index eebdafceb9..54d6728b40 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ConstPropertiesProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ConstPropertiesProcessor.kt @@ -8,8 +8,8 @@ import com.google.devtools.ksp.symbol.KSPropertyDeclaration import com.google.devtools.ksp.symbol.Modifier import com.google.devtools.ksp.visitor.KSTopDownVisitor -class ConstPropertiesProcessor : AbstractTestProcessor() { - private val visitor = Visitor() +class ConstPropertiesProcessor(override val enableNewFeatures: Boolean) : AbstractTestProcessor() { + private val visitor = Visitor(enableNewFeatures) override fun toResult(): List { return visitor.constPropertiesNames.sorted() @@ -24,7 +24,7 @@ class ConstPropertiesProcessor : AbstractTestProcessor() { return emptyList() } - private class Visitor : KSTopDownVisitor() { + private class Visitor(enableNewFeatures: Boolean) : KSTopDownVisitor(enableNewFeatures) { val constPropertiesNames = arrayListOf() override fun defaultHandler(node: KSNode, data: Unit) { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ConstructorDeclarationsProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ConstructorDeclarationsProcessor.kt index 8556027699..b0d28da82b 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ConstructorDeclarationsProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ConstructorDeclarationsProcessor.kt @@ -22,8 +22,8 @@ import com.google.devtools.ksp.getConstructors import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* -class ConstructorDeclarationsProcessor : AbstractTestProcessor() { - val visitor = ConstructorsVisitor() +class ConstructorDeclarationsProcessor(override val enableNewFeatures: Boolean) : AbstractTestProcessor() { + val visitor = ConstructorsVisitor(enableNewFeatures) lateinit var result: List override fun toResult(): List { @@ -44,7 +44,7 @@ class ConstructorDeclarationsProcessor : AbstractTestProcessor() { return emptyList() } - class ConstructorsVisitor : KSVisitorVoid() { + class ConstructorsVisitor(enableNewFeatures: Boolean) : KSVisitorVoid(enableNewFeatures) { private val declarationsByClass = LinkedHashMap>() fun classNames() = declarationsByClass.keys fun toResult(): List { @@ -58,18 +58,23 @@ class ConstructorDeclarationsProcessor : AbstractTestProcessor() { listOf("class: " + it.key.qualifiedName!!.asString()) + it.value } } + fun KSFunctionDeclaration.toSignature(): String { return this.simpleName.asString() + - "(${this.parameters.map { - buildString { - append(it.type.resolve().declaration.qualifiedName?.asString()) - if (it.hasDefault) { - append("(hasDefault)") + "(${ + this.parameters.map { + buildString { + append(it.type.resolve().declaration.qualifiedName?.asString()) + if (it.hasDefault) { + append("(hasDefault)") + } } - } - }.joinToString(",")})" + - ": ${this.returnType?.resolve()?.declaration?.qualifiedName?.asString() - ?: ""}" + }.joinToString(",") + })" + + ": ${ + this.returnType?.resolve()?.declaration?.qualifiedName?.asString() + ?: "" + }" } override fun visitClassDeclaration(classDeclaration: KSClassDeclaration, data: Unit) { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/CrossModuleTypeAliasTestProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/CrossModuleTypeAliasTestProcessor.kt index cd246001fa..664a9792f3 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/CrossModuleTypeAliasTestProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/CrossModuleTypeAliasTestProcessor.kt @@ -23,7 +23,7 @@ import com.google.devtools.ksp.symbol.KSAnnotated import com.google.devtools.ksp.symbol.KSClassDeclaration import com.google.devtools.ksp.symbol.KSPropertyDeclaration -class CrossModuleTypeAliasTestProcessor : AbstractTestProcessor() { +class CrossModuleTypeAliasTestProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { private val results = mutableListOf() override fun toResult(): List { return results @@ -32,7 +32,7 @@ class CrossModuleTypeAliasTestProcessor : AbstractTestProcessor() { override fun process(resolver: Resolver): List { val target = resolver.getClassDeclarationByName("TestTarget") val classes = mutableSetOf() - val classCollector = object : BaseVisitor() { + val classCollector = object : BaseVisitor(enableNewFeatures) { override fun visitClassDeclaration(classDeclaration: KSClassDeclaration, data: Unit) { if (classes.add(classDeclaration)) { super.visitClassDeclaration(classDeclaration, data) diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DeclarationInconsistencyProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DeclarationInconsistencyProcessor.kt index c580d0373d..088d39d3d5 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DeclarationInconsistencyProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DeclarationInconsistencyProcessor.kt @@ -22,7 +22,7 @@ import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.KSAnnotated import com.google.devtools.ksp.symbol.KSClassDeclaration -class DeclarationInconsistencyProcessor : AbstractTestProcessor() { +class DeclarationInconsistencyProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() override fun process(resolver: Resolver): List { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DeclarationOrderProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DeclarationOrderProcessor.kt index 49aafe63f0..cfc5c80931 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DeclarationOrderProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DeclarationOrderProcessor.kt @@ -7,7 +7,7 @@ import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* @KspExperimental -class DeclarationOrderProcessor : AbstractTestProcessor() { +class DeclarationOrderProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { private val result = mutableListOf() override fun toResult() = result diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DeclarationPackageNameProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DeclarationPackageNameProcessor.kt index e05bbdff59..fd9bc09213 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DeclarationPackageNameProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DeclarationPackageNameProcessor.kt @@ -21,7 +21,7 @@ import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* import com.google.devtools.ksp.visitor.KSTopDownVisitor -class DeclarationPackageNameProcessor : AbstractTestProcessor() { +class DeclarationPackageNameProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val result = mutableListOf() override fun toResult(): List { @@ -29,7 +29,7 @@ class DeclarationPackageNameProcessor : AbstractTestProcessor() { } override fun process(resolver: Resolver): List { - val visitor = NameCollector() + val visitor = NameCollector(enableNewFeatures) resolver.getNewFiles().forEach { it.accept(visitor, result) } listOf("lib.H1", "K1", "J1").mapNotNull { resolver.getClassDeclarationByName(resolver.getKSNameFromString(it)) @@ -40,7 +40,7 @@ class DeclarationPackageNameProcessor : AbstractTestProcessor() { } } -class NameCollector : KSTopDownVisitor, Unit>() { +class NameCollector(enableNewFeatures: Boolean) : KSTopDownVisitor, Unit>(enableNewFeatures) { override fun defaultHandler(node: KSNode, data: MutableCollection) {} diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DeclarationUtilProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DeclarationUtilProcessor.kt index 15bbf140c1..81cdc5eafa 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DeclarationUtilProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DeclarationUtilProcessor.kt @@ -24,7 +24,7 @@ import com.google.devtools.ksp.symbol.KSDeclaration import com.google.devtools.ksp.symbol.KSNode import com.google.devtools.ksp.visitor.KSTopDownVisitor -class DeclarationUtilProcessor : AbstractTestProcessor() { +class DeclarationUtilProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { private val result = mutableListOf() override fun toResult(): List { @@ -32,13 +32,13 @@ class DeclarationUtilProcessor : AbstractTestProcessor() { } override fun process(resolver: Resolver): List { - val visitor = DeclarationCollector() + val visitor = DeclarationCollector(enableNewFeatures) resolver.getNewFiles().forEach { it.accept(visitor, result) } return emptyList() } } -class DeclarationCollector : KSTopDownVisitor, Unit>() { +class DeclarationCollector(enableNewFeatures: Boolean) : KSTopDownVisitor, Unit>(enableNewFeatures) { override fun defaultHandler(node: KSNode, data: MutableCollection) { } diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DeclarationsInClassProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DeclarationsInClassProcessor.kt index 04949e8c7b..fe53c3c15c 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DeclarationsInClassProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DeclarationsInClassProcessor.kt @@ -25,7 +25,7 @@ import com.google.devtools.ksp.symbol.KSDeclaration import com.google.devtools.ksp.symbol.KSFunctionDeclaration import com.google.devtools.ksp.symbol.KSPropertyDeclaration -class DeclarationsInClassProcessor : AbstractTestProcessor() { +class DeclarationsInClassProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val result = mutableListOf() override fun toResult(): List { return result.sorted() diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DeclaredProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DeclaredProcessor.kt index 23997b3622..4ce0d99c11 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DeclaredProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DeclaredProcessor.kt @@ -4,7 +4,7 @@ import com.google.devtools.ksp.getClassDeclarationByName import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.KSAnnotated -class DeclaredProcessor : AbstractTestProcessor() { +class DeclaredProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val result = mutableListOf() override fun toResult(): List { return result diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DefaultFunctionProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DefaultFunctionProcessor.kt index 449c5e503f..15305b2c9a 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DefaultFunctionProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DefaultFunctionProcessor.kt @@ -26,7 +26,7 @@ import com.google.devtools.ksp.symbol.KSAnnotated import com.google.devtools.ksp.symbol.KSClassDeclaration import com.google.devtools.ksp.symbol.KSPropertyDeclaration -class DefaultFunctionProcessor : AbstractTestProcessor() { +class DefaultFunctionProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { private val result = mutableListOf() diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DeferredSymbolsProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DeferredSymbolsProcessor.kt index f8928692de..c3b01a58a4 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DeferredSymbolsProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DeferredSymbolsProcessor.kt @@ -6,7 +6,7 @@ import com.google.devtools.ksp.processing.SymbolProcessor import com.google.devtools.ksp.processing.SymbolProcessorEnvironment import com.google.devtools.ksp.symbol.KSAnnotated -class DeferredSymbolsProcessor : AbstractTestProcessor() { +class DeferredSymbolsProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val result = mutableListOf() override fun toResult(): List { return result.sorted() diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DocStringProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DocStringProcessor.kt index e878a7add4..3cb5a65a31 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DocStringProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DocStringProcessor.kt @@ -23,14 +23,15 @@ import com.google.devtools.ksp.symbol.KSDeclaration import com.google.devtools.ksp.symbol.KSNode import com.google.devtools.ksp.visitor.KSTopDownVisitor -class DocStringProcessor : AbstractTestProcessor() { +class DocStringProcessor(override val enableNewFeatures: Boolean) : AbstractTestProcessor() { private val result = mutableListOf() override fun toResult(): List { return result } - private class DeclarationCollector : KSTopDownVisitor, Unit>() { + private class DeclarationCollector(enableNewFeatures: Boolean) : + KSTopDownVisitor, Unit>(enableNewFeatures) { override fun defaultHandler(node: KSNode, data: MutableCollection) = Unit override fun visitDeclaration(declaration: KSDeclaration, data: MutableCollection) { @@ -39,7 +40,7 @@ class DocStringProcessor : AbstractTestProcessor() { } override fun process(resolver: Resolver): List { - val visitor = DeclarationCollector() + val visitor = DeclarationCollector(enableNewFeatures) resolver.getNewFiles().forEach { it.accept(visitor, result) } result.sort() return emptyList() diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/EqualsProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/EqualsProcessor.kt index bd125acdf0..dd39c1db68 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/EqualsProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/EqualsProcessor.kt @@ -20,7 +20,7 @@ package com.google.devtools.ksp.processor import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* -open class EqualsProcessor : AbstractTestProcessor() { +open class EqualsProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() override fun process(resolver: Resolver): List { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ErrorTypeProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ErrorTypeProcessor.kt index 23c40ab551..de463286b8 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ErrorTypeProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ErrorTypeProcessor.kt @@ -23,7 +23,7 @@ import com.google.devtools.ksp.symbol.KSAnnotated import com.google.devtools.ksp.symbol.KSPropertyDeclaration import com.google.devtools.ksp.symbol.KSType -class ErrorTypeProcessor : AbstractTestProcessor() { +class ErrorTypeProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val result = mutableListOf() override fun toResult(): List { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ExitCodeProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ExitCodeProcessor.kt index 1dfcfde0a8..9de5d291c8 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ExitCodeProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ExitCodeProcessor.kt @@ -5,7 +5,7 @@ import com.google.devtools.ksp.processing.SymbolProcessor import com.google.devtools.ksp.processing.SymbolProcessorEnvironment import com.google.devtools.ksp.symbol.KSAnnotated -class ExitCodeProcessor : AbstractTestProcessor() { +class ExitCodeProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { override fun toResult(): List = emptyList() override fun process(resolver: Resolver): List { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/FunctionKindProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/FunctionKindProcessor.kt index 4e0cffbf7c..8882724aa2 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/FunctionKindProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/FunctionKindProcessor.kt @@ -21,7 +21,7 @@ import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* import com.google.devtools.ksp.visitor.KSTopDownVisitor -open class FunctionKindProcessor : AbstractTestProcessor() { +open class FunctionKindProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() override fun process(resolver: Resolver): List { @@ -43,7 +43,7 @@ open class FunctionKindProcessor : AbstractTestProcessor() { val files = resolver.getNewFiles() files.forEach { it.accept( - object : KSTopDownVisitor() { + object : KSTopDownVisitor(enableNewFeatures) { override fun defaultHandler(node: KSNode, data: Unit) = Unit override fun visitFunctionDeclaration(function: KSFunctionDeclaration, data: Unit) { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/FunctionTypeAliasProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/FunctionTypeAliasProcessor.kt index 69f70ab958..2dd4c46b6b 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/FunctionTypeAliasProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/FunctionTypeAliasProcessor.kt @@ -21,9 +21,9 @@ import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* import com.google.devtools.ksp.visitor.KSTopDownVisitor -open class FunctionTypeAliasProcessor : AbstractTestProcessor() { +open class FunctionTypeAliasProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() - val typeRefCollector = RefCollector() + val typeRefCollector = RefCollector(enableNewFeatures) val refs = mutableSetOf() override fun process(resolver: Resolver): List { @@ -48,7 +48,7 @@ open class FunctionTypeAliasProcessor : AbstractTestProcessor() { } } -open class RefCollector : KSTopDownVisitor, Unit>() { +open class RefCollector(enableNewFeatures: Boolean) : KSTopDownVisitor, Unit>(enableNewFeatures) { override fun defaultHandler(node: KSNode, data: MutableCollection) = Unit override fun visitTypeReference(typeReference: KSTypeReference, data: MutableCollection) { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/FunctionTypeAnnotationProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/FunctionTypeAnnotationProcessor.kt index c35d156e3f..39e169b1f2 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/FunctionTypeAnnotationProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/FunctionTypeAnnotationProcessor.kt @@ -6,7 +6,7 @@ import com.google.devtools.ksp.symbol.KSNode import com.google.devtools.ksp.symbol.KSPropertyDeclaration import com.google.devtools.ksp.visitor.KSTopDownVisitor -class FunctionTypeAnnotationProcessor : AbstractTestProcessor() { +class FunctionTypeAnnotationProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() override fun toResult(): List { @@ -18,7 +18,7 @@ class FunctionTypeAnnotationProcessor : AbstractTestProcessor() { files.forEach { it.accept( - object : KSTopDownVisitor() { + object : KSTopDownVisitor(enableNewFeatures) { override fun defaultHandler(node: KSNode, data: Unit) = Unit override fun visitPropertyDeclaration(property: KSPropertyDeclaration, data: Unit) { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/FunctionTypeProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/FunctionTypeProcessor.kt index f1de05ab74..e3eda3e344 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/FunctionTypeProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/FunctionTypeProcessor.kt @@ -21,7 +21,7 @@ import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* import com.google.devtools.ksp.visitor.KSTopDownVisitor -open class FunctionTypeProcessor : AbstractTestProcessor() { +open class FunctionTypeProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() val types = mutableSetOf() @@ -30,7 +30,7 @@ open class FunctionTypeProcessor : AbstractTestProcessor() { files.forEach { it.accept( - object : KSTopDownVisitor() { + object : KSTopDownVisitor(enableNewFeatures) { override fun defaultHandler(node: KSNode, data: Unit) = Unit override fun visitPropertyDeclaration(property: KSPropertyDeclaration, data: Unit) { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/GetAnnotationByTypeProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/GetAnnotationByTypeProcessor.kt index 8615cdb8f8..61ee3f6725 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/GetAnnotationByTypeProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/GetAnnotationByTypeProcessor.kt @@ -17,7 +17,7 @@ annotation class KotlinAnnotationWithInnerDefaults( } } -class GetAnnotationByTypeProcessor : AbstractTestProcessor() { +class GetAnnotationByTypeProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() private val annotationKClass = KotlinAnnotationWithInnerDefaults::class diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/GetByNameProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/GetByNameProcessor.kt index c7e49eec9b..a943741aa7 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/GetByNameProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/GetByNameProcessor.kt @@ -6,7 +6,7 @@ import com.google.devtools.ksp.getPropertyDeclarationByName import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.KSAnnotated -class GetByNameProcessor : AbstractTestProcessor() { +class GetByNameProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() override fun toResult(): List { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/GetPackageProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/GetPackageProcessor.kt index 830b23a4c1..08233ff348 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/GetPackageProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/GetPackageProcessor.kt @@ -4,7 +4,7 @@ import com.google.devtools.ksp.KspExperimental import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.KSAnnotated -class GetPackageProcessor : AbstractTestProcessor() { +class GetPackageProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() override fun toResult(): List { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/GetSymbolsFromAnnotationProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/GetSymbolsFromAnnotationProcessor.kt index b9dda00c49..04799ebf49 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/GetSymbolsFromAnnotationProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/GetSymbolsFromAnnotationProcessor.kt @@ -3,7 +3,7 @@ package com.google.devtools.ksp.processor import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.KSAnnotated -class GetSymbolsFromAnnotationProcessor : AbstractTestProcessor() { +class GetSymbolsFromAnnotationProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val result = mutableListOf>() override fun toResult(): List = result.flatten() diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ImplicitPropertyAccessorProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ImplicitPropertyAccessorProcessor.kt index 104ecd757b..4532a306ac 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ImplicitPropertyAccessorProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ImplicitPropertyAccessorProcessor.kt @@ -5,7 +5,7 @@ import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.KSAnnotated import com.google.devtools.ksp.symbol.KSPropertyDeclaration -class ImplicitPropertyAccessorProcessor : AbstractTestProcessor() { +class ImplicitPropertyAccessorProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val result = mutableListOf() override fun toResult(): List { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/InheritedTypeAliasProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/InheritedTypeAliasProcessor.kt index 9b1704bf7d..71a6a10134 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/InheritedTypeAliasProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/InheritedTypeAliasProcessor.kt @@ -21,7 +21,7 @@ import com.google.devtools.ksp.getClassDeclarationByName import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.KSAnnotated -class InheritedTypeAliasProcessor : AbstractTestProcessor() { +class InheritedTypeAliasProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() override fun toResult(): List { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/InnerTypeProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/InnerTypeProcessor.kt index a19f6a1332..dcc4d817a9 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/InnerTypeProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/InnerTypeProcessor.kt @@ -22,9 +22,9 @@ import com.google.devtools.ksp.outerType import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* -open class InnerTypeProcessor : AbstractTestProcessor() { +open class InnerTypeProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() - val typeCollector = TypeCollector() + val typeCollector = TypeCollector(enableNewFeatures) val types = mutableSetOf() override fun process(resolver: Resolver): List { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/InternalOfFriendsProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/InternalOfFriendsProcessor.kt index 15debf5866..023d56e212 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/InternalOfFriendsProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/InternalOfFriendsProcessor.kt @@ -20,7 +20,7 @@ package com.google.devtools.ksp.processor import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* -open class InternalOfFriendsProcessor : AbstractTestProcessor() { +open class InternalOfFriendsProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() override fun process(resolver: Resolver): List { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/IsMutableProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/IsMutableProcessor.kt index 8a778809a8..cdba05c58c 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/IsMutableProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/IsMutableProcessor.kt @@ -26,7 +26,7 @@ import com.google.devtools.ksp.visitor.KSTopDownVisitor @Suppress("unused") // used in tests @OptIn(KspExperimental::class) -open class IsMutableProcessor : AbstractTestProcessor() { +open class IsMutableProcessor(override val enableNewFeatures: Boolean) : AbstractTestProcessor() { lateinit var results: List override fun process(resolver: Resolver): List { @@ -34,7 +34,7 @@ open class IsMutableProcessor : AbstractTestProcessor() { resolver.getDeclarationsFromPackage(pkg) .flatMap { declaration -> val properties = mutableListOf() - declaration.accept(AllMembersVisitor(), properties) + declaration.accept(AllMembersVisitor(enableNewFeatures), properties) properties }.map { "${it.qualifiedName?.asString()}: ${it.isMutable}" @@ -43,7 +43,8 @@ open class IsMutableProcessor : AbstractTestProcessor() { return emptyList() } - private class AllMembersVisitor : KSTopDownVisitor, Unit>() { + private class AllMembersVisitor(enableNewFeatures: Boolean) : + KSTopDownVisitor, Unit>(enableNewFeatures) { override fun defaultHandler(node: KSNode, data: MutableList) { } diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/JavaNonNullProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/JavaNonNullProcessor.kt index 35462894bc..e7e26b1ff7 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/JavaNonNullProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/JavaNonNullProcessor.kt @@ -26,7 +26,7 @@ import com.google.devtools.ksp.symbol.KSPropertyDeclaration import com.google.devtools.ksp.symbol.KSValueParameter import com.google.devtools.ksp.visitor.KSTopDownVisitor -class JavaNonNullProcessor : AbstractTestProcessor() { +class JavaNonNullProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() override fun toResult(): List { @@ -36,7 +36,7 @@ class JavaNonNullProcessor : AbstractTestProcessor() { override fun process(resolver: Resolver): List { resolver.getNewFiles().forEach { it.accept( - object : KSTopDownVisitor() { + object : KSTopDownVisitor(enableNewFeatures) { override fun defaultHandler(node: KSNode, data: Unit) { } diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/JavaSubtypeProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/JavaSubtypeProcessor.kt index f04b2b5e22..8e6360ced1 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/JavaSubtypeProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/JavaSubtypeProcessor.kt @@ -8,7 +8,7 @@ import com.google.devtools.ksp.symbol.KSAnnotated import com.google.devtools.ksp.symbol.KSPropertyDeclaration import com.google.devtools.ksp.symbol.Variance -class JavaSubtypeProcessor : AbstractTestProcessor() { +class JavaSubtypeProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { var isOk = true override fun toResult(): List { return listOf(isOk.toString()) diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/JavaToKotlinMapProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/JavaToKotlinMapProcessor.kt index 37978d0b4d..f5965afefb 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/JavaToKotlinMapProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/JavaToKotlinMapProcessor.kt @@ -25,9 +25,9 @@ import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* @KspExperimental -open class JavaToKotlinMapProcessor : AbstractTestProcessor() { +open class JavaToKotlinMapProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() - val typeCollector = TypeCollectorNoAccessor() + val typeCollector = TypeCollectorNoAccessor(enableNewFeatures) val types = mutableSetOf() val javaClasses = listOf( diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/JvmNameProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/JvmNameProcessor.kt index f29834d47e..132fd1bd0c 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/JvmNameProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/JvmNameProcessor.kt @@ -5,7 +5,7 @@ import com.google.devtools.ksp.getClassDeclarationByName import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.KSAnnotated -class JvmNameProcessor : AbstractTestProcessor() { +class JvmNameProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() override fun toResult(): List { return results diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/JvmNameRecordProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/JvmNameRecordProcessor.kt index 97ccae66ba..936be500f7 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/JvmNameRecordProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/JvmNameRecordProcessor.kt @@ -23,7 +23,7 @@ import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.KSAnnotated import com.google.devtools.ksp.symbol.KSClassDeclaration -class JvmNameRecordProcessor : AbstractTestProcessor() { +class JvmNameRecordProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() override fun toResult(): List { return results diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/LateinitPropertiesProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/LateinitPropertiesProcessor.kt index c20f8699b7..6f31eaf5ec 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/LateinitPropertiesProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/LateinitPropertiesProcessor.kt @@ -8,8 +8,8 @@ import com.google.devtools.ksp.symbol.KSPropertyDeclaration import com.google.devtools.ksp.symbol.Modifier import com.google.devtools.ksp.visitor.KSTopDownVisitor -class LateinitPropertiesProcessor : AbstractTestProcessor() { - private val visitor = Visitor() +class LateinitPropertiesProcessor(override val enableNewFeatures: Boolean) : AbstractTestProcessor() { + private val visitor = Visitor(enableNewFeatures) override fun toResult(): List { return visitor.lateinitPropertiesNames.sorted() @@ -24,7 +24,7 @@ class LateinitPropertiesProcessor : AbstractTestProcessor() { return emptyList() } - private class Visitor : KSTopDownVisitor() { + private class Visitor(enableNewFeatures: Boolean) : KSTopDownVisitor(enableNewFeatures) { val lateinitPropertiesNames = arrayListOf() override fun defaultHandler(node: KSNode, data: Unit) { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/LibOriginsProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/LibOriginsProcessor.kt index 9044c3ee6e..3fc38d62cf 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/LibOriginsProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/LibOriginsProcessor.kt @@ -18,12 +18,11 @@ package com.google.devtools.ksp.processor import com.google.devtools.ksp.KspExperimental -import com.google.devtools.ksp.containingFile import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* import com.google.devtools.ksp.visitor.KSTopDownVisitor -class LibOriginsProcessor : AbstractTestProcessor() { +class LibOriginsProcessor(override val enableNewFeatures: Boolean) : AbstractTestProcessor() { private val result = mutableListOf() private val visited = mutableSetOf() @@ -31,7 +30,7 @@ class LibOriginsProcessor : AbstractTestProcessor() { return result } - inner class MyCollector : KSTopDownVisitor() { + inner class MyCollector : KSTopDownVisitor(enableNewFeatures) { private fun KSNode.pretty(): String { val parents: MutableList = mutableListOf(this) var curr: KSNode = this diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/LocalDeclarationProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/LocalDeclarationProcessor.kt index 77f138be29..766cfc4484 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/LocalDeclarationProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/LocalDeclarationProcessor.kt @@ -4,20 +4,20 @@ import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* import com.google.devtools.ksp.visitor.KSEmptyVisitor -class LocalDeclarationProcessor : AbstractTestProcessor() { +class LocalDeclarationProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val result = mutableListOf() override fun toResult(): List { return result } override fun process(resolver: Resolver): List { - val visitor = LocalDeclarationVisitor() + val visitor = LocalDeclarationVisitor(enableNewFeatures) resolver.getAllFiles().forEach { it.accept(visitor, result) } return emptyList() } } -class LocalDeclarationVisitor : KSEmptyVisitor, Unit>() { +class LocalDeclarationVisitor(enableNewFeatures: Boolean) : KSEmptyVisitor, Unit>(enableNewFeatures) { override fun defaultHandler(node: KSNode, data: MutableList) { data.add(node.toString()) } diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/LocationsProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/LocationsProcessor.kt index 087a09f222..f47dfef056 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/LocationsProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/LocationsProcessor.kt @@ -8,7 +8,7 @@ import com.google.devtools.ksp.symbol.KSAnnotated import com.google.devtools.ksp.symbol.NonExistLocation import java.io.File -class LocationsProcessor : AbstractTestProcessor() { +class LocationsProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val result = mutableListOf() override fun toResult(): List { return result.sorted() diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/MakeNullableProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/MakeNullableProcessor.kt index 908ab73ef7..d045d7072e 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/MakeNullableProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/MakeNullableProcessor.kt @@ -20,9 +20,9 @@ package com.google.devtools.ksp.processor import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* -open class MakeNullableProcessor : AbstractTestProcessor() { +open class MakeNullableProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() - val typeCollector = TypeCollector() + val typeCollector = TypeCollector(enableNewFeatures) val types = mutableSetOf() override fun process(resolver: Resolver): List { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/MangledNamesProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/MangledNamesProcessor.kt index f7bf4ffd88..8c88fa856c 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/MangledNamesProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/MangledNamesProcessor.kt @@ -8,25 +8,25 @@ import com.google.devtools.ksp.visitor.KSTopDownVisitor @KspExperimental @Suppress("unused") // used by the test code -class MangledNamesProcessor : AbstractTestProcessor() { +class MangledNamesProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { private val results = mutableListOf() override fun toResult() = results override fun process(resolver: Resolver): List { val mangleSourceNames = mutableMapOf() resolver.getAllFiles().sortedBy { it.fileName }.forEach { - it.accept(MangledNamesVisitor(resolver), mangleSourceNames) + it.accept(MangledNamesVisitor(resolver, enableNewFeatures), mangleSourceNames) } val mangledDependencyNames = LinkedHashMap() // also collect results from library dependencies to ensure we resolve module name property resolver.getClassDeclarationByName("libPackage.Foo")?.accept( - MangledNamesVisitor(resolver), mangledDependencyNames + MangledNamesVisitor(resolver, enableNewFeatures), mangledDependencyNames ) resolver.getClassDeclarationByName("libPackage.AbstractKotlinClass")?.accept( - MangledNamesVisitor(resolver), mangledDependencyNames + MangledNamesVisitor(resolver, enableNewFeatures), mangledDependencyNames ) resolver.getClassDeclarationByName("libPackage.MyInterface")?.accept( - MangledNamesVisitor(resolver), mangledDependencyNames + MangledNamesVisitor(resolver, enableNewFeatures), mangledDependencyNames ) results.addAll( mangleSourceNames.entries.map { (decl, name) -> @@ -41,9 +41,7 @@ class MangledNamesProcessor : AbstractTestProcessor() { return emptyList() } - private class MangledNamesVisitor( - val resolver: Resolver - ) : KSTopDownVisitor, Unit>() { + private class MangledNamesVisitor(val resolver: Resolver, enableNewFeatures: Boolean) : KSTopDownVisitor, Unit>(enableNewFeatures) { override fun defaultHandler(node: KSNode, data: MutableMap) { } diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/MapSignatureProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/MapSignatureProcessor.kt index 6b591af572..0210510543 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/MapSignatureProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/MapSignatureProcessor.kt @@ -24,7 +24,7 @@ import com.google.devtools.ksp.symbol.KSAnnotated import com.google.devtools.ksp.symbol.KSFunctionDeclaration @KspExperimental -class MapSignatureProcessor : AbstractTestProcessor() { +class MapSignatureProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { private val result = mutableListOf() override fun toResult(): List { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/MultiModuleTestProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/MultiModuleTestProcessor.kt index fb7cc64d88..982964efab 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/MultiModuleTestProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/MultiModuleTestProcessor.kt @@ -21,7 +21,7 @@ import com.google.devtools.ksp.getClassDeclarationByName import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* -class MultiModuleTestProcessor : AbstractTestProcessor() { +class MultiModuleTestProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { private val results = mutableListOf() override fun toResult(): List { return results @@ -30,7 +30,7 @@ class MultiModuleTestProcessor : AbstractTestProcessor() { override fun process(resolver: Resolver): List { val target = resolver.getClassDeclarationByName("TestTarget") val classes = mutableSetOf() - val classCollector = object : BaseVisitor() { + val classCollector = object : BaseVisitor(enableNewFeatures) { override fun visitClassDeclaration(classDeclaration: KSClassDeclaration, data: Unit) { if (classes.add(classDeclaration)) { super.visitClassDeclaration(classDeclaration, data) diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/MultipleroundProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/MultipleroundProcessor.kt index 948f5dba92..87ab224c94 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/MultipleroundProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/MultipleroundProcessor.kt @@ -8,7 +8,7 @@ import com.google.devtools.ksp.symbol.KSAnnotated import com.google.devtools.ksp.symbol.KSFile import com.google.devtools.ksp.validate -class MultipleroundProcessor : AbstractTestProcessor() { +class MultipleroundProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val result = mutableListOf() override fun toResult(): List { return result diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/NestedClassTypeProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/NestedClassTypeProcessor.kt index 7c5b982a90..06cf82b737 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/NestedClassTypeProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/NestedClassTypeProcessor.kt @@ -5,7 +5,7 @@ import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.KSAnnotated import com.google.devtools.ksp.symbol.KSPropertyDeclaration -class NestedClassTypeProcessor : AbstractTestProcessor() { +class NestedClassTypeProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val result = mutableListOf() override fun toResult(): List { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/NullableTypeProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/NullableTypeProcessor.kt index 8e98696796..4c88b480a7 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/NullableTypeProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/NullableTypeProcessor.kt @@ -21,7 +21,7 @@ import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* import com.google.devtools.ksp.visitor.KSTopDownVisitor -open class NullableTypeProcessor : AbstractTestProcessor() { +open class NullableTypeProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() val types = mutableSetOf() @@ -30,7 +30,7 @@ open class NullableTypeProcessor : AbstractTestProcessor() { files.forEach { it.accept( - object : KSTopDownVisitor() { + object : KSTopDownVisitor(enableNewFeatures) { override fun defaultHandler(node: KSNode, data: Unit) = Unit override fun visitPropertyDeclaration(property: KSPropertyDeclaration, data: Unit) { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ObjCacheAProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ObjCacheAProcessor.kt index b51ff8cd8e..2b39613a59 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ObjCacheAProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ObjCacheAProcessor.kt @@ -6,7 +6,7 @@ import com.google.devtools.ksp.getDeclaredProperties import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.KSAnnotated -open class ObjCacheAProcessor : AbstractTestProcessor() { +open class ObjCacheAProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() override fun toResult(): List { return results diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ObjCacheBProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ObjCacheBProcessor.kt index daf08284bf..6168b8493d 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ObjCacheBProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ObjCacheBProcessor.kt @@ -6,7 +6,7 @@ import com.google.devtools.ksp.getDeclaredProperties import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.KSAnnotated -open class ObjCacheBProcessor : AbstractTestProcessor() { +open class ObjCacheBProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() override fun toResult(): List { return results diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/OverrideeProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/OverrideeProcessor.kt index 1fcccc4c2f..183fef7d22 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/OverrideeProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/OverrideeProcessor.kt @@ -23,7 +23,7 @@ import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* @Suppress("unused") // used by tests -class OverrideeProcessor : AbstractTestProcessor() { +class OverrideeProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { private val results = mutableListOf() override fun toResult() = results diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/PackageAnnotationProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/PackageAnnotationProcessor.kt index bc1fa3bb6c..fd036423c8 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/PackageAnnotationProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/PackageAnnotationProcessor.kt @@ -6,7 +6,7 @@ import com.google.devtools.ksp.symbol.KSAnnotated import com.google.devtools.ksp.symbol.KSFile import com.google.devtools.ksp.symbol.KSVisitorVoid -class PackageAnnotationProcessor : AbstractTestProcessor() { +class PackageAnnotationProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val result = mutableListOf() override fun toResult(): List { return result @@ -16,7 +16,7 @@ class PackageAnnotationProcessor : AbstractTestProcessor() { override fun process(resolver: Resolver): List { resolver.getAllFiles().forEach { it.accept( - object : KSVisitorVoid() { + object : KSVisitorVoid(enableNewFeatures) { override fun visitFile(file: KSFile, data: Unit) { result.add( "${file.fileName}:${resolver.getPackageAnnotations(file.packageName.asString()) diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/PackageProviderForGeneratedProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/PackageProviderForGeneratedProcessor.kt index b9527f946c..42dba0a5ba 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/PackageProviderForGeneratedProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/PackageProviderForGeneratedProcessor.kt @@ -7,7 +7,7 @@ import com.google.devtools.ksp.processing.SymbolProcessor import com.google.devtools.ksp.processing.SymbolProcessorEnvironment import com.google.devtools.ksp.symbol.KSAnnotated -class PackageProviderForGeneratedProcessor : AbstractTestProcessor() { +class PackageProviderForGeneratedProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val result = mutableListOf() override fun toResult(): List { return result diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ParameterTypeProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ParameterTypeProcessor.kt index 55e1eec7b1..0c32fa8eb3 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ParameterTypeProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ParameterTypeProcessor.kt @@ -6,7 +6,7 @@ import com.google.devtools.ksp.symbol.KSNode import com.google.devtools.ksp.symbol.KSValueParameter import com.google.devtools.ksp.visitor.KSTopDownVisitor -class ParameterTypeProcessor : AbstractTestProcessor() { +class ParameterTypeProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val result = mutableListOf() override fun toResult(): List { @@ -16,7 +16,7 @@ class ParameterTypeProcessor : AbstractTestProcessor() { override fun process(resolver: Resolver): List { resolver.getNewFiles().forEach { it.accept( - object : KSTopDownVisitor() { + object : KSTopDownVisitor(enableNewFeatures) { override fun defaultHandler(node: KSNode, data: Unit) { } diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ParentProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ParentProcessor.kt index d04fa20312..18908f4ac0 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ParentProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ParentProcessor.kt @@ -6,7 +6,7 @@ import com.google.devtools.ksp.symbol.KSAnnotated import com.google.devtools.ksp.symbol.KSNode import com.google.devtools.ksp.visitor.KSTopDownVisitor -class ParentProcessor : AbstractTestProcessor() { +class ParentProcessor(override val enableNewFeatures: Boolean) : AbstractTestProcessor() { val result = mutableListOf() override fun toResult(): List { @@ -14,7 +14,7 @@ class ParentProcessor : AbstractTestProcessor() { } override fun process(resolver: Resolver): List { - val collector = AllSymbolProcessor() + val collector = AllSymbolProcessor(enableNewFeatures) val nodes = mutableSetOf() resolver.getAllFiles().sortedBy { it.fileName }.forEach { it.accept(collector, nodes) } for (e in listOf("YUV", "HSV")) { @@ -26,7 +26,8 @@ class ParentProcessor : AbstractTestProcessor() { return emptyList() } - class AllSymbolProcessor : KSTopDownVisitor, Unit>() { + class AllSymbolProcessor(enableNewFeatures: Boolean) : + KSTopDownVisitor, Unit>(enableNewFeatures) { override fun defaultHandler(node: KSNode, data: MutableSet) { data.add(node) } diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/PlatformDeclarationProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/PlatformDeclarationProcessor.kt index b8f6546872..479bda76ea 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/PlatformDeclarationProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/PlatformDeclarationProcessor.kt @@ -23,9 +23,9 @@ import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* import com.google.devtools.ksp.visitor.KSTopDownVisitor -open class PlatformDeclarationProcessor : AbstractTestProcessor() { +open class PlatformDeclarationProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() - val collector = EverythingVisitor() + val collector = EverythingVisitor(enableNewFeatures) val declarations = mutableListOf() override fun process(resolver: Resolver): List { @@ -59,7 +59,7 @@ open class PlatformDeclarationProcessor : AbstractTestProcessor() { } } -class EverythingVisitor : KSTopDownVisitor, Unit>() { +class EverythingVisitor(enableNewFeatures: Boolean) : KSTopDownVisitor, Unit>(enableNewFeatures) { override fun defaultHandler(node: KSNode, data: MutableList) = Unit override fun visitDeclaration(declaration: KSDeclaration, data: MutableList) { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/RawTypesProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/RawTypesProcessor.kt index aa2af3f545..956ed292e1 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/RawTypesProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/RawTypesProcessor.kt @@ -5,7 +5,7 @@ import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* import com.google.devtools.ksp.visitor.KSTopDownVisitor -class RawTypesProcessor : AbstractTestProcessor() { +class RawTypesProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { private val rawTypedEntityNames = arrayListOf() override fun toResult(): List { @@ -14,7 +14,7 @@ class RawTypesProcessor : AbstractTestProcessor() { @OptIn(KspExperimental::class) override fun process(resolver: Resolver): List { - val visitor = object : KSTopDownVisitor() { + val visitor = object : KSTopDownVisitor(enableNewFeatures) { private val KSType.isRawType get() = resolver.isJavaRawType(this) diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ReferenceElementProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ReferenceElementProcessor.kt index c0843f36ff..5143fbfc74 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ReferenceElementProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ReferenceElementProcessor.kt @@ -22,9 +22,9 @@ import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* import com.google.devtools.ksp.visitor.KSTopDownVisitor -open class ReferenceElementProcessor : AbstractTestProcessor() { +open class ReferenceElementProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() - val collector = ReferenceCollector() + val collector = ReferenceCollector(enableNewFeatures) val references = mutableSetOf() override fun process(resolver: Resolver): List { @@ -86,7 +86,7 @@ open class ReferenceElementProcessor : AbstractTestProcessor() { } } -class ReferenceCollector : KSTopDownVisitor, Unit>() { +class ReferenceCollector(enableNewFeatures: Boolean) : KSTopDownVisitor, Unit>(enableNewFeatures) { override fun defaultHandler(node: KSNode, data: MutableSet) = Unit override fun visitTypeReference(typeReference: KSTypeReference, data: MutableSet) { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ReplaceWithErrorTypeArgsProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ReplaceWithErrorTypeArgsProcessor.kt index 00e16bfdf1..ec456ff0bf 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ReplaceWithErrorTypeArgsProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ReplaceWithErrorTypeArgsProcessor.kt @@ -22,7 +22,7 @@ import com.google.devtools.ksp.getDeclaredProperties import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* -open class ReplaceWithErrorTypeArgsProcessor : AbstractTestProcessor() { +open class ReplaceWithErrorTypeArgsProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() override fun process(resolver: Resolver): List { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ResolveJavaTypeProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ResolveJavaTypeProcessor.kt index 19a29e1c83..b85048d635 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ResolveJavaTypeProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ResolveJavaTypeProcessor.kt @@ -28,7 +28,7 @@ import com.google.devtools.ksp.symbol.Origin import com.google.devtools.ksp.symbol.Variance import com.google.devtools.ksp.visitor.KSTopDownVisitor -class ResolveJavaTypeProcessor : AbstractTestProcessor() { +class ResolveJavaTypeProcessor(override val enableNewFeatures: Boolean) : AbstractTestProcessor() { val results = mutableListOf() val visitor = ResolveJavaTypeVisitor() @@ -49,7 +49,7 @@ class ResolveJavaTypeProcessor : AbstractTestProcessor() { return emptyList() } - inner class ResolveJavaTypeVisitor : KSTopDownVisitor() { + inner class ResolveJavaTypeVisitor : KSTopDownVisitor(enableNewFeatures) { override fun defaultHandler(node: KSNode, data: Unit) { } @@ -75,14 +75,16 @@ class ResolveJavaTypeProcessor : AbstractTestProcessor() { val sb = StringBuilder(this.resolve().declaration.qualifiedName?.asString() ?: "") if (this.resolve().arguments.toList().isNotEmpty()) { sb.append( - "<${this.resolve().arguments.map { - when (it.variance) { - Variance.STAR -> "*" - Variance.INVARIANT -> "" - Variance.CONTRAVARIANT -> "in " - Variance.COVARIANT -> "out " - } + (it.type?.render() ?: "") - }.joinToString(", ")}>" + "<${ + this.resolve().arguments.map { + when (it.variance) { + Variance.STAR -> "*" + Variance.INVARIANT -> "" + Variance.CONTRAVARIANT -> "in " + Variance.COVARIANT -> "out " + } + (it.type?.render() ?: "") + }.joinToString(", ") + }>" ) } if (this.resolve().nullability != Nullability.NOT_NULL) { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/SealedClassProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/SealedClassProcessor.kt index 9cb6ea7055..c128909249 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/SealedClassProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/SealedClassProcessor.kt @@ -21,7 +21,7 @@ import com.google.devtools.ksp.getClassDeclarationByName import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* -class SealedClassProcessor : AbstractTestProcessor() { +class SealedClassProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val result = mutableListOf() override fun toResult(): List { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/SuperTypesProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/SuperTypesProcessor.kt index 0752e34e99..f59f2e835f 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/SuperTypesProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/SuperTypesProcessor.kt @@ -21,7 +21,7 @@ import com.google.devtools.ksp.getClassDeclarationByName import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* -open class SuperTypesProcessor : AbstractTestProcessor() { +open class SuperTypesProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() override fun process(resolver: Resolver): List { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ThrowListProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ThrowListProcessor.kt index 15d96ccb53..8e8a983089 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ThrowListProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ThrowListProcessor.kt @@ -10,7 +10,7 @@ import com.google.devtools.ksp.symbol.KSPropertyDeclaration import com.google.devtools.ksp.symbol.KSType @KspExperimental -class ThrowListProcessor : AbstractTestProcessor() { +class ThrowListProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val result = mutableListOf() override fun toResult(): List { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TopLevelMemberProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TopLevelMemberProcessor.kt index 05cc4d0275..e7d838225c 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TopLevelMemberProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TopLevelMemberProcessor.kt @@ -27,7 +27,7 @@ import com.google.devtools.ksp.symbol.KSPropertyDeclaration import com.google.devtools.ksp.visitor.KSTopDownVisitor @OptIn(KspExperimental::class) -open class TopLevelMemberProcessor : AbstractTestProcessor() { +open class TopLevelMemberProcessor(override val enableNewFeatures: Boolean) : AbstractTestProcessor() { lateinit var results: List override fun process(resolver: Resolver): List { @@ -35,7 +35,7 @@ open class TopLevelMemberProcessor : AbstractTestProcessor() { resolver.getDeclarationsFromPackage(pkg) .flatMap { declaration -> val declarations = mutableListOf() - declaration.accept(AllMembersVisitor(), declarations) + declaration.accept(AllMembersVisitor(enableNewFeatures), declarations) declarations }.map { "$pkg : ${it.simpleName.asString()} -> ${resolver.getSyntheticJvmClass(it)}" @@ -52,7 +52,8 @@ open class TopLevelMemberProcessor : AbstractTestProcessor() { else -> error("unexpected declaration $declaration") } - private class AllMembersVisitor : KSTopDownVisitor, Unit>() { + private class AllMembersVisitor(enableNewFeatures: Boolean) : + KSTopDownVisitor, Unit>(enableNewFeatures) { override fun defaultHandler(node: KSNode, data: MutableList) { } diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeAliasComparisonProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeAliasComparisonProcessor.kt index af10f3c16a..126407f806 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeAliasComparisonProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeAliasComparisonProcessor.kt @@ -21,9 +21,9 @@ import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* import com.google.devtools.ksp.visitor.KSTopDownVisitor -open class TypeAliasComparisonProcessor : AbstractTestProcessor() { +open class TypeAliasComparisonProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() - val typeRefCollector = TypeRefCollector() + val typeRefCollector = TypeRefCollector(enableNewFeatures) val refs = mutableSetOf() override fun process(resolver: Resolver): List { @@ -55,7 +55,7 @@ open class TypeAliasComparisonProcessor : AbstractTestProcessor() { } } -open class TypeRefCollector : KSTopDownVisitor, Unit>() { +open class TypeRefCollector(enableNewFeatures: Boolean) : KSTopDownVisitor, Unit>(enableNewFeatures) { override fun defaultHandler(node: KSNode, data: MutableCollection) = Unit override fun visitTypeReference(typeReference: KSTypeReference, data: MutableCollection) { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeAliasProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeAliasProcessor.kt index b168f1e887..85b8f7abd7 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeAliasProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeAliasProcessor.kt @@ -22,7 +22,7 @@ import com.google.devtools.ksp.getDeclaredProperties import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* -open class TypeAliasProcessor : AbstractTestProcessor() { +open class TypeAliasProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() val types = mutableListOf() diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeAnnotationProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeAnnotationProcessor.kt index 7b1d180504..7761ed897c 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeAnnotationProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeAnnotationProcessor.kt @@ -5,7 +5,7 @@ import com.google.devtools.ksp.getDeclaredProperties import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.KSAnnotated -class TypeAnnotationProcessor : AbstractTestProcessor() { +class TypeAnnotationProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val result = mutableListOf() override fun toResult(): List { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeArgumentVarianceProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeArgumentVarianceProcessor.kt index edf0a11ec6..10555bd7ff 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeArgumentVarianceProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeArgumentVarianceProcessor.kt @@ -22,7 +22,7 @@ import com.google.devtools.ksp.getDeclaredProperties import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.KSAnnotated -class TypeArgumentVarianceProcessor : AbstractTestProcessor() { +class TypeArgumentVarianceProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val result = mutableListOf() override fun toResult(): List { return result diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeComparison2Processor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeComparison2Processor.kt index 32d1760771..a150ae6885 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeComparison2Processor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeComparison2Processor.kt @@ -21,7 +21,7 @@ import com.google.devtools.ksp.getClassDeclarationByName import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* -open class TypeComparison2Processor : AbstractTestProcessor() { +open class TypeComparison2Processor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() override fun process(resolver: Resolver): List { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeComparisonProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeComparisonProcessor.kt index f8f259ed64..74571e2e14 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeComparisonProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeComparisonProcessor.kt @@ -21,9 +21,9 @@ import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* import com.google.devtools.ksp.visitor.KSTopDownVisitor -open class TypeComparisonProcessor : AbstractTestProcessor() { +open class TypeComparisonProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() - val typeCollector = TypeCollector() + val typeCollector = TypeCollector(enableNewFeatures) val types = mutableSetOf() override fun process(resolver: Resolver): List { @@ -60,7 +60,7 @@ open class TypeComparisonProcessor : AbstractTestProcessor() { } } -class TypeCollectorNoAccessor : TypeCollector() { +class TypeCollectorNoAccessor(enableNewFeatures: Boolean) : TypeCollector(enableNewFeatures) { override fun visitPropertyGetter(getter: KSPropertyGetter, data: MutableCollection) { } @@ -68,7 +68,7 @@ class TypeCollectorNoAccessor : TypeCollector() { } } -open class TypeCollector : KSTopDownVisitor, Unit>() { +open class TypeCollector(enableNewFeatures: Boolean) : KSTopDownVisitor, Unit>(enableNewFeatures) { override fun defaultHandler(node: KSNode, data: MutableCollection) = Unit override fun visitTypeReference(typeReference: KSTypeReference, data: MutableCollection) { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeComposureProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeComposureProcessor.kt index 78e2dc0e28..063fc869c4 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeComposureProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeComposureProcessor.kt @@ -21,7 +21,7 @@ import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* import com.google.devtools.ksp.visitor.KSTopDownVisitor -open class TypeComposureProcessor : AbstractTestProcessor() { +open class TypeComposureProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() override fun process(resolver: Resolver): List { @@ -31,7 +31,7 @@ open class TypeComposureProcessor : AbstractTestProcessor() { files.forEach { it.accept( - object : KSTopDownVisitor() { + object : KSTopDownVisitor(enableNewFeatures) { override fun defaultHandler(node: KSNode, data: Unit) = Unit override fun visitClassDeclaration(classDeclaration: KSClassDeclaration, data: Unit) { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeParameterEqualsProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeParameterEqualsProcessor.kt index b7fa16cb06..d68ba8c4ed 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeParameterEqualsProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeParameterEqualsProcessor.kt @@ -5,7 +5,7 @@ import com.google.devtools.ksp.getDeclaredProperties import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.KSAnnotated -class TypeParameterEqualsProcessor : AbstractTestProcessor() { +class TypeParameterEqualsProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val result = mutableListOf() override fun toResult(): List { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeParameterReferenceProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeParameterReferenceProcessor.kt index 58208d8054..32133c416a 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeParameterReferenceProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeParameterReferenceProcessor.kt @@ -22,9 +22,9 @@ import com.google.devtools.ksp.getDeclaredFunctions import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* -open class TypeParameterReferenceProcessor : AbstractTestProcessor() { +open class TypeParameterReferenceProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() - val collector = ReferenceCollector() + val collector = ReferenceCollector(enableNewFeatures) val references = mutableSetOf() override fun process(resolver: Resolver): List { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeParameterVarianceProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeParameterVarianceProcessor.kt index 77f735bc99..1d179df231 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeParameterVarianceProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeParameterVarianceProcessor.kt @@ -5,7 +5,7 @@ import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.KSAnnotated import com.google.devtools.ksp.symbol.KSDeclaration -class TypeParameterVarianceProcessor : AbstractTestProcessor() { +class TypeParameterVarianceProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() override fun toResult(): List { return results diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ValidateProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ValidateProcessor.kt index 16afc8c25a..9a82634e6e 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ValidateProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ValidateProcessor.kt @@ -9,7 +9,7 @@ import com.google.devtools.ksp.symbol.KSNode import com.google.devtools.ksp.symbol.KSPropertyDeclaration import com.google.devtools.ksp.validate -class ValidateProcessor : AbstractTestProcessor() { +class ValidateProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() private fun validate(symbol: KSDeclaration, predicate: (KSNode?, KSNode) -> Boolean = { _, _ -> true }) { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/VarargProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/VarargProcessor.kt index 5554e57d98..2655c5b16b 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/VarargProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/VarargProcessor.kt @@ -5,7 +5,7 @@ import com.google.devtools.ksp.getDeclaredFunctions import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.KSAnnotated -class VarargProcessor : AbstractTestProcessor() { +class VarargProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() override fun toResult(): List { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/VisibilityProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/VisibilityProcessor.kt index 63a93958f4..3d9ced20ba 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/VisibilityProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/VisibilityProcessor.kt @@ -26,7 +26,7 @@ import com.google.devtools.ksp.symbol.KSClassDeclaration import com.google.devtools.ksp.symbol.KSFunctionDeclaration import com.google.devtools.ksp.symbol.KSPropertyDeclaration -class VisibilityProcessor : AbstractTestProcessor() { +class VisibilityProcessor(override val enableNewFeatures: Boolean): AbstractTestProcessor() { val results = mutableListOf() override fun toResult(): List {