diff --git a/README.md b/README.md index f096abc8..d63f5950 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,9 @@ user analysis. The first one will be called Reflekt, and the second SmartReflekt **Restrictions**. Reflekt analyses only `.kt` files (in the psoject and in the libraries); uses Kotlin `1.4.20`. Reflekt does not currently support incremental compilation. + +**Note**, we use [Intermediate Representation](https://kotlinlang.org/docs/whatsnew14.html#unified-backends-and-extensibility) of code in this plugin. +It means, that Reflekt can be used for all available platforms: JVM, Native and JavaScript. ___ ## Table of contents @@ -40,11 +43,11 @@ add the following lines in the `plugins` section: ```kotlin plugins { - // Version of Kotlin should be 1.4.20+ - kotlin("jvm") version "1.4.20" apply true + // Version of Kotlin should be 1.4.30+ that supports IR backend + kotlin("jvm") version "1.5.10" apply true // Please, use the latest Reflekt version - id("io.reflekt") version "0.1.0" apply true + id("io.reflekt") version "0.2.0" apply true // Necessary only for this example, for Kotless library id("io.kotless") version "0.1.6" apply true @@ -81,7 +84,7 @@ the following lines in the `dependencies` section: ```kotlin dependencies { // The version here and the version in the plugins sections should be equal - implementation("io.reflekt", "reflekt-dsl", "0.1.0") + implementation("io.reflekt", "reflekt-dsl", "0.2.0") // Necessary for this example compileOnly("io.kotless", "kotless-lang", "0.1.6") @@ -114,21 +117,19 @@ _Please note that the `librariesToIntrospect` argument should contain only the d use in the `dependencies` section. These dependencies may be implemented in Java or Kotlin language, but the analysis will be made only on Kotlin files._ -To avoid some bugs, please add the following compilation settings for Java and Kotlin in -the `build.gradle.kts` file: +To avoid some bugs and enable IR, please add the following compilation settings +for Java and Kotlin in the `build.gradle.kts` file: ```kotlin -val compileKotlin: KotlinCompile by tasks -compileKotlin.kotlinOptions { - jvmTarget = "11" - languageVersion = "1.4" - apiVersion = "1.4" -} -val compileTestKotlin: KotlinCompile by tasks -compileTestKotlin.kotlinOptions { - jvmTarget = "11" - languageVersion = "1.4" - apiVersion = "1.4" +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + +tasks.withType { + kotlinOptions { + useIR = true + languageVersion = "1.5" + apiVersion = "1.5" + jvmTarget = "11" + } } ``` @@ -150,10 +151,10 @@ kotlin.incremental = false Now you can use the Reflekt plugin to find objects, classes, and functions in your project: ```kotlin -val objects = Reflekt.objects().withSubType() +val objects = Reflekt.objects().withSupertype() .withAnnotations(FirstAnnotation::class, SecondAnnotation::class).toList() -val classes = Reflekt.classes().withSubType().toSet() +val classes = Reflekt.classes().withSupertype().toSet() val functions = Reflekt.functions().withAnnotations<() -> Unit>().toList() ``` @@ -197,10 +198,10 @@ write this version in the plugins and dependencies sections. - [x] Compile-time reflection by custom users' filters for `multi-module` projects by [SmartReflekt DSL](./reflekt-dsl/src/main/kotlin/io/reflekt/SmartReflekt.kt) - [x] project's files - - [x] external libraries + - [ ] external libraries +- [x] Bytecode generation -> IR generation - [ ] Incremental compilation process - [ ] Search in all modules of the project -- [ ] Bytecode generation -> IR generation - [ ] Code generation. _Note: We analyze modules independently of each other. If an object\class\function is in module A, diff --git a/build.gradle.kts b/build.gradle.kts index 5cf3ef3f..b9fba175 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,13 +1,14 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompile group = "io.reflekt" -version = "0.1.0" +version = "0.2.0" plugins { id("tanvd.kosogor") version "1.0.10" apply true - kotlin("jvm") version "1.4.20" apply true + kotlin("jvm") version "1.5.10" apply true id("com.github.gmazzo.buildconfig") version "2.0.2" apply false `maven-publish` + kotlin("kapt") version "1.5.10" apply true } allprojects { @@ -18,8 +19,8 @@ allprojects { tasks.withType { kotlinOptions { jvmTarget = "11" - languageVersion = "1.4" - apiVersion = "1.4" + languageVersion = "1.5" + apiVersion = "1.5" } } diff --git a/examples/build.gradle.kts b/examples/build.gradle.kts index 07ed4d76..b53d8f90 100644 --- a/examples/build.gradle.kts +++ b/examples/build.gradle.kts @@ -1,13 +1,13 @@ import io.reflekt.plugin.reflekt -import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompile +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile group = rootProject.group version = rootProject.version plugins { id("tanvd.kosogor") version "1.0.10" apply true - id("io.reflekt") version "0.1.0" apply true - kotlin("jvm") version "1.4.20" apply true + id("io.reflekt") version "0.2.0" apply true + kotlin("jvm") version "1.5.10" apply true } allprojects { @@ -17,22 +17,24 @@ allprojects { plugin("io.reflekt") } - tasks.withType { + tasks.withType { kotlinOptions { + useIR = true + languageVersion = "1.5" + apiVersion = "1.5" jvmTarget = "11" - languageVersion = "1.4" - apiVersion = "1.4" } } dependencies { - implementation("io.reflekt", "reflekt-dsl", "0.1.0") + implementation("io.reflekt", "reflekt-dsl", "0.2.0") implementation("com.github.gumtreediff", "core", "2.1.2") } repositories { mavenCentral() google() +// mavenLocal() maven(url = uri("https://packages.jetbrains.team/maven/p/reflekt/reflekt")) } diff --git a/examples/first-module/src/main/kotlin/io/reflekt/example/Functions.kt b/examples/first-module/src/main/kotlin/io/reflekt/example/Functions.kt index 5934e5e1..ed384cf7 100644 --- a/examples/first-module/src/main/kotlin/io/reflekt/example/Functions.kt +++ b/examples/first-module/src/main/kotlin/io/reflekt/example/Functions.kt @@ -33,3 +33,20 @@ class TestFunctions { } } } + +fun fooBoolean(): Boolean { + println("public second example foo") + return true +} + +inline fun fooArray(): Array = emptyArray() + +fun fooList(): List = emptyList() + +class MyInClass + +fun fooMyInClass(): MyInClass = MyInClass() + +fun withStar(a: List<*>) { } + +fun withBound(a: T) { } diff --git a/examples/first-module/src/main/kotlin/io/reflekt/example/Main.kt b/examples/first-module/src/main/kotlin/io/reflekt/example/Main.kt index a3b4ebcf..fa93567e 100644 --- a/examples/first-module/src/main/kotlin/io/reflekt/example/Main.kt +++ b/examples/first-module/src/main/kotlin/io/reflekt/example/Main.kt @@ -8,20 +8,20 @@ class Test(var a: List, b: List) fun main() { val tmp = Test(emptyList(), emptyList()) - tmp.a = listOf(Reflekt.objects().withSubType().withAnnotations(FirstAnnotation::class)) - println(tmp) + tmp.a = Reflekt.objects().withSupertype().withAnnotations(FirstAnnotation::class).toList() + println(tmp.a) - val objects = Reflekt.objects().withSubType().withAnnotations(FirstAnnotation::class, SecondAnnotation::class).toList() + val objects = Reflekt.objects().withSupertype().withAnnotations(FirstAnnotation::class, SecondAnnotation::class).toList() println(objects) - val objects1 = Reflekt.objects().withSubType() + val objects1 = Reflekt.objects().withSupertype() .withAnnotations(FirstAnnotation::class, SecondAnnotation::class).toList() println(objects1) - val objects2 = Reflekt.objects().withSubTypes(AInterface::class, A1::class) + val objects2 = Reflekt.objects().withSupertypes(AInterface::class, A1::class) .withAnnotations(FirstAnnotation::class, SecondAnnotation::class).toList() println(objects2) - val objects3 = Reflekt.objects().withSubTypes(AInterface::class, A1::class) + val objects3 = Reflekt.objects().withSupertypes(AInterface::class, A1::class) .withAnnotations(FirstAnnotation::class).toList() println(objects3) @@ -29,33 +29,78 @@ fun main() { println(objects4) val objects5 = Reflekt.objects().withAnnotations(FirstAnnotation::class).toList() println(objects5) - val objects6 = Reflekt.objects().withAnnotations(FirstAnnotation::class).withSubType().toList() + val objects6 = Reflekt.objects().withAnnotations(FirstAnnotation::class).withSupertype().toList() println(objects6) - val objects7 = Reflekt.objects().withAnnotations(FirstAnnotation::class).withSubTypes(AInterface::class).toList() + val objects7 = Reflekt.objects().withAnnotations(FirstAnnotation::class).withSupertypes(AInterface::class).toList() println(objects7) - val objects8 = Reflekt.objects().withSubType().toList() + val objects8 = Reflekt.objects().withSupertype().toList() println(objects8) - val classes1 = Reflekt.classes().withSubType().toList() + val classes1 = Reflekt.classes().withSupertype().toList() println(classes1) - val classes2 = Reflekt.classes().withSubType().toSet() + val classes2 = Reflekt.classes().withSupertype().toSet() println(classes2) val classes3 = Reflekt.classes().withAnnotations(FirstAnnotation::class, SecondAnnotation::class).toList() println(classes3) - val classes4 = Reflekt.classes().withSubType().toList() + val classes4 = Reflekt.classes().withSupertype().toList() println(classes4) val functions = Reflekt.functions().withAnnotations<() -> Unit>(FirstAnnotation::class).toList() println(functions) - val smartClasses = SmartReflekt.classes().filter { it.isData() }.resolve() - println(smartClasses) - - val smartObjects = SmartReflekt.objects().filter { it.isCompanion() }.resolve() - println(smartObjects) + // TODO: it does not work (error with TestFunctions$Companion), see issue#52: https://github.com/JetBrains-Research/reflekt/issues/52 +// val smartClasses = SmartReflekt.classes().filter { it.isData() }.resolve() +// println(smartClasses) +// +// val smartObjects = SmartReflekt.objects().filter { it.isCompanion() }.resolve() +// println(smartObjects) val smartFunctions = SmartReflekt.functions<() -> Unit>().filter { it.isTopLevel && it.name == "foo" }.resolve() println(smartFunctions) smartFunctions.forEach { it() } + + val fooBoolean = SmartReflekt.functions<() -> Boolean>().filter { it.isTopLevel && it.name == "fooBoolean" }.resolve().onEach { it() } + .map { it.toString() }.toSet() + println("fooBoolean: $fooBoolean") + + val fooStar = SmartReflekt.functions<(List<*>) -> Unit>().filter { it.isTopLevel && it.name == "withStar" }.resolve().onEach { it(listOf(1)) } + .map { it.toString() }.toSet() + println("fooStar: $fooStar") + + // TODO: we will support gnerics with bounds +// val fooBound = SmartReflekt.functions<(Number) -> Unit>().filter { it.isTopLevel && it.name == "withBound" }.resolve().onEach { it(listOf(1)) } +// .map { it.toString() }.toSet() +// println("fooBound: $fooBound") + + /** + * Such calls still fail, but it seems it's not a Reflekt problem since Kotlin doesn't consider our functions as subtypes of the given signature. + */ + +// val fooArray = SmartReflekt.functions>>().filter { it.isTopLevel && it.name == "fooArray" }.resolve().onEach { it() }.map { it.toString() }.toSet() +// println(fooArray) +// +// val fooList = SmartReflekt.functions>>().filter { it.isTopLevel && it.name == "fooList" }.resolve().onEach { it() }.map { it.toString() }.toSet() +// println(fooList) +// +// val fooMyInClass = SmartReflekt.functions>>().filter { it.isTopLevel && it.name == "fooMyInClass" }.resolve().onEach { it() }.map { it.toString() }.toSet() +// println(fooMyInClass) + + /** + * The simplest way to check it's to pass our functions as a parameter of an argument with the given signature: + */ + // arrayTestFun(::fooArray) + // listTestFun(::fooList) + // myInClassTestFun(::fooMyInClass) + + /** + * For each of the functions Kotlin says [NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER] Not enough information to infer type variable T + * Maybe we need to check https://kotlinlang.org/spec/type-system.html#mixed-site-variance + */ } + +fun arrayTestFun(funToTest: Function0>) {} + +fun listTestFun(funToTest: Function0>) {} + +fun myInClassTestFun(funToTest: Function0>) {} diff --git a/examples/settings.gradle.kts b/examples/settings.gradle.kts index 76700f57..079b4d8e 100644 --- a/examples/settings.gradle.kts +++ b/examples/settings.gradle.kts @@ -15,6 +15,7 @@ pluginManagement { repositories { gradlePluginPortal() +// mavenLocal() //add the dependency to Reflekt Maven repository maven(url = uri("https://packages.jetbrains.team/maven/p/reflekt/reflekt")) } diff --git a/reflekt-core/src/main/kotlin/io/reflekt/util/Util.kt b/reflekt-core/src/main/kotlin/io/reflekt/util/Util.kt index da78190e..45983153 100644 --- a/reflekt-core/src/main/kotlin/io/reflekt/util/Util.kt +++ b/reflekt-core/src/main/kotlin/io/reflekt/util/Util.kt @@ -16,7 +16,7 @@ object Util { * Just needs to be consistent with the artifactId in reflekt-plugin build.gradle.kts#publishJar */ const val GRADLE_ARTIFACT_ID = "reflekt-plugin" - const val VERSION = "0.1.0" + const val VERSION = "0.2.0" val ENABLED_OPTION_INFO = MyCliOption( name = "enabled", diff --git a/reflekt-dsl/src/main/kotlin/io/reflekt/Reflekt.kt b/reflekt-dsl/src/main/kotlin/io/reflekt/Reflekt.kt index da2312c5..970fc147 100644 --- a/reflekt-dsl/src/main/kotlin/io/reflekt/Reflekt.kt +++ b/reflekt-dsl/src/main/kotlin/io/reflekt/Reflekt.kt @@ -2,211 +2,223 @@ package io.reflekt import kotlin.reflect.KClass -/* -* The main Reflekt DSL for `multi-module` projects -* */ +/** + * The main Reflekt DSL for `multi-module` projects + */ object Reflekt { - /* - * Find all objects in the project's modules and external libraries (that was marked as libraries to introspect) - * and filter them by different conditions. - * */ + /** + * Find all objects in the project's modules and external libraries (that was marked as libraries to introspect) + * and filter them by different conditions. + */ class Objects { - /* - * Filter objects by one subtype. All objects will be cast to [T] type. + /** + * Filter objects by one supertype. All objects will be cast to [T] type. */ - inline fun withSubType() = WithSubTypes(setOf(T::class.qualifiedName!!)) - /* - * Filter objects by several subtypes. All objects will be cast to [Any] type. + inline fun withSupertype() = WithSupertypes(setOf(T::class.qualifiedName!!)) + + /** + * Filter objects by several supertypes. All objects will be cast to [Any] type. * If [klasses] was not passed the list\set with result will be empty. */ - fun withSubTypes(vararg klasses: KClass) = WithSubTypes(klasses.mapNotNull { it.qualifiedName }.toSet()) + fun withSupertypes(vararg klasses: KClass) = WithSupertypes(klasses.mapNotNull { it.qualifiedName }.toSet()) - /* - * Filter objects by several annotations and subtype [T]. All objects will be cast to [T] type. - * If [klasses] was not passed the list\set with result will contain only objects with subtype [T]. + /** + * Filter objects by several annotations and supertype [T]. All objects will be cast to [T] type. + * If [klasses] was not passed the list\set with result will contain only objects with supertype [T]. */ - inline fun withAnnotations(vararg klasses: KClass) = + inline fun withAnnotations(vararg klasses: KClass) = WithAnnotations(klasses.mapNotNull { it.qualifiedName }.toSet(), setOf(T::class.qualifiedName!!)) - /* - * The class represents DSL for searching objects with several subtypes. - * Each item in the list\set with result will be casted to [T] type. - * */ - class WithSubTypes(val fqNames: Set) { - /* - * Get list of objects with [fqNames] subtypes. - * Each item in the list\set with result will be casted to [T] type. - * */ - fun toList(): List = ReflektImpl.objects().withSubTypes(fqNames).toList() - /* - * Get set of objects with [fqNames] subtypes. - * Each item in the list\set with result will be casted to [T] type. - * */ + /** + * The class represents DSL for searching objects with several supertypes. + * Each item in the list\set with result will be cast to [T] type. + */ + class WithSupertypes(val fqNames: Set) { + /** + * Get list of objects with [fqNames] supertypes. + * Each item in the list\set with result will be cast to [T] type. + */ + fun toList(): List = ReflektImpl.objects().withSupertypes(fqNames).toList() + + /** + * Get set of objects with [fqNames] supertypes. + * Each item in the list\set with result will be cast to [T] type. + */ fun toSet(): Set = toList().toSet() - /* - * Filter objects with [fqNames] subtypes by several annotations. - * If [klasses] was not passed the list\set with result will contain only objects with [fqNames] subtypes. + /** + * Filter objects with [fqNames] supertypes by several annotations. + * If [klasses] was not passed the list\set with result will contain only objects with [fqNames] supertypes. */ - inline fun withAnnotations(vararg klasses: KClass) = + inline fun withAnnotations(vararg klasses: KClass) = WithAnnotations(klasses.mapNotNull { it.qualifiedName }.toSet(), fqNames) } - /* - * The class represents DSL for searching objects with several annotations. - * Each item in the list\set with result will be casted to [T] type. - * */ - class WithAnnotations(private val annotationFqNames: Set, private val subtypeFqNames: Set) { - /* - * Get list of objects with [subtypeFqNames] subtypes and [annotationFqNames] annotations. - * Each item in the list\set with result will be casted to [T] type. - * */ - fun toList(): List = ReflektImpl.objects().withAnnotations(annotationFqNames, subtypeFqNames).toList() - /* - * Get set of objects with [subtypeFqNames] subtypes and [annotationFqNames] annotations. - * Each item in the list\set with result will be casted to [T] type. - * */ + /** + * The class represents DSL for searching objects with several annotations. + * Each item in the list\set with result will be cast to [T] type. + */ + class WithAnnotations(private val annotationFqNames: Set, private val supertypeFqNames: Set) { + /** + * Get list of objects with [supertypeFqNames] supertypes and [annotationFqNames] annotations. + * Each item in the list\set with result will be cast to [T] type. + */ + fun toList(): List = ReflektImpl.objects().withAnnotations(annotationFqNames, supertypeFqNames).toList() + + /** + * Get set of objects with [supertypeFqNames] supertypes and [annotationFqNames] annotations. + * Each item in the list\set with result will be cast to [T] type. + */ fun toSet(): Set = toList().toSet() - /* - * Filter objects with [annotationFqNames] annotations by one subtype. All objects will be cast to [T] type. + /** + * Filter objects with [annotationFqNames] annotations by one supertype. All objects will be cast to [T] type. */ - inline fun withSubType() = WithSubTypes(setOf(T::class.qualifiedName!!)) - /* - * Filter objects with [annotationFqNames] annotations by several subtypes. All objects will be cast to [Any] type. + inline fun withSupertype() = WithSupertypes(setOf(T::class.qualifiedName!!)) + + /** + * Filter objects with [annotationFqNames] annotations by several supertypes. All objects will be cast to [Any] type. */ - fun withSubTypes(vararg klasses: KClass) = WithSubTypes(klasses.mapNotNull { it.qualifiedName }.toSet()) + fun withSupertypes(vararg klasses: KClass) = WithSupertypes(klasses.mapNotNull { it.qualifiedName }.toSet()) } } - /* - * Find all classes in the project's modules and external libraries (that was marked as libraries to introspect) - * and filter them by different conditions. - * */ + /** + * Find all classes in the project's modules and external libraries (that was marked as libraries to introspect) + * and filter them by different conditions. + */ class Classes { - /* - * Filter classes by one subtype. All classes will be cast to [T] type. + /** + * Filter classes by one supertype. All classes will be cast to [T] type. */ - inline fun withSubType() = WithSubTypes(setOf(T::class.qualifiedName!!)) - /* - * Filter classes by several subtypes. All classes will be cast to [Any] type. + inline fun withSupertype() = WithSupertypes(setOf(T::class.qualifiedName!!)) + + /** + * Filter classes by several supertypes. All classes will be cast to [Any] type. * If [klasses] was not passed the list\set with result will be empty. */ - fun withSubTypes(vararg klasses: KClass) = WithSubTypes(klasses.mapNotNull { it.qualifiedName }.toSet()) + fun withSupertypes(vararg klasses: KClass) = WithSupertypes(klasses.mapNotNull { it.qualifiedName }.toSet()) - /* - * Filter classes by several annotations and subtype [T]. All classes will be cast to [T] type. - * If [klasses] was not passed the list\set with result will contain only classes with subtype [T]. + /** + * Filter classes by several annotations and supertype [T]. All classes will be cast to [T] type. + * If [klasses] was not passed the list\set with result will contain only classes with supertype [T]. */ - inline fun withAnnotations(vararg klasses: KClass) = + inline fun withAnnotations(vararg klasses: KClass) = WithAnnotations(klasses.mapNotNull { it.qualifiedName }.toSet(), setOf(T::class.qualifiedName!!)) - /* - * The class represents DSL for searching classes with several subtypes. - * Each item in the list\set with result will be casted to [T] type. - * */ - class WithSubTypes(val fqNames: Set) { - /* - * Get list of classes with [fqNames] subtypes. - * Each item in the list\set with result will be casted to [T] type. - * */ - fun toList(): List> = ReflektImpl.classes().withSubTypes(fqNames).toList() - /* - * Get set of classes with [fqNames] subtypes. - * Each item in the list\set with result will be casted to [T] type. - * */ + /** + * The class represents DSL for searching classes with several supertypes. + * Each item in the list\set with result will be cast to [T] type. + */ + class WithSupertypes(val fqNames: Set) { + /** + * Get list of classes with [fqNames] supertypes. + * Each item in the list\set with result will be cast to [T] type. + */ + fun toList(): List> = ReflektImpl.classes().withSupertypes(fqNames).toList() + + /** + * Get set of classes with [fqNames] supertypes. + * Each item in the list\set with result will be cast to [T] type. + */ fun toSet(): Set> = toList().toSet() - /* - * Filter classes with [fqNames] subtypes by several annotations. - * If [klasses] was not passed the list\set with result will contain only classes with [fqNames] subtypes. + /** + * Filter classes with [fqNames] supertypes by several annotations. + * If [klasses] was not passed the list\set with result will contain only classes with [fqNames] supertypes. */ - inline fun withAnnotations(vararg klasses: KClass) = + inline fun withAnnotations(vararg klasses: KClass) = WithAnnotations(klasses.mapNotNull { it.qualifiedName }.toSet(), fqNames) } - /* - * The class represents DSL for searching classes with several annotations. - * Each item in the list\set with result will be casted to [T] type. - * */ - class WithAnnotations(private val annotationFqNames: Set, val subtypeFqNames: Set) { - /* - * Get list of classes with [subtypeFqNames] subtypes and [annotationFqNames] annotations. - * Each item in the list\set with result will be casted to [T] type. - * */ - fun toList(): List> = ReflektImpl.classes().withAnnotations(annotationFqNames, subtypeFqNames).toList() - /* - * Get set of classes with [subtypeFqNames] subtypes and [annotationFqNames] annotations. - * Each item in the list\set with result will be casted to [T] type. - * */ + /** + * The class represents DSL for searching classes with several annotations. + * Each item in the list\set with result will be cast to [T] type. + */ + class WithAnnotations(private val annotationFqNames: Set, val supertypeFqNames: Set) { + /** + * Get list of classes with [supertypeFqNames] supertypes and [annotationFqNames] annotations. + * Each item in the list\set with result will be cast to [T] type. + */ + fun toList(): List> = ReflektImpl.classes().withAnnotations(annotationFqNames, supertypeFqNames).toList() + + /** + * Get set of classes with [supertypeFqNames] supertypes and [annotationFqNames] annotations. + * Each item in the list\set with result will be cast to [T] type. + */ fun toSet(): Set> = toList().toSet() - /* - * Filter classes with [annotationFqNames] annotations by one subtype. All classes will be cast to [T] type. + /** + * Filter classes with [annotationFqNames] annotations by one supertype. All classes will be cast to [T] type. */ - inline fun withSubType() = WithSubTypes(subtypeFqNames) - /* - * Filter classes with [annotationFqNames] annotations by several subtypes. All classes will be cast to [Any] type. + inline fun withSupertype() = WithSupertypes(supertypeFqNames) + + /** + * Filter classes with [annotationFqNames] annotations by several supertypes. All classes will be cast to [Any] type. */ - fun withSubTypes(vararg klasses: KClass) = WithSubTypes(klasses.mapNotNull { it.qualifiedName }.toSet()) + fun withSupertypes(vararg klasses: KClass) = WithSupertypes(klasses.mapNotNull { it.qualifiedName }.toSet()) } } - /* - * Find all functions in the project's modules and external libraries (that was marked as libraries to introspect) - * and filter them by different conditions. - * */ + /** + * Find all functions in the project's modules and external libraries (that was marked as libraries to introspect) + * and filter them by different conditions. + */ class Functions { - /* - * The class represents DSL for searching functions by the signature with several annotations. - * */ - class WithAnnotations>(private val annotationFqNames: Set) { - /* - * Get list of functions with [T] signature and [annotationFqNames] annotations. - * */ + /** + * The class represents DSL for searching functions by the signature with several annotations. + */ + class WithAnnotations>(private val annotationFqNames: Set) { + /** + * Get list of functions with [T] signature and [annotationFqNames] annotations. + */ fun toList(): List = ReflektImpl.functions().withAnnotations(annotationFqNames).toList() - /* - * Get set of functions with [T] signature and [annotationFqNames] annotations. - * */ + + /** + * Get set of functions with [T] signature and [annotationFqNames] annotations. + */ fun toSet(): Set = toList().toSet() } - /* + /** * Filter functions with [T] signature by several annotations. * If [klasses] was not passed the list\set with result will contain only functions with [T] signature. */ - inline fun > withAnnotations(vararg klasses: KClass) = WithAnnotations(klasses.mapNotNull { it.qualifiedName }.toSet()) + inline fun > withAnnotations(vararg klasses: KClass) = + WithAnnotations(klasses.mapNotNull { it.qualifiedName }.toSet()) } - /* - * The main function for searching objects. The chain of calls have to end with toList() or toSet() function. - * - * For example: - * Reflekt.objects().withSubType().withAnnotations(FirstAnnotation::class, SecondAnnotation::class).toList() - * Reflekt.objects().withAnnotations(FirstAnnotation::class).toSet() - * */ + /** + * The main function for searching objects. The chain of calls has to end with toList() or toSet() function. + * + * For example: + * Reflekt.objects().withSupertype().withAnnotations(FirstAnnotation::class, SecondAnnotation::class).toList() + * Reflekt.objects().withAnnotations(FirstAnnotation::class).toSet() + */ fun objects() = Objects() - /* - * The main function for searching classes. The chain of calls have to end with toList() or toSet() function. - * - * For example: - * Reflekt.classes().withSubType().withAnnotations(FirstAnnotation::class, SecondAnnotation::class).toList() - * Reflekt.classes().withAnnotations(FirstAnnotation::class).toSet() - * */ + + /** + * The main function for searching classes. The chain of calls has to end with toList() or toSet() function. + * + * For example: + * Reflekt.classes().withSupertype().withAnnotations(FirstAnnotation::class, SecondAnnotation::class).toList() + * Reflekt.classes().withAnnotations(FirstAnnotation::class).toSet() + */ fun classes() = Classes() - /* - * The main function for searching functions. The chain of calls have to end with toList() or toSet() function. - * - * For example: - * Reflekt.functions().withAnnotations<() -> Unit>().toList() - * Reflekt.functions().withAnnotations<(Int, String) -> List>().toSet() - * */ + + /** + * The main function for searching functions. The chain of calls has to end with toList() or toSet() function. + * + * For example: + * Reflekt.functions().withAnnotations<() -> Unit>().toList() + * Reflekt.functions().withAnnotations<(Int, String) -> List>().toSet() + */ fun functions() = Functions() } diff --git a/reflekt-dsl/src/main/kotlin/io/reflekt/ReflektImpl.kt b/reflekt-dsl/src/main/kotlin/io/reflekt/ReflektImpl.kt index 78b747fc..8645293a 100644 --- a/reflekt-dsl/src/main/kotlin/io/reflekt/ReflektImpl.kt +++ b/reflekt-dsl/src/main/kotlin/io/reflekt/ReflektImpl.kt @@ -1,38 +1,37 @@ package io.reflekt -import io.reflekt.models.compileTime import kotlin.reflect.KClass -@Suppress("UNUSED_PARAMETER") +@Suppress("unused") object ReflektImpl { class Objects { - fun withSubTypes(fqNames: Set) = WithSubTypes(fqNames) - fun withAnnotations(annotationFqNames: Set, subtypeFqNames: Set) = - WithAnnotations(annotationFqNames, subtypeFqNames) + fun withSupertypes(fqNames: Set) = WithSuperTypes(fqNames) + fun withAnnotations(annotationFqNames: Set, supertypeFqNames: Set) = + WithAnnotations(annotationFqNames, supertypeFqNames) - class WithSubTypes(val fqNames: Set) { - fun toList(): List = compileTime() + class WithSuperTypes(val fqNames: Set) { + fun toList(): List = error("This method should be replaced during compilation") fun toSet(): Set = toList().toSet() } - class WithAnnotations(val annotationFqNames: Set, subtypeFqNames: Set) { - fun toList(): List = compileTime() + class WithAnnotations(val annotationFqNames: Set, supertypeFqNames: Set) { + fun toList(): List = error("This method should be replaced during compilation") fun toSet(): Set = toList().toSet() } } class Classes { - fun withSubTypes(fqNames: Set) = WithSubTypes(fqNames) - fun withAnnotations(annotationFqNames: Set, subtypeFqNames: Set) = - WithAnnotations(annotationFqNames, subtypeFqNames) + fun withSupertypes(fqNames: Set) = WithSupertypes(fqNames) + fun withAnnotations(annotationFqNames: Set, supertypeFqNames: Set) = + WithAnnotations(annotationFqNames, supertypeFqNames) - class WithSubTypes(val fqNames: Set) { - fun toList(): List> = compileTime() + class WithSupertypes(val fqNames: Set) { + fun toList(): List> = error("This method should be replaced during compilation") fun toSet(): Set> = toList().toSet() } - class WithAnnotations(val annotationFqNames: Set, subtypeFqNames: Set) { - fun toList(): List> = compileTime() + class WithAnnotations(val annotationFqNames: Set, supertypeFqNames: Set) { + fun toList(): List> = error("This method should be replaced during compilation") fun toSet(): Set> = toList().toSet() } } @@ -40,7 +39,7 @@ object ReflektImpl { class Functions { // T - returned class class WithAnnotations>(val annotationFqNames: Set) { - fun toList(): List = compileTime() + fun toList(): List = error("This method should be replaced during compilation") fun toSet(): Set = toList().toSet() } diff --git a/reflekt-plugin/build.gradle.kts b/reflekt-plugin/build.gradle.kts index a3ea74c2..d5a50903 100644 --- a/reflekt-plugin/build.gradle.kts +++ b/reflekt-plugin/build.gradle.kts @@ -13,8 +13,8 @@ dependencies { implementation(kotlin("scripting-jvm")) implementation(kotlin("scripting-jvm-host")) - implementation("com.google.auto.service", "auto-service-annotations", "1.0-rc7") - kapt("com.google.auto.service", "auto-service", "1.0-rc7") + implementation("com.google.auto.service", "auto-service-annotations", "1.0") + kapt("com.google.auto.service", "auto-service", "1.0") implementation(project(":reflekt-core")) implementation(project(":reflekt-dsl")) @@ -29,11 +29,12 @@ dependencies { testImplementation("org.junit.jupiter", "junit-jupiter-params", "5.7.0") testRuntimeOnly("org.junit.jupiter", "junit-jupiter-engine", "5.7.0") testImplementation("com.google.code.gson", "gson", "2.8.6") + testImplementation("com.github.tschuchortdev", "kotlin-compile-testing", "1.4.1") } tasks.withType { useJUnitPlatform { - includeTags = setOf("analysis", "scripting") + includeTags = setOf("analysis", "scripting", "ir", "parametrizedType") } testLogging { diff --git a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/ReflektComponentRegistrar.kt b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/ReflektComponentRegistrar.kt index 567ec0f5..3ce15c90 100644 --- a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/ReflektComponentRegistrar.kt +++ b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/ReflektComponentRegistrar.kt @@ -2,13 +2,14 @@ package io.reflekt.plugin import com.google.auto.service.AutoService import io.reflekt.plugin.analysis.ReflektModuleAnalysisExtension -import io.reflekt.plugin.generation.bytecode.ReflektGeneratorExtension -import io.reflekt.plugin.generation.bytecode.SmartReflektGeneratorExtension +import io.reflekt.plugin.analysis.models.ReflektContext +import io.reflekt.plugin.generation.ir.ReflektIrGenerationExtension +import io.reflekt.plugin.generation.ir.SmartReflektIrGenerationExtension import io.reflekt.plugin.utils.Keys import io.reflekt.plugin.utils.Util.initMessageCollector import io.reflekt.plugin.utils.Util.log import io.reflekt.plugin.utils.Util.messageCollector -import org.jetbrains.kotlin.codegen.extensions.ExpressionCodegenExtension +import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension import org.jetbrains.kotlin.com.intellij.mock.MockProject import org.jetbrains.kotlin.com.intellij.psi.PsiFileFactory import org.jetbrains.kotlin.compiler.plugin.ComponentRegistrar @@ -19,7 +20,7 @@ import org.jetbrains.kotlin.resolve.jvm.extensions.AnalysisHandlerExtension import java.io.File @AutoService(ComponentRegistrar::class) -class ReflektComponentRegistrar : ComponentRegistrar { +class ReflektComponentRegistrar(private val hasConfiguration: Boolean = true) : ComponentRegistrar { // The path will be: pathToKotlin/daemon/reflekt-log.log private val logFilePath = "reflekt-log.log" @@ -27,7 +28,7 @@ class ReflektComponentRegistrar : ComponentRegistrar { project: MockProject, configuration: CompilerConfiguration ) { - if (configuration[Keys.ENABLED] != true) { + if (hasConfiguration && configuration[Keys.ENABLED] != true) { return } configuration.initMessageCollector(logFilePath) @@ -38,24 +39,31 @@ class ReflektComponentRegistrar : ComponentRegistrar { configuration.messageCollector.log("DEPENDENCY JARS: ${dependencyJars.map { it.absolutePath }};") val filesToIntrospect = getKtFiles(configuration[Keys.INTROSPECT_FILES] ?: emptyList(), project) - val outputDir = configuration[Keys.OUTPUT_DIR] ?: File("") + val outputDir = configuration[Keys.OUTPUT_DIR] + val reflektContext = ReflektContext() + // Todo: will this be called multiple times (for each project module)? can we avoid this? AnalysisHandlerExtension.registerExtension( project, ReflektModuleAnalysisExtension( filesToIntrospect = filesToIntrospect, generationPath = outputDir, + reflektContext = reflektContext, messageCollector = configuration.messageCollector ) ) - ExpressionCodegenExtension.registerExtension( + IrGenerationExtension.registerExtension( project, - ReflektGeneratorExtension(messageCollector = configuration.messageCollector) + ReflektIrGenerationExtension( + reflektContext = reflektContext, + messageCollector = configuration.messageCollector + ) ) - ExpressionCodegenExtension.registerExtension( + IrGenerationExtension.registerExtension( project, - SmartReflektGeneratorExtension( + SmartReflektIrGenerationExtension( classpath = dependencyJars, + reflektContext = reflektContext, messageCollector = configuration.messageCollector ) ) diff --git a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/ASTNode.kt b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/ASTNode.kt index 5c483e28..467fa784 100644 --- a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/ASTNode.kt +++ b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/ASTNode.kt @@ -1,18 +1,20 @@ package io.reflekt.plugin.analysis import io.reflekt.plugin.analysis.models.ElementType -import io.reflekt.plugin.analysis.models.ParameterizedType import io.reflekt.plugin.analysis.psi.getFqName import org.jetbrains.kotlin.com.intellij.lang.ASTNode import org.jetbrains.kotlin.com.intellij.psi.impl.source.tree.LeafPsiElement +import org.jetbrains.kotlin.psi.KtTypeReference import org.jetbrains.kotlin.psi.psiUtil.children import org.jetbrains.kotlin.psi.psiUtil.parents import org.jetbrains.kotlin.resolve.BindingContext +import org.jetbrains.kotlin.types.KotlinType import java.util.* -/* + +/** * Get a list of all parents of nodes and find the last occurrence of a vertex whose type is A ([elementType]). - * Moreover, all previous vertices also had type A. + * Moreover, all previous vertices also have type A. * * For example, if we have a list of vertices with types [A, A, A, A, B], and [elementType == A] * then we must return index 3, because the last occurrence index is 4 (B != A). @@ -61,12 +63,12 @@ fun ASTNode.getLambdaParameters(): List { } } -/* - * Traverse all children of the node (use BFS order) and return all children nodes which satisfy the filter condition +/** + * Traverse all children of the node (use BFS order) and return all child nodes which satisfy the filter condition */ fun ASTNode.filterChildren(filter: (node: ASTNode) -> Boolean): Sequence { val filtered = ArrayList() - val nodes: Queue = LinkedList(listOf(this)) + val nodes: Queue = LinkedList(listOf(this)) while (nodes.isNotEmpty()) { val currentNode = nodes.poll() if (filter(currentNode)) { @@ -77,34 +79,33 @@ fun ASTNode.filterChildren(filter: (node: ASTNode) -> Boolean): Sequence -> [] -> TYPE_REFERENCE -> USER_TYPE|FUNCTION_TYPE + * It has the following structure: root -> -> <[entryType]> */ -fun ASTNode.getTypeList(listType: ElementType, entryType: ElementType): List = +private fun ASTNode.getParameterList(listType: ElementType, entryType: ElementType): List = (children().firstOrNull { it.hasType(listType) }?.children()?.toList() ?: emptyList()) .filter { it.hasType(entryType) } - .map { it.children().first { it.hasType(ElementType.TypeReference) }.firstChildNode } - .toList() -fun ASTNode.getTypeArguments(): List = getTypeList(ElementType.TypeArgumentList, ElementType.TypeProjection) +/** + * Get type of [ASTNode] parameter. + * It has the following structure: root -> TYPE_REFERENCE -> USER_TYPE|FUNCTION_TYPE|NULLABLE_TYPE + */ +fun ASTNode.getParameterType(): ASTNode = children().first { it.hasType(ElementType.TypeReference) }.firstChildNode -fun ASTNode.getValueParameters(): List = getTypeList(ElementType.ValueParameterList, ElementType.ValueParameter) +/** + * Extract list of types from [ASTNode]. + * For example, CALL_EXPRESSION and USER_TYPE both may have TYPE_ARGUMENT_LIST as the child node. + * It has the following structure: root -> -> <[entryType]> -> TYPE_REFERENCE -> USER_TYPE|FUNCTION_TYPE + */ +private fun ASTNode.getTypeList(listType: ElementType, entryType: ElementType): List = + getParameterList(listType, entryType).map { it.getParameterType() } -fun ASTNode.getParameterizedType(binding: BindingContext): ParameterizedType { - return when (val type = elementType.toString()) { - ElementType.UserType.value -> { - val parameters = getTypeArguments().map { it.getParameterizedType(binding) } - val fqName = children().first { it.hasType(ElementType.ReferenceExpression) }.psi.getFqName(binding)!! - ParameterizedType(fqName, parameters) - } - ElementType.FunctionType.value -> { - val argumentTypes = getValueParameters().map { it.getParameterizedType(binding) } - val returnType = children().first { it.hasType(ElementType.TypeReference) }.firstChildNode.getParameterizedType(binding) - val fqName = "kotlin.Function${argumentTypes.size}" - ParameterizedType(fqName, argumentTypes.plus(returnType)) - } - else -> error("Unrecognized element type: $type") - } + +fun ASTNode.getTypeArguments(): List = getTypeList(ElementType.TypeArgumentList, ElementType.TypeProjection) + +/** Constructs ParameterizedType representing [ASTNode] of type USER_TYPE/FUNCTION_TYPE/NULLABLE_TYPE */ +fun ASTNode.toParameterizedType(binding: BindingContext): KotlinType { + return binding.get(BindingContext.TYPE, this.psi.context as KtTypeReference) ?: error("Unrecognized element type: $elementType") } diff --git a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/ReflektModuleAnalysisExtension.kt b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/ReflektModuleAnalysisExtension.kt index 25aa7118..c01ab93b 100644 --- a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/ReflektModuleAnalysisExtension.kt +++ b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/ReflektModuleAnalysisExtension.kt @@ -1,5 +1,6 @@ package io.reflekt.plugin.analysis +import io.reflekt.plugin.analysis.models.* import io.reflekt.plugin.generation.code.generator.ReflektImplGenerator import io.reflekt.plugin.utils.Util.getInstances import io.reflekt.plugin.utils.Util.getUses @@ -14,7 +15,8 @@ import org.jetbrains.kotlin.resolve.jvm.extensions.AnalysisHandlerExtension import java.io.File class ReflektModuleAnalysisExtension(private val filesToIntrospect: Set, - private val generationPath: File, + private val generationPath: File?, + private val reflektContext: ReflektContext? = null, private val messageCollector: MessageCollector? = null) : AnalysisHandlerExtension { override fun analysisCompleted(project: Project, module: ModuleDescriptor, bindingTrace: BindingTrace, files: Collection): AnalysisResult? { @@ -24,14 +26,22 @@ class ReflektModuleAnalysisExtension(private val filesToIntrospect: Set, val allFiles = files.toSet().union(filesToIntrospect) val uses = getUses(allFiles, bindingTrace) val instances = getInstances(allFiles, bindingTrace) - messageCollector?.log("Finish analysis ${module.name} module's files;\nUses: $uses\nInstances: $instances") + if (reflektContext != null) { + reflektContext.uses = IrReflektUses.fromReflektUses(uses, bindingTrace.bindingContext) + reflektContext.instances = IrReflektInstances.fromReflektInstances(instances, bindingTrace.bindingContext) + messageCollector?.log("Finish analysis ${module.name} module's files;\nUses: ${reflektContext.uses}\nInstances: ${reflektContext.instances}") + } else { + messageCollector?.log("Finish analysis ${module.name} module's files;\nUses: $uses\nInstances: $instances") + } - with(File(generationPath, "io/reflekt/ReflektImpl.kt")) { - delete() - parentFile.mkdirs() - writeText( - ReflektImplGenerator(uses).generate() - ) + if (generationPath != null) { + with(File(generationPath, "io/reflekt/ReflektImpl.kt")) { + delete() + parentFile.mkdirs() + writeText( + ReflektImplGenerator(uses).generate() + ) + } } return super.analysisCompleted(project, module, bindingTrace, files) diff --git a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/Util.kt b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/Util.kt index 78092d80..fb12c75e 100644 --- a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/Util.kt +++ b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/Util.kt @@ -10,7 +10,7 @@ object AnalysisUtil { fun getReflektAnalyzer(classPath: Set, sources: Set): ReflektAnalyzer { val baseAnalyzer = getBaseAnalyzer(classPath, sources) - return ReflektAnalyzer(baseAnalyzer.ktFiles, baseAnalyzer.binding) + return ReflektAnalyzer(baseAnalyzer.ktFiles, baseAnalyzer.binding) } fun getSmartReflektAnalyzer(classPath: Set, sources: Set): SmartReflektAnalyzer { diff --git a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/common/ReflektNames.kt b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/common/ReflektNames.kt index c0b3288e..3ab8ba57 100644 --- a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/common/ReflektNames.kt +++ b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/common/ReflektNames.kt @@ -23,8 +23,8 @@ enum class ReflektEntity( } enum class ReflektFunction(val functionName: String) { - WITH_SUBTYPE("withSubType"), - WITH_SUBTYPES("${WITH_SUBTYPE.functionName}s"), + WITH_SUPERTYPE("withSupertype"), + WITH_SUPERTYPES("${WITH_SUPERTYPE.functionName}s"), WITH_ANNOTATIONS("withAnnotations"), } @@ -33,7 +33,7 @@ enum class SmartReflektFunction(val functionName: String) { } enum class ReflektNestedClass(val className: String) { - WITH_SUBTYPES(ReflektFunction.WITH_SUBTYPES.functionName.capitalize()), + WITH_SUPERTYPES(ReflektFunction.WITH_SUPERTYPES.functionName.capitalize()), WITH_ANNOTATIONS(ReflektFunction.WITH_ANNOTATIONS.functionName.capitalize()), } diff --git a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/common/Util.kt b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/common/Util.kt index dc54ccd5..b4ae20e4 100644 --- a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/common/Util.kt +++ b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/common/Util.kt @@ -7,54 +7,59 @@ import org.jetbrains.kotlin.psi.KtExpression import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.psiUtil.parents import org.jetbrains.kotlin.resolve.BindingContext +import org.jetbrains.kotlin.types.KotlinType // [1]Reflekt.[2]|objects()/classes() or so on| // [dotQualifiedExpressionNode] is [1] -fun findReflektInvokeArguments(dotQualifiedExpressionNode: ASTNode, binding: BindingContext): SubTypesToAnnotations? { +fun findReflektInvokeArguments(dotQualifiedExpressionNode: ASTNode, binding: BindingContext): SupertypesToAnnotations? { val filteredChildren = dotQualifiedExpressionNode.filterChildren { n: ASTNode -> n.text in ReflektFunction.values().map { it.functionName } } - val subtypes = HashSet() + val supertypes = HashSet() val annotations = HashSet() for (node in filteredChildren) { val callExpressionRoot = node.parents().firstOrNull { it.hasType(ElementType.CallExpression) } ?: continue when (node.text) { - ReflektFunction.WITH_SUBTYPE.functionName -> callExpressionRoot.getFqNamesOfTypeArgument(binding).let { subtypes.addAll(it) } - ReflektFunction.WITH_SUBTYPES.functionName -> callExpressionRoot.getFqNamesOfValueArguments(binding).let { subtypes.addAll(it) } + ReflektFunction.WITH_SUPERTYPE.functionName -> callExpressionRoot.getFqNamesOfTypeArgument(binding).let { supertypes.addAll(it) } + ReflektFunction.WITH_SUPERTYPES.functionName -> callExpressionRoot.getFqNamesOfValueArguments(binding).let { supertypes.addAll(it) } ReflektFunction.WITH_ANNOTATIONS.functionName -> { - callExpressionRoot.getFqNamesOfTypeArgument(binding).let { subtypes.addAll(it) } + callExpressionRoot.getFqNamesOfTypeArgument(binding).let { supertypes.addAll(it) } callExpressionRoot.getFqNamesOfValueArguments(binding).let { annotations.addAll(it) } } else -> error("Found an unexpected node text: ${node.text}") } } - if (subtypes.isEmpty()) { + if (supertypes.isEmpty()) { return null } - return SubTypesToAnnotations(subtypes, annotations) + return SupertypesToAnnotations(supertypes, annotations) } -fun findReflektInvokeArgumentsByExpressionPart(expression: KtExpression, binding: BindingContext): SubTypesToAnnotations? { - // We use this function only for REFERENCE_EXPRESSION nodes. Any vertex of this type has the following structure: - // CALL_EXPRESSION -> REFERENCE_EXPRESSION - // We want to get the root of this expression (CALL_EXPRESSION) - // For example, in our case we have the following expression: Reflekt.objects() - // The root of objects() part is CALL_EXPRESSION +fun findReflektInvokeArgumentsByExpressionPart(expression: KtExpression, binding: BindingContext): SupertypesToAnnotations? { + /** + * We use this function only for REFERENCE_EXPRESSION nodes. Any vertex of this type has the following structure: + * CALL_EXPRESSION -> REFERENCE_EXPRESSION + * We want to get the root of this expression (CALL_EXPRESSION) + * For example, in our case we have the following expression: Reflekt.objects() + * The root of objects() part is CALL_EXPRESSION + */ val callExpressionRoot = expression.node.parents().first() - // Any Reflekt invoke is something like this: ... [1]Reflekt.[2]|objects()/classes() or so on|.... - // We can find the [2] - callExpressionRoot - // To find the [1] place we should go to the 1 level above from [2] - // by finding the root of the nested DOT_QUALIFIED_EXPRESSION nodes + /** + * Any Reflekt invoke is something like this: ... [1]Reflekt.[2]|objects()/classes() or so on|.... + * We can find the [2] - callExpressionRoot + * To find the [1] place we should go to the 1 level above from [2] + * by finding the root of the nested DOT_QUALIFIED_EXPRESSION nodes + */ return callExpressionRoot.findLastParentByType(ElementType.DotQualifiedExpression)?.let { node -> findReflektInvokeArguments(node, binding) } } -fun findReflektFunctionInvokeArguments(dotQualifiedExpressionNode: ASTNode, binding: BindingContext): SignatureToAnnotations? { +fun findReflektFunctionInvokeArguments(dotQualifiedExpressionNode: ASTNode, binding: BindingContext): SignatureToAnnotations { val filteredChildren = dotQualifiedExpressionNode.filterChildren { n: ASTNode -> n.text in ReflektFunction.values().map { it.functionName } } - var signature: ParameterizedType? = null + var signature: KotlinType? = null val annotations = HashSet() for (node in filteredChildren) { @@ -62,7 +67,7 @@ fun findReflektFunctionInvokeArguments(dotQualifiedExpressionNode: ASTNode, bind when (node.text) { ReflektFunction.WITH_ANNOTATIONS.functionName -> { callExpressionRoot.getFqNamesOfValueArguments(binding).let { annotations.addAll(it) } - signature = callExpressionRoot.getTypeArguments().first().getParameterizedType(binding) + signature = callExpressionRoot.getTypeArguments().first().toParameterizedType(binding) } else -> error("Found an unexpected node text: ${node.text}") } @@ -82,12 +87,12 @@ fun findReflektFunctionInvokeArgumentsByExpressionPart(expression: KtExpression, // [1]SmartReflekt.[2]|objects()/classes() or so on| // [dotQualifiedExpressionNode] is [1] -fun findSmartReflektInvokeArguments(dotQualifiedExpressionNode: ASTNode, binding: BindingContext): SubTypesToFilters? { +fun findSmartReflektInvokeArguments(dotQualifiedExpressionNode: ASTNode, binding: BindingContext): SupertypesToFilters? { val filteredChildren = dotQualifiedExpressionNode.filterChildren { n: ASTNode -> (n.text in SmartReflektFunction.values().map { it.functionName } || n.text in ReflektEntity.values().map { it.entityType }) && n.hasType(ElementType.ReferenceExpression) } - var subtype: ParameterizedType? = null + var supertype: KotlinType? = null val filters = ArrayList() for (node in filteredChildren) { val childCallExpressionRoot = node.parents().firstOrNull { it.elementType.toString() == ElementType.CallExpression.value } ?: continue @@ -98,7 +103,7 @@ fun findSmartReflektInvokeArguments(dotQualifiedExpressionNode: ASTNode, binding filters.add(Lambda(body, parameters)) } in ReflektEntity.values().map { it.entityType } -> { - subtype = childCallExpressionRoot.getTypeArguments().first().getParameterizedType(binding) + supertype = childCallExpressionRoot.getTypeArguments().first().toParameterizedType(binding) } else -> error("Found an unexpected node text: ${node.text}") } @@ -110,12 +115,11 @@ fun findSmartReflektInvokeArguments(dotQualifiedExpressionNode: ASTNode, binding Import(it.importedFqName.toString(), it.text) } - return SubTypesToFilters(subtype, filters, imports) + return SupertypesToFilters(supertype, filters, imports) } -fun findSmartReflektInvokeArgumentsByExpressionPart(expression: KtExpression, binding: BindingContext): SubTypesToFilters? { +fun findSmartReflektInvokeArgumentsByExpressionPart(expression: KtExpression, binding: BindingContext): SupertypesToFilters? { val callExpressionRoot = expression.node.parents().first() - // TODO: should we change it for functions? Or string (fqName) is ok? return callExpressionRoot.findLastParentByType(ElementType.DotQualifiedExpression)?.let { node -> findSmartReflektInvokeArguments(node, binding) } diff --git a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/ir/ArgumentCollectors.kt b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/ir/ArgumentCollectors.kt new file mode 100644 index 00000000..a9738a44 --- /dev/null +++ b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/ir/ArgumentCollectors.kt @@ -0,0 +1,124 @@ +package io.reflekt.plugin.analysis.ir + +import io.reflekt.plugin.analysis.models.* +import io.reflekt.plugin.analysis.common.* +import org.jetbrains.kotlin.ir.IrElement +import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI +import org.jetbrains.kotlin.ir.expressions.IrCall +import org.jetbrains.kotlin.ir.expressions.IrFunctionExpression +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor +import org.jetbrains.kotlin.types.KotlinType + +open class IrRecursiveVisitor : IrElementVisitor { + override fun visitElement(element: IrElement, data: Nothing?) { + element.acceptChildren(this, data) + } +} + +/** + * IR version of [findReflektInvokeArguments] function. + * Traverses subtree of expression and collects arguments of withSupertype, withSupertypes and withAnnotations calls to construct [SupertypesToAnnotations]. + */ +class ReflektInvokeArgumentsCollector : IrRecursiveVisitor() { + private val supertypes = HashSet() + private val annotations = HashSet() + + override fun visitCall(expression: IrCall, data: Nothing?) { + super.visitCall(expression, data) + val function = expression.symbol.owner + when (function.name.asString()) { + ReflektFunction.WITH_SUPERTYPE.functionName -> { + supertypes.addAll(expression.getFqNamesOfTypeArguments()) + } + ReflektFunction.WITH_SUPERTYPES.functionName -> { + supertypes.addAll(expression.getFqNamesOfClassReferenceValueArguments()) + } + ReflektFunction.WITH_ANNOTATIONS.functionName -> { + annotations.addAll(expression.getFqNamesOfClassReferenceValueArguments()) + supertypes.addAll(expression.getFqNamesOfTypeArguments()) + } + } + } + + companion object { + fun collectInvokeArguments(expression: IrCall): SupertypesToAnnotations? { + val visitor = ReflektInvokeArgumentsCollector() + expression.accept(visitor, null) + if (visitor.supertypes.isEmpty()) { + return null + } + return SupertypesToAnnotations(visitor.supertypes, visitor.annotations) + } + } +} + +/** + * IR version of [findReflektFunctionInvokeArguments] function. + * Traverses subtree of expression and collects arguments of withSupertype, withSupertypes and withAnnotations calls to construct [SignatureToAnnotations]. + */ +class ReflektFunctionInvokeArgumentsCollector : IrRecursiveVisitor() { + private var signature: KotlinType? = null + private val annotations = HashSet() + + @ObsoleteDescriptorBasedAPI + override fun visitCall(expression: IrCall, data: Nothing?) { + super.visitCall(expression, data) + val function = expression.symbol.owner + when (function.name.asString()) { + ReflektFunction.WITH_ANNOTATIONS.functionName -> { + annotations.addAll(expression.getFqNamesOfClassReferenceValueArguments()) + signature = expression.getTypeArgument(0)?.toParameterizedType() + } + } + } + + companion object { + fun collectInvokeArguments(expression: IrCall): SignatureToAnnotations? { + val visitor = ReflektFunctionInvokeArgumentsCollector() + expression.accept(visitor, null) + return visitor.signature?.let { SignatureToAnnotations(it, visitor.annotations) } + } + } +} + +/** + * IR version of [findSmartReflektInvokeArguments] function. + * Traverses subtree of expression and collects arguments of filter calls to construct [SupertypesToFilters]. + */ +class SmartReflektInvokeArgumentsCollector(private val sourceFile: SourceFile) : IrRecursiveVisitor() { + private var supertype: KotlinType? = null + private val filters = ArrayList() + + @ObsoleteDescriptorBasedAPI + override fun visitCall(expression: IrCall, data: Nothing?) { + super.visitCall(expression, data) + val function = expression.symbol.owner + if (function.name.asString() in ReflektEntity.values().map { it.entityType }) { + supertype = expression.getTypeArgument(0)?.toParameterizedType() + } + } + + override fun visitFunctionExpression(expression: IrFunctionExpression, data: Nothing?) { + val function = expression.function + if (function.body == null) { + return + } + val body = sourceFile.content.substring(function.body!!.startOffset, function.body!!.endOffset) + val parameters = function.valueParameters.map { it.name.toString() } + filters.add(Lambda(body = body, parameters = parameters)) + + super.visitFunctionExpression(expression, data) + } + + companion object { + fun collectInvokeArguments(expression: IrCall, sourceFile: SourceFile): SupertypesToFilters { + val visitor = SmartReflektInvokeArgumentsCollector(sourceFile) + expression.accept(visitor, null) + return SupertypesToFilters( + supertype = visitor.supertype, + filters = visitor.filters, + imports = sourceFile.imports + ) + } + } +} diff --git a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/ir/Util.kt b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/ir/Util.kt new file mode 100644 index 00000000..894e62b5 --- /dev/null +++ b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/ir/Util.kt @@ -0,0 +1,36 @@ +package io.reflekt.plugin.analysis.ir + +import io.reflekt.plugin.analysis.psi.function.toParameterizedType +import org.jetbrains.kotlin.backend.jvm.codegen.psiElement +import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI +import org.jetbrains.kotlin.ir.declarations.IrFunction +import org.jetbrains.kotlin.ir.expressions.* +import org.jetbrains.kotlin.ir.types.* +import org.jetbrains.kotlin.psi.KtNamedFunction +import org.jetbrains.kotlin.resolve.BindingContext +import org.jetbrains.kotlin.types.KotlinType + +fun IrCall.getFqNamesOfTypeArguments(): List { + val result = ArrayList() + for (i in 0 until typeArgumentsCount) { + val type = getTypeArgument(i) + require(type is IrSimpleType) + result.add(type.classFqName.toString()) + } + return result +} + +fun IrCall.getFqNamesOfClassReferenceValueArguments(): List = + (getValueArgument(0) as? IrVararg)?.elements?.map { + (it as IrClassReference).classType.classFqName.toString() + } ?: emptyList() + + +@ObsoleteDescriptorBasedAPI +fun IrType.toParameterizedType(): KotlinType { + return toKotlinType() +} + +fun IrFunction.toParameterizedType(binding: BindingContext): KotlinType? { + return (psiElement as? KtNamedFunction)?.toParameterizedType(binding) +} diff --git a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/models/Common.kt b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/models/Common.kt index 283f3d00..f4ff1dd4 100644 --- a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/models/Common.kt +++ b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/models/Common.kt @@ -10,6 +10,7 @@ enum class ElementType(val value: String) { FunctionType("FUNCTION_TYPE"), LambdaArgument("LAMBDA_ARGUMENT"), LambdaExpression("LAMBDA_EXPRESSION"), + NullableType("NULLABLE_TYPE"), ReferenceExpression("REFERENCE_EXPRESSION"), TypeArgumentList("TYPE_ARGUMENT_LIST"), TypeProjection("TYPE_PROJECTION"), @@ -19,3 +20,8 @@ enum class ElementType(val value: String) { ValueParameter("VALUE_PARAMETER"), ValueParameterList("VALUE_PARAMETER_LIST"), } + +data class ReflektContext( + var uses: IrReflektUses? = null, + var instances: IrReflektInstances? = null +) diff --git a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/models/ReflektModels.kt b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/models/ReflektModels.kt index f815ab48..4a551a60 100644 --- a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/models/ReflektModels.kt +++ b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/models/ReflektModels.kt @@ -2,48 +2,27 @@ package io.reflekt.plugin.analysis.models import io.reflekt.plugin.analysis.processor.invokes.* import io.reflekt.plugin.analysis.processor.uses.* +import io.reflekt.plugin.analysis.psi.function.toFunctionInfo import org.jetbrains.kotlin.psi.KtClassOrObject import org.jetbrains.kotlin.psi.KtNamedFunction +import org.jetbrains.kotlin.resolve.BindingContext +import org.jetbrains.kotlin.types.KotlinType -/* - * If the function [withAnnotations] is called without subtypes then [subTypes] is [setOf(Any::class::qualifiedName)] - * If the function [withSubTypes] is called without annotations then [annotations] is empty +/** + * If the function [withAnnotations] is called without supertypes then [supertypes] is setOf(Any::class::qualifiedName) + * If the function [withSupertypes] is called without annotations then [annotations] is empty */ -data class SubTypesToAnnotations( - val subTypes: Set = emptySet(), +data class SupertypesToAnnotations( + val supertypes: Set = emptySet(), val annotations: Set = emptySet() ) -/* Recursive structure representing type that may have parameters. - * For example, Map, Int> is represented in the following way: - * ParameterizedType( - * "kotlin.collections.Map", - * listOf( - * ParameterizedType( - * "kotlin.Pair", - * listOf( - * ParameterizedType("kotlin.Int", emptyList()), - * ParameterizedType("kotlin.String", emptyList()) - * ) - * ), - * ParameterizedType("kotlin.Int", emptyList()) - * ) - * ) - */ -data class ParameterizedType( - val fqName: String, - val parameters: List = emptyList() -) { - fun render(): String = - "$fqName${if (parameters.isEmpty()) "" else parameters.joinToString(prefix = "<", postfix = ">") { it.render() }}" -} - data class SignatureToAnnotations( - val signature: ParameterizedType, // kotlin.FunctionN< ... > + val signature: KotlinType, // kotlin.FunctionN< ... > val annotations: Set = emptySet() ) -typealias ClassOrObjectInvokes = MutableSet +typealias ClassOrObjectInvokes = MutableSet typealias FunctionInvokes = MutableSet data class ReflektInvokes( @@ -61,14 +40,24 @@ data class ReflektInvokes( } typealias TypeUses = Map> -typealias ClassOrObjectUses = TypeUses +typealias ClassOrObjectUses = TypeUses typealias FunctionUses = TypeUses -fun ClassOrObjectUses.toSubTypesToFqNamesMap(): Map, MutableList> { - return this.map { it.key.subTypes to it.value }.toMap() +/* Stores enough information to generate function reference IR */ +data class IrFunctionInfo( + val fqName: String, + val receiverFqName: String?, + val isObjectReceiver: Boolean +) + +typealias IrClassOrObjectUses = TypeUses +typealias IrFunctionUses = TypeUses + +fun ClassOrObjectUses.toSupertypesToFqNamesMap(): Map, MutableList> { + return this.map { it.key.supertypes to it.value }.toMap() } -/* +/** * Store a set of qualified names that match the conditions for each item from [ReflektInvokes] */ data class ReflektUses( @@ -84,3 +73,17 @@ data class ReflektUses( ) } } + +data class IrReflektUses( + val objects: IrClassOrObjectUses = HashMap(), + val classes: IrClassOrObjectUses = HashMap(), + val functions: IrFunctionUses = HashMap() +) { + companion object { + fun fromReflektUses(uses: ReflektUses, binding: BindingContext) = IrReflektUses( + objects = uses.objects.mapValues { (_, v) -> v.map { it.fqName!!.toString() }.toMutableList() }, + classes = uses.classes.mapValues { (_, v) -> v.map { it.fqName!!.toString() }.toMutableList() }, + functions = uses.functions.mapValues { (_, v) -> v.map { it.toFunctionInfo(binding) }.toMutableList() } + ) + } +} diff --git a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/models/SmartReflektModels.kt b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/models/SmartReflektModels.kt index 2dc303fe..6deb811b 100644 --- a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/models/SmartReflektModels.kt +++ b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/models/SmartReflektModels.kt @@ -1,9 +1,10 @@ package io.reflekt.plugin.analysis.models import io.reflekt.plugin.analysis.processor.instances.* -import org.jetbrains.kotlin.psi.KtClass -import org.jetbrains.kotlin.psi.KtNamedFunction -import org.jetbrains.kotlin.psi.KtObjectDeclaration +import io.reflekt.plugin.analysis.psi.function.toFunctionInfo +import org.jetbrains.kotlin.psi.* +import org.jetbrains.kotlin.resolve.BindingContext +import org.jetbrains.kotlin.types.KotlinType /* * Store a set of qualified names that exist in the project and additional libraries @@ -22,8 +23,31 @@ data class ReflektInstances( } } -data class SubTypesToFilters( - val subType: ParameterizedType? = null, +data class IrTypeInstance( + val instance: T, + val info: I +) + +typealias IrObjectInstance = IrTypeInstance +typealias IrClassInstance = IrTypeInstance +typealias IrFunctionInstance = IrTypeInstance + +data class IrReflektInstances( + val objects: List = ArrayList(), + val classes: List = ArrayList(), + val functions: List = ArrayList() +) { + companion object { + fun fromReflektInstances(instances: ReflektInstances, binding: BindingContext) = IrReflektInstances( + objects = instances.objects.map { IrObjectInstance(it, it.fqName.toString()) }, + classes = instances.classes.map { IrClassInstance(it, it.fqName.toString()) }, + functions = instances.functions.map { IrFunctionInstance(it, it.toFunctionInfo(binding)) }, + ) + } +} + +data class SupertypesToFilters( + val supertype: KotlinType? = null, val filters: List = emptyList(), val imports: List = emptyList() ) @@ -37,3 +61,8 @@ data class Import( val fqName: String, val text: String ) + +data class SourceFile( + val imports: List, + val content: String +) diff --git a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/processor/Processor.kt b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/processor/Processor.kt index e353dc6a..dabd2e13 100644 --- a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/processor/Processor.kt +++ b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/processor/Processor.kt @@ -1,7 +1,6 @@ package io.reflekt.plugin.analysis.processor import org.jetbrains.kotlin.psi.KtElement -import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.resolve.BindingContext abstract class Processor(protected open val binding: BindingContext){ diff --git a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/processor/uses/BaseUsesProcessor.kt b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/processor/uses/BaseUsesProcessor.kt index bf94a380..14ea21f4 100644 --- a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/processor/uses/BaseUsesProcessor.kt +++ b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/processor/uses/BaseUsesProcessor.kt @@ -2,7 +2,7 @@ package io.reflekt.plugin.analysis.processor.uses import io.reflekt.plugin.analysis.models.ClassOrObjectInvokes import io.reflekt.plugin.analysis.models.ClassOrObjectUses -import io.reflekt.plugin.analysis.models.SubTypesToAnnotations +import io.reflekt.plugin.analysis.models.SupertypesToAnnotations import io.reflekt.plugin.analysis.processor.Processor import io.reflekt.plugin.analysis.psi.annotation.getAnnotations import io.reflekt.plugin.analysis.psi.isSubtypeOf @@ -25,7 +25,7 @@ abstract class BaseUsesProcessor(override val binding: BindingCont protected fun initClassOrObjectUses(invokes: ClassOrObjectInvokes): ClassOrObjectUses = invokes.map { it to ArrayList() }.toMap() - private fun SubTypesToAnnotations.covers(element: KtClassOrObject): Boolean = - // annotations set is empty when withSubTypes() method is called, so we don't need to check annotations in this case - (annotations.isEmpty() || element.getAnnotations(binding, annotations).isNotEmpty()) && element.isSubtypeOf(subTypes, binding) + private fun SupertypesToAnnotations.covers(element: KtClassOrObject): Boolean = + // annotations set is empty when withSupertypes() method is called, so we don't need to check annotations in this case + (annotations.isEmpty() || element.getAnnotations(binding, annotations).isNotEmpty()) && element.isSubtypeOf(supertypes, binding) } diff --git a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/processor/uses/FunctionUsesProcessor.kt b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/processor/uses/FunctionUsesProcessor.kt index ce79635c..3457b4b9 100644 --- a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/processor/uses/FunctionUsesProcessor.kt +++ b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/processor/uses/FunctionUsesProcessor.kt @@ -1,17 +1,17 @@ package io.reflekt.plugin.analysis.processor.uses -import io.reflekt.plugin.analysis.models.FunctionUses -import io.reflekt.plugin.analysis.models.ReflektInvokes -import io.reflekt.plugin.analysis.models.SignatureToAnnotations +import io.reflekt.plugin.analysis.models.* import io.reflekt.plugin.analysis.processor.isPublicFunction import io.reflekt.plugin.analysis.psi.annotation.getAnnotations -import io.reflekt.plugin.analysis.psi.function.checkSignature +import io.reflekt.plugin.analysis.psi.function.toParameterizedType import org.jetbrains.kotlin.psi.KtElement import org.jetbrains.kotlin.psi.KtNamedFunction import org.jetbrains.kotlin.resolve.BindingContext +import org.jetbrains.kotlin.types.typeUtil.isSubtypeOf + class FunctionUsesProcessor(override val binding: BindingContext, private val reflektInvokes: ReflektInvokes) : BaseUsesProcessor(binding) { - override val uses: FunctionUses = reflektInvokes.functions.map { it to ArrayList() }.toMap() + override val uses: FunctionUses = reflektInvokes.functions.associateWith { ArrayList() } override fun process(element: KtElement): FunctionUses { (element as? KtNamedFunction)?.let { @@ -26,6 +26,8 @@ class FunctionUsesProcessor(override val binding: BindingContext, private val re override fun shouldRunOn(element: KtElement) = element.isPublicFunction - private fun SignatureToAnnotations.covers(function: KtNamedFunction): Boolean = - (annotations.isEmpty() || function.getAnnotations(binding, annotations).isNotEmpty()) && function.checkSignature(signature, binding) + private fun SignatureToAnnotations.covers(function: KtNamedFunction): Boolean { + return (annotations.isEmpty() || function.getAnnotations(binding, annotations).isNotEmpty()) && + function.toParameterizedType(binding)?.isSubtypeOf(signature) ?: false + } } diff --git a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/psi/Util.kt b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/psi/Util.kt index 9ea0e8db..1659e3d4 100644 --- a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/psi/Util.kt +++ b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/psi/Util.kt @@ -1,17 +1,13 @@ package io.reflekt.plugin.analysis.psi -import io.reflekt.plugin.analysis.psi.annotation.getAnnotations -import io.reflekt.plugin.analysis.psi.annotation.getDescriptor -import io.reflekt.plugin.analysis.psi.annotation.qualifiedName +import io.reflekt.plugin.analysis.psi.annotation.* import org.jetbrains.kotlin.com.intellij.psi.PsiElement import org.jetbrains.kotlin.descriptors.ClassDescriptor import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.synthetics.findClassDescriptor import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.bindingContextUtil.getReferenceTargets -import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameOrNull -import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe -import org.jetbrains.kotlin.resolve.descriptorUtil.getAllSuperClassifiers +import org.jetbrains.kotlin.resolve.descriptorUtil.* fun PsiElement.getFqName(binding: BindingContext): String? { @@ -22,6 +18,9 @@ fun KtExpression.getFqName(binding: BindingContext): String? { return getReferenceTargets(binding).singleOrNull()?.fqNameSafe?.asString() } +/** + * Checks if a given class or object is subtype of any given [klasses], so its superclasses contain at least one of the [klasses]. + */ fun KtClassOrObject.isSubtypeOf(klasses: Set, context: BindingContext): Boolean { return findClassDescriptor(context).getAllSuperClassifiers().filter { it is ClassDescriptor }.any { it.fqNameOrNull()?.asString() in klasses diff --git a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/psi/function/Util.kt b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/psi/function/Util.kt index 1737c0a1..e01b7298 100644 --- a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/psi/function/Util.kt +++ b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/analysis/psi/function/Util.kt @@ -1,15 +1,16 @@ package io.reflekt.plugin.analysis.psi.function -import io.reflekt.plugin.analysis.models.ParameterizedType -import org.jetbrains.kotlin.descriptors.ClassDescriptor -import org.jetbrains.kotlin.descriptors.ClassKind -import org.jetbrains.kotlin.descriptors.FunctionDescriptor +import io.reflekt.plugin.analysis.models.IrFunctionInfo +import org.jetbrains.kotlin.builtins.* +import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.js.descriptorUtils.getJetTypeFqName import org.jetbrains.kotlin.psi.KtNamedFunction import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.descriptorUtil.isCompanionObject import org.jetbrains.kotlin.resolve.scopes.receivers.TransientReceiver import org.jetbrains.kotlin.types.KotlinType +import org.jetbrains.kotlin.types.TypeUtils.equalTypes +import org.jetbrains.kotlin.types.expressions.createFunctionType fun KtNamedFunction.getDescriptor(binding: BindingContext): FunctionDescriptor = binding.get(BindingContext.FUNCTION, this)!! @@ -37,25 +38,108 @@ fun KtNamedFunction.receiverType(binding: BindingContext): KotlinType? { } } -fun KtNamedFunction.checkSignature(signature: ParameterizedType, binding: BindingContext): Boolean { - val argumentTypes = argumentTypesWithReceiver(binding) - val returnType = returnType(binding) ?: return false - val functionNParameters = argumentTypes.plus(returnType) - if (functionNParameters.size != signature.parameters.size) { - return false - } - return (functionNParameters zip signature.parameters).all { (k, p) -> k.equalTo(p, binding) } +// Todo: do we actually need equal types or being subtype is enough? +fun KtNamedFunction.checkSignature(signature: KotlinType, binding: BindingContext): Boolean { + return this.toParameterizedType(binding)?.let { equalTypes(it, signature) } ?: false } -fun KotlinType.fqName() = getJetTypeFqName(false) +fun KtNamedFunction.toFunctionInfo(binding: BindingContext): IrFunctionInfo = + IrFunctionInfo( + fqName.toString(), + receiverFqName = receiverType(binding)?.fqName(), + isObjectReceiver = receiverType(binding)?.isObject() ?: false + ) + + +fun KtNamedFunction.toParameterizedType(binding: BindingContext): KotlinType? { + return (getDescriptor(binding) as? SimpleFunctionDescriptor)?.createFunctionTypeWithDispatchReceiver(DefaultBuiltIns.Instance) +} + +/** + * We need to create FunctionType from function descriptor, but unlike [SimpleFunctionDescriptor.createFunctionType] we want to take into account + * its dispatch receiver, since the existing implementation only cares about extension receiver. + * + * extension receiver + * v + * fun String.fooString() { ... } ---> Function1 + * + * + *** Note: the function above has the same KotlinType as the one below *** + * TODO: do we want to distinguish them? + * + * fun foo(s: String): Unit { ... } ---> Function1 + * + * + * dispatch receiver + * v + * class MyClass { + * fun fooClass() { ... } ---> Function1 + * + * fun String.fooStringClass() { ... } ---> Function2 + * ^ + * extension receiver + * } + * + * In case of having both dispatch and extension receiver, we give priority to the dispatch receiver, since such functions + * can only be called in the scope of dispatch receiver (i.e. inside MyClass or scope functions) + * + * However, if function's dispatch receiver is an object (or a companion object), we ignore it, + * since we can call the function without it: + * + * dispatch receiver (ignore) + * v + * object MyObject { + * fun fooObject() { ... } ---> Function0 + * + * + * fun String.fooStringObject() { ... } ---> Function1 + * ^ + * extension receiver + * + */ +fun SimpleFunctionDescriptor.createFunctionTypeWithDispatchReceiver( + builtIns: KotlinBuiltIns, + suspendFunction: Boolean = false, + shouldUseVarargType: Boolean = false +): KotlinType? { + + // If function is inside an object (or companion object), we dont't want to consider its dispatch receiver + val dispatchReceiver = if (this.dispatchReceiverParameter?.containingDeclaration.isObject()) { + null + } else { + this.dispatchReceiverParameter + } + + val extensionReceiver = this.extensionReceiverParameter -fun KotlinType.equalTo(parameterizedType: ParameterizedType, binding: BindingContext): Boolean { - if (fqName() != parameterizedType.fqName || arguments.size != parameterizedType.parameters.size) { - return false + // If dispatch receiver is null, we take extension receiver as receiver (it's okay if it's also null, createFunctionType takes care of it) + val receiver = dispatchReceiver ?: extensionReceiver + val parameters = if (shouldUseVarargType) { + valueParameters.map { it.varargElementType ?: it.type }.toMutableList() + } else { + valueParameters.map { it.type }.toMutableList() } - return (arguments.map { it.type } zip parameterizedType.parameters).all { (k, p) -> k.equalTo(p, binding) } + // If function has both receivers, we need to add its extension receiver to its parameters + if (dispatchReceiver != null && extensionReceiver != null) { + parameters.add(0, extensionReceiver.type) + } + + return createFunctionType( + builtIns, + annotations, + receiver?.type, + parameters, + null, + returnType ?: return null, + suspendFunction = suspendFunction + ) } -fun KotlinType.isObject() = (constructor.declarationDescriptor as? ClassDescriptor)?.kind == ClassKind.OBJECT +fun DeclarationDescriptor?.isObject() = (this as? ClassDescriptor)?.kind == ClassKind.OBJECT + +fun KotlinType.fqName() = getJetTypeFqName(false) + +fun KotlinType.isObject() = constructor.declarationDescriptor.isObject() fun KotlinType.isCompanionObject() = constructor.declarationDescriptor?.isCompanionObject() ?: false + diff --git a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/bytecode/BaseReflektGeneratorExtension.kt b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/bytecode/BaseReflektGeneratorExtension.kt index 75be07b8..ea656f63 100644 --- a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/bytecode/BaseReflektGeneratorExtension.kt +++ b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/bytecode/BaseReflektGeneratorExtension.kt @@ -1,10 +1,8 @@ package io.reflekt.plugin.generation.bytecode -import io.reflekt.plugin.analysis.common.ReflektEntity -import io.reflekt.plugin.generation.bytecode.util.pushArray -import io.reflekt.plugin.generation.bytecode.util.pushFunctionN -import io.reflekt.plugin.generation.bytecode.util.pushKClass -import io.reflekt.plugin.generation.bytecode.util.pushObject +import io.reflekt.plugin.analysis.common.* +import io.reflekt.plugin.generation.bytecode.util.* +import io.reflekt.plugin.generation.common.* import io.reflekt.plugin.utils.Util.log import org.jetbrains.kotlin.cli.common.messages.MessageCollector import org.jetbrains.kotlin.codegen.StackValue @@ -50,22 +48,22 @@ open class BaseReflektGeneratorExtension(private val messageCollector: MessageCo } } -/* - * Any Reflekt invoke as an expression looks like this: - * [1]...Reflekt.[2]|Classes/Objects/Functions|.[3]|nested function|.[4]|toList/toSet/etc| - * If it does not end with terminal function (like toList), we skip it. - */ -internal abstract class BaseReflektInvokeParts( - open val entityType: ReflektEntity -) { - // Push a value of specified type on stack depending on which kind it is. - val pushItemFunction: InstructionAdapter.(Type) -> Unit - get() = when (entityType) { - ReflektEntity.OBJECTS -> InstructionAdapter::pushObject - ReflektEntity.CLASSES -> InstructionAdapter::pushKClass - ReflektEntity.FUNCTIONS -> InstructionAdapter::pushFunctionN +// Push a value of specified type on stack depending on which kind it is. +private val BaseReflektInvokeParts.pushItemFunction: InstructionAdapter.(Type) -> Unit + get() = when (entityType) { + ReflektEntity.OBJECTS -> InstructionAdapter::pushObject + ReflektEntity.CLASSES -> InstructionAdapter::pushKClass + ReflektEntity.FUNCTIONS -> InstructionAdapter::pushFunctionN + } +// Invoke terminal function after preparing arguments. +private val BaseReflektInvokeParts.invokeTerminalFunction: InstructionAdapter.() -> Unit + get() = when (this) { + is ReflektInvokeParts -> when (terminalFunction) { + ReflektTerminalFunction.TO_LIST -> InstructionAdapter::invokeListOf + ReflektTerminalFunction.TO_SET -> InstructionAdapter::invokeSetOf } - // Invoke terminal function after preparing arguments. - abstract val invokeTerminalFunction: InstructionAdapter.() -> Unit -} + is SmartReflektInvokeParts -> when (terminalFunction) { + SmartReflektTerminalFunction.RESOLVE -> InstructionAdapter::invokeListOf + } + } diff --git a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/bytecode/FunctionInstanceGenerator.kt b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/bytecode/FunctionInstanceGenerator.kt index 2e2c248b..a8adb4d7 100644 --- a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/bytecode/FunctionInstanceGenerator.kt +++ b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/bytecode/FunctionInstanceGenerator.kt @@ -15,7 +15,7 @@ import org.jetbrains.kotlin.com.intellij.psi.PsiFile import org.jetbrains.kotlin.descriptors.ClassDescriptor import org.jetbrains.kotlin.descriptors.DeclarationDescriptor import org.jetbrains.kotlin.descriptors.FunctionDescriptor -import org.jetbrains.kotlin.load.kotlin.TypeMappingMode +import org.jetbrains.kotlin.load.kotlin.* import org.jetbrains.kotlin.psi.KtNamedFunction import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.jvm.diagnostics.JvmDeclarationOrigin diff --git a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/bytecode/ReflektGeneratorExtension.kt b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/bytecode/ReflektGeneratorExtension.kt index b0848095..0c251075 100644 --- a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/bytecode/ReflektGeneratorExtension.kt +++ b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/bytecode/ReflektGeneratorExtension.kt @@ -1,26 +1,19 @@ package io.reflekt.plugin.generation.bytecode -import io.reflekt.Reflekt import io.reflekt.plugin.analysis.common.* -import io.reflekt.plugin.analysis.models.ReflektUses -import io.reflekt.plugin.analysis.models.SignatureToAnnotations -import io.reflekt.plugin.analysis.models.SubTypesToAnnotations -import io.reflekt.plugin.analysis.models.TypeUses +import io.reflekt.plugin.analysis.models.* import io.reflekt.plugin.analysis.psi.getFqName import io.reflekt.plugin.generation.bytecode.util.genAsmType -import io.reflekt.plugin.generation.bytecode.util.invokeListOf -import io.reflekt.plugin.generation.bytecode.util.invokeSetOf +import io.reflekt.plugin.generation.common.ReflektGenerationException +import io.reflekt.plugin.generation.common.ReflektInvokeParts import io.reflekt.plugin.utils.Util.getUses import io.reflekt.plugin.utils.Util.log -import io.reflekt.plugin.utils.enumToRegexOptions -import io.reflekt.plugin.utils.toEnum import org.jetbrains.kotlin.cli.common.messages.MessageCollector import org.jetbrains.kotlin.codegen.StackValue import org.jetbrains.kotlin.codegen.extensions.ExpressionCodegenExtension import org.jetbrains.kotlin.psi.KtNamedFunction import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall import org.jetbrains.org.objectweb.asm.Type -import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter class ReflektGeneratorExtension(private val messageCollector: MessageCollector? = null) : BaseReflektGeneratorExtension() { @@ -31,7 +24,7 @@ class ReflektGeneratorExtension(private val messageCollector: MessageCollector? val expressionFqName = expression.getFqName(c.codegen.bindingContext) ?: return null // Split expression into known parts of Reflekt invoke - val invokeParts = parseReflektInvoke(expressionFqName) ?: return null + val invokeParts = ReflektInvokeParts.parse(expressionFqName) ?: return null messageCollector?.log("REFLEKT CALL: $expressionFqName;") // Get ReflektUses stored in binding context after analysis part @@ -53,55 +46,20 @@ class ReflektGeneratorExtension(private val messageCollector: MessageCollector? } } -private fun getReflektFullNameRegex(): Regex { - val reflektFqName = Reflekt::class.qualifiedName!! - val entityTypes = enumToRegexOptions(ReflektEntity.values(), ReflektEntity::className) - val nestedClasses = enumToRegexOptions(ReflektNestedClass.values(), ReflektNestedClass::className) - val terminalFunctions = enumToRegexOptions(ReflektTerminalFunction.values(), ReflektTerminalFunction::functionName) - return Regex("$reflektFqName\\.$entityTypes\\.$nestedClasses\\.$terminalFunctions") -} - -private fun parseReflektInvoke(fqName: String): ReflektInvokeParts? { - val matchResult = getReflektFullNameRegex().matchEntire(fqName) ?: return null - val (_, klass, nestedClass, terminalFunction) = matchResult.groupValues - return ReflektInvokeParts( - klass.toEnum(ReflektEntity.values(), ReflektEntity::className), - nestedClass.toEnum(ReflektNestedClass.values(), ReflektNestedClass::className), - terminalFunction.toEnum(ReflektTerminalFunction.values(), ReflektTerminalFunction::functionName) - ) -} +private fun ReflektInvokeParts.getUses(items: TypeUses, transform: (V) -> Type, invokeArguments: K): List = + items[invokeArguments]?.map { transform(it) } ?: throw ReflektGenerationException("No data for call [$this]") -/* - * Any Reflekt invoke as an expression looks like this: - * [1]...Reflekt.[2]|Classes/Objects/Functions|.[3]|WithSubtypes/WithAnnotations|.[4]|toList/toSet/etc| - * If it does not end with terminal function (like toList), we skip it. - */ -internal data class ReflektInvokeParts( - override val entityType: ReflektEntity, - val nestedClass: ReflektNestedClass, - val terminalFunction: ReflektTerminalFunction -) : BaseReflektInvokeParts(entityType) { - override val invokeTerminalFunction: InstructionAdapter.() -> Unit - get() = when (terminalFunction) { - ReflektTerminalFunction.TO_LIST -> InstructionAdapter::invokeListOf - ReflektTerminalFunction.TO_SET -> InstructionAdapter::invokeSetOf - } +private fun ReflektInvokeParts.getClassOrObjectUses( + uses: ReflektUses, + invokeArguments: SupertypesToAnnotations, + context: ExpressionCodegenExtension.Context +): List = + getUses(if (entityType == ReflektEntity.OBJECTS) uses.objects else uses.classes, { it.genAsmType(context) }, invokeArguments) - fun getUses(items: TypeUses, transform: (V) -> Type, invokeArguments: K): List = - items[invokeArguments]?.map { transform(it) } ?: throw ReflektGenerationException("No data for call [$this]") - - fun getClassOrObjectUses( - uses: ReflektUses, - invokeArguments: SubTypesToAnnotations, - context: ExpressionCodegenExtension.Context - ): List = - getUses(if (entityType == ReflektEntity.OBJECTS) uses.objects else uses.classes, { it.genAsmType(context) }, invokeArguments) - - fun getFunctionUses( - uses: ReflektUses, - invokeArguments: SignatureToAnnotations, - context: ExpressionCodegenExtension.Context, - functionInstanceGenerator: FunctionInstanceGenerator - ): List = - getUses(uses.functions, { item: KtNamedFunction -> item.genAsmType(context, functionInstanceGenerator) }, invokeArguments) -} +private fun ReflektInvokeParts.getFunctionUses( + uses: ReflektUses, + invokeArguments: SignatureToAnnotations, + context: ExpressionCodegenExtension.Context, + functionInstanceGenerator: FunctionInstanceGenerator +): List = + getUses(uses.functions, { item: KtNamedFunction -> item.genAsmType(context, functionInstanceGenerator) }, invokeArguments) diff --git a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/bytecode/SmartReflektGeneratorExtension.kt b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/bytecode/SmartReflektGeneratorExtension.kt index 639766af..7416b4fc 100644 --- a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/bytecode/SmartReflektGeneratorExtension.kt +++ b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/bytecode/SmartReflektGeneratorExtension.kt @@ -1,28 +1,25 @@ package io.reflekt.plugin.generation.bytecode -import io.reflekt.SmartReflekt import io.reflekt.plugin.analysis.common.ReflektEntity -import io.reflekt.plugin.analysis.common.SmartReflektTerminalFunction import io.reflekt.plugin.analysis.common.findSmartReflektInvokeArgumentsByExpressionPart -import io.reflekt.plugin.analysis.models.SubTypesToFilters +import io.reflekt.plugin.analysis.models.SupertypesToFilters import io.reflekt.plugin.analysis.psi.function.checkSignature +import io.reflekt.plugin.analysis.psi.function.fqName import io.reflekt.plugin.analysis.psi.getFqName import io.reflekt.plugin.analysis.psi.isSubtypeOf import io.reflekt.plugin.generation.bytecode.util.genAsmType -import io.reflekt.plugin.generation.bytecode.util.invokeListOf +import io.reflekt.plugin.generation.common.ReflektGenerationException +import io.reflekt.plugin.generation.common.SmartReflektInvokeParts import io.reflekt.plugin.scripting.ImportChecker import io.reflekt.plugin.scripting.KotlinScript import io.reflekt.plugin.utils.Util.getInstances import io.reflekt.plugin.utils.Util.log -import io.reflekt.plugin.utils.enumToRegexOptions -import io.reflekt.plugin.utils.toEnum import org.jetbrains.kotlin.backend.common.push import org.jetbrains.kotlin.cli.common.messages.MessageCollector import org.jetbrains.kotlin.codegen.StackValue import org.jetbrains.kotlin.codegen.extensions.ExpressionCodegenExtension import org.jetbrains.kotlin.psi.KtClassOrObject import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall -import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter import java.io.File class SmartReflektGeneratorExtension( @@ -39,7 +36,7 @@ class SmartReflektGeneratorExtension( val expressionFqName = expression.getFqName(c.codegen.bindingContext) ?: return null // Split expression into known parts of SmartReflekt invoke - val invokeParts = parseSmartReflektInvoke(expressionFqName) ?: return null + val invokeParts = SmartReflektInvokeParts.parse(expressionFqName) ?: return null messageCollector?.log("SMART REFLEKT CALL: $expressionFqName;") // Parse SmartReflekt call to find arguments again @@ -59,7 +56,7 @@ class SmartReflektGeneratorExtension( } ReflektEntity.FUNCTIONS -> { val functionInstances = instances.functions - filterInstances(functionInstances.filter { it.checkSignature(invokeArguments.subType!!, binding) }, invokeArguments) + filterInstances(functionInstances.filter { it.checkSignature(invokeArguments.supertype!!, binding) }, invokeArguments) .map { it.genAsmType(c, functionInstanceGenerator) } } } @@ -69,7 +66,7 @@ class SmartReflektGeneratorExtension( // Filters list of instances (KtObjectDeclaration/KtClass/KtNamedFunction) so that its type matches specified type // and each of predicates returns true. - private inline fun filterInstances(instances: List, invokeArguments: SubTypesToFilters): List { + private inline fun filterInstances(instances: List, invokeArguments: SupertypesToFilters): List { val imports = importChecker.filterImports(invokeArguments.imports) val resultInstances = ArrayList() @@ -97,38 +94,7 @@ class SmartReflektGeneratorExtension( } private inline fun filterClassOrObjectInstances( - instances: List, invokeArguments: SubTypesToFilters, c: ExpressionCodegenExtension.Context + instances: List, invokeArguments: SupertypesToFilters, c: ExpressionCodegenExtension.Context ): List = - filterInstances(instances.filter { it.isSubtypeOf(setOfNotNull(invokeArguments.subType?.fqName), c.codegen.bindingContext) }, invokeArguments) -} - -private fun getSmartReflektFullNameRegex(): Regex { - val smartReflektFqName = SmartReflekt::class.qualifiedName!! - val entityClasses = enumToRegexOptions(ReflektEntity.values(), ReflektEntity::smartClassName) - val terminalFunctions = enumToRegexOptions(SmartReflektTerminalFunction.values(), SmartReflektTerminalFunction::functionName) - return Regex("$smartReflektFqName\\.$entityClasses\\.$terminalFunctions") -} - -private fun parseSmartReflektInvoke(fqName: String): SmartReflektInvokeParts? { - val matchResult = getSmartReflektFullNameRegex().matchEntire(fqName) ?: return null - val (_, entityClass, terminalFunction) = matchResult.groupValues - return SmartReflektInvokeParts( - entityClass.toEnum(ReflektEntity.values(), ReflektEntity::smartClassName), - terminalFunction.toEnum(SmartReflektTerminalFunction.values(), SmartReflektTerminalFunction::functionName) - ) -} - -/* - * Any SmartReflekt invoke as an expression looks like this: - * [1]...Reflekt.[2]|ClassCompileTimeExpression/ObjectCompileTimeExpression/FunctionCompileTimeExpression|.[3]|filter|.[4]|resolve| - * If it does not end with terminal function (like resolve), we skip it. - */ -internal data class SmartReflektInvokeParts( - override val entityType: ReflektEntity, - val terminalFunction: SmartReflektTerminalFunction -) : BaseReflektInvokeParts(entityType) { - override val invokeTerminalFunction: InstructionAdapter.() -> Unit - get() = when (terminalFunction) { - SmartReflektTerminalFunction.RESOLVE -> InstructionAdapter::invokeListOf - } + filterInstances(instances.filter { it.isSubtypeOf(setOfNotNull(invokeArguments.supertype?.fqName()), c.codegen.bindingContext) }, invokeArguments) } diff --git a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/bytecode/util/TypeUtil.kt b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/bytecode/util/TypeUtil.kt index e2a2c461..7461972f 100644 --- a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/bytecode/util/TypeUtil.kt +++ b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/bytecode/util/TypeUtil.kt @@ -1,7 +1,7 @@ package io.reflekt.plugin.generation.bytecode.util import io.reflekt.plugin.generation.bytecode.FunctionInstanceGenerator -import io.reflekt.plugin.generation.bytecode.ReflektGenerationException +import io.reflekt.plugin.generation.common.ReflektGenerationException import org.jetbrains.kotlin.codegen.binding.CodegenBinding.ASM_TYPE import org.jetbrains.kotlin.codegen.extensions.ExpressionCodegenExtension import org.jetbrains.kotlin.psi.KtClassOrObject diff --git a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/code/generator/models/ClassesOrObjectsGenerator.kt b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/code/generator/models/ClassesOrObjectsGenerator.kt index e509ceec..413ee2aa 100644 --- a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/code/generator/models/ClassesOrObjectsGenerator.kt +++ b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/code/generator/models/ClassesOrObjectsGenerator.kt @@ -5,21 +5,21 @@ import com.squareup.kotlinpoet.ParameterizedTypeName.Companion.parameterizedBy import com.squareup.kotlinpoet.TypeVariableName import com.squareup.kotlinpoet.asClassName import io.reflekt.plugin.analysis.models.ClassOrObjectUses -import io.reflekt.plugin.analysis.models.toSubTypesToFqNamesMap +import io.reflekt.plugin.analysis.models.toSupertypesToFqNamesMap import io.reflekt.plugin.generation.code.generator.emptyListCode import kotlin.reflect.KClass abstract class ClassesOrObjectsGenerator(protected val uses: ClassOrObjectUses) : HelperClassGenerator() { override fun generateImpl() { - generateWithSubTypesFunction() + generateWithSupertypesFunction() generateWithAnnotationsFunction() - addNestedTypes(object : WithSubTypesGenerator() { + addNestedTypes(object : WithSupertypesGenerator() { override val toListFunctionBody = run { // Get item without annotations - val subTypesToFqNames = uses.filter { it.key.annotations.isEmpty() }.toSubTypesToFqNamesMap() - if (subTypesToFqNames.isNotEmpty()) { - generateWhenBody(subTypesToFqNames, FQ_NAMES) + val supertypesToFqNames = uses.filter { it.key.annotations.isEmpty() }.toSupertypesToFqNamesMap() + if (supertypesToFqNames.isNotEmpty()) { + generateWhenBody(supertypesToFqNames, FQ_NAMES) } else { emptyListCode() } @@ -29,7 +29,7 @@ abstract class ClassesOrObjectsGenerator(protected val uses: ClassOrObjectUses) addNestedTypes(object : WithAnnotationsGenerator() { override val toListFunctionBody = run { // Delete items which don't have annotations - generateNestedWhenBody(uses.filter { it.key.annotations.isNotEmpty() }, ANNOTATION_FQ_NAMES, SUBTYPE_FQ_NAMES) + generateNestedWhenBody(uses.filter { it.key.annotations.isNotEmpty() }, ANNOTATION_FQ_NAMES, SUPERTYPE_FQ_NAMES) } }.generate()) } diff --git a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/code/generator/models/HelperClassGenerator.kt b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/code/generator/models/HelperClassGenerator.kt index 49ee8d03..2f15aad3 100644 --- a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/code/generator/models/HelperClassGenerator.kt +++ b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/code/generator/models/HelperClassGenerator.kt @@ -3,7 +3,7 @@ package io.reflekt.plugin.generation.code.generator.models import com.squareup.kotlinpoet.* import com.squareup.kotlinpoet.ParameterizedTypeName.Companion.parameterizedBy import io.reflekt.plugin.analysis.models.ClassOrObjectUses -import io.reflekt.plugin.analysis.models.SubTypesToAnnotations +import io.reflekt.plugin.analysis.models.SupertypesToAnnotations import io.reflekt.plugin.generation.code.generator.* import org.jetbrains.kotlin.psi.KtClassOrObject @@ -12,10 +12,10 @@ abstract class HelperClassGenerator : ClassGenerator() { abstract val returnParameter: TypeName protected open val typeSuffix: String = "" - open val withSubTypesFunctionBody: CodeBlock + open val withSupertypesFunctionBody: CodeBlock get() = statement( "return %T(%N)", - typeName.nestedClass(WITH_SUBTYPES_CLASS_NAME).parameterizedBy(typeVariable), + typeName.nestedClass(WITH_SUPERTYPES_CLASS_NAME).parameterizedBy(typeVariable), FQ_NAMES ) @@ -24,24 +24,24 @@ abstract class HelperClassGenerator : ClassGenerator() { "return %T(%N, %N)", typeName.nestedClass(WITH_ANNOTATIONS_CLASS_NAME).parameterizedBy(typeVariable), ANNOTATION_FQ_NAMES, - SUBTYPE_FQ_NAMES + SUPERTYPE_FQ_NAMES ) - open val withSubTypesParameters = mapOf( + open val withSupertypesParameters = mapOf( FQ_NAMES to SET_OF_STRINGS ).toParameterSpecs() open val withAnnotationsParameters = mapOf( ANNOTATION_FQ_NAMES to SET_OF_STRINGS, - SUBTYPE_FQ_NAMES to SET_OF_STRINGS + SUPERTYPE_FQ_NAMES to SET_OF_STRINGS ).toParameterSpecs() - fun generateWithSubTypesFunction() { + fun generateWithSupertypesFunction() { builder.addFunction(generateFunction( - name = WITH_SUBTYPES_FUNCTION_NAME, - body = withSubTypesFunctionBody, + name = WITH_SUPERTYPES_FUNCTION_NAME, + body = withSupertypesFunctionBody, typeVariables = listOf(typeVariable), - arguments = withSubTypesParameters + arguments = withSupertypesParameters )) } @@ -61,10 +61,10 @@ abstract class HelperClassGenerator : ClassGenerator() { override val returnParameter: TypeName ) : SelectorClassGenerator() - protected abstract inner class WithSubTypesGenerator : SelectorClassGeneratorWrapper( - typeName = this.typeName.nestedClass(WITH_SUBTYPES_CLASS_NAME), + protected abstract inner class WithSupertypesGenerator : SelectorClassGeneratorWrapper( + typeName = this.typeName.nestedClass(WITH_SUPERTYPES_CLASS_NAME), typeVariable = this.typeVariable, - parameters = this.withSubTypesParameters, + parameters = this.withSupertypesParameters, returnParameter = this.returnParameter ) @@ -109,23 +109,23 @@ abstract class HelperClassGenerator : ClassGenerator() { return generateWhenBody(uses.asIterable(), conditionVariable, generateBranchForWhenOption, toAddReturn) } - protected fun generateNestedWhenBody(uses: ClassOrObjectUses, annotationFqNames: String, subtypeFqNames: String): CodeBlock { - val mainFunction = { o: Map.Entry> -> - getWhenOption(o.key.annotations, wrappedCode(generateWhenBody(mapOf(o.key.subTypes to o.value), subtypeFqNames, toAddReturn = false))) + protected fun generateNestedWhenBody(uses: ClassOrObjectUses, annotationFqNames: String, supertypeFqNames: String): CodeBlock { + val mainFunction = { o: Map.Entry> -> + getWhenOption(o.key.annotations, wrappedCode(generateWhenBody(mapOf(o.key.supertypes to o.value), supertypeFqNames, toAddReturn = false))) } return generateWhenBody(uses.toMap().asIterable(), annotationFqNames, mainFunction) } protected companion object { - const val WITH_SUBTYPES_FUNCTION_NAME = "withSubTypes" - val WITH_SUBTYPES_CLASS_NAME = WITH_SUBTYPES_FUNCTION_NAME.capitalize() + const val WITH_SUPERTYPES_FUNCTION_NAME = "withSupertypes" + val WITH_SUPERTYPES_CLASS_NAME = WITH_SUPERTYPES_FUNCTION_NAME.capitalize() const val WITH_ANNOTATIONS_FUNCTION_NAME = "withAnnotations" val WITH_ANNOTATIONS_CLASS_NAME = WITH_ANNOTATIONS_FUNCTION_NAME.capitalize() const val FQ_NAMES = "fqNames" const val ANNOTATION_FQ_NAMES = "annotationFqNames" - const val SUBTYPE_FQ_NAMES = "subtypeFqNames" + const val SUPERTYPE_FQ_NAMES = "supertypeFqNames" const val UNKNOWN_FQ_NAME = "Unknown fully qualified names set" diff --git a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/bytecode/ReflektGenerationException.kt b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/common/ReflektGenerationException.kt similarity index 76% rename from reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/bytecode/ReflektGenerationException.kt rename to reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/common/ReflektGenerationException.kt index c68702c4..b25c0b0b 100644 --- a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/bytecode/ReflektGenerationException.kt +++ b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/common/ReflektGenerationException.kt @@ -1,4 +1,4 @@ -package io.reflekt.plugin.generation.bytecode +package io.reflekt.plugin.generation.common class ReflektGenerationException( override val message: String? = null, diff --git a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/common/ReflektInvokeParts.kt b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/common/ReflektInvokeParts.kt new file mode 100644 index 00000000..2039f847 --- /dev/null +++ b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/common/ReflektInvokeParts.kt @@ -0,0 +1,70 @@ +package io.reflekt.plugin.generation.common + +import io.reflekt.Reflekt +import io.reflekt.SmartReflekt +import io.reflekt.plugin.analysis.common.* +import io.reflekt.plugin.utils.enumToRegexOptions +import io.reflekt.plugin.utils.toEnum + +sealed class BaseReflektInvokeParts( + open val entityType: ReflektEntity +) + +/** + * Reflekt invoke expression has the following structure: + * [1]Reflekt.[2]Classes/Objects/Functions.[3]WithSupertypes/WithAnnotations.[4]toList/toSet/etc + * [entityType] stores part [2], [nestedClass] - part [3], [terminalFunction] - part [4] + */ +data class ReflektInvokeParts( + override val entityType: ReflektEntity, + val nestedClass: ReflektNestedClass, + val terminalFunction: ReflektTerminalFunction +) : BaseReflektInvokeParts(entityType) { + companion object { + private fun getReflektFullNameRegex(): Regex { + val reflektFqName = Reflekt::class.qualifiedName!! + val entityTypes = enumToRegexOptions(ReflektEntity.values(), ReflektEntity::className) + val nestedClasses = enumToRegexOptions(ReflektNestedClass.values(), ReflektNestedClass::className) + val terminalFunctions = enumToRegexOptions(ReflektTerminalFunction.values(), ReflektTerminalFunction::functionName) + return Regex("$reflektFqName\\.$entityTypes\\.$nestedClasses\\.$terminalFunctions") + } + + fun parse(fqName: String): ReflektInvokeParts? { + val matchResult = getReflektFullNameRegex().matchEntire(fqName) ?: return null + val (_, klass, nestedClass, terminalFunction) = matchResult.groupValues + return ReflektInvokeParts( + klass.toEnum(ReflektEntity.values(), ReflektEntity::className), + nestedClass.toEnum(ReflektNestedClass.values(), ReflektNestedClass::className), + terminalFunction.toEnum(ReflektTerminalFunction.values(), ReflektTerminalFunction::functionName) + ) + } + } +} + +/** + * SmartReflekt invoke expression has the following structure: + * [1]SmartReflekt.[2]ClassCompileTimeExpression/ObjectCompileTimeExpression/FunctionCompileTimeExpression.[3]toList/toSet/etc + * [entityType] stores part [2], [terminalFunction] - part [3] + */ +data class SmartReflektInvokeParts( + override val entityType: ReflektEntity, + val terminalFunction: SmartReflektTerminalFunction +) : BaseReflektInvokeParts(entityType) { + companion object { + private fun getSmartReflektFullNameRegex(): Regex { + val smartReflektFqName = SmartReflekt::class.qualifiedName!! + val entityClasses = enumToRegexOptions(ReflektEntity.values(), ReflektEntity::smartClassName) + val terminalFunctions = enumToRegexOptions(SmartReflektTerminalFunction.values(), SmartReflektTerminalFunction::functionName) + return Regex("$smartReflektFqName\\.$entityClasses\\.$terminalFunctions") + } + + fun parse(fqName: String): SmartReflektInvokeParts? { + val matchResult = getSmartReflektFullNameRegex().matchEntire(fqName) ?: return null + val (_, entityClass, terminalFunction) = matchResult.groupValues + return SmartReflektInvokeParts( + entityClass.toEnum(ReflektEntity.values(), ReflektEntity::smartClassName), + terminalFunction.toEnum(SmartReflektTerminalFunction.values(), SmartReflektTerminalFunction::functionName) + ) + } + } +} diff --git a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/ir/BaseReflektIrTransformer.kt b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/ir/BaseReflektIrTransformer.kt new file mode 100644 index 00000000..096f8d52 --- /dev/null +++ b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/ir/BaseReflektIrTransformer.kt @@ -0,0 +1,103 @@ +package io.reflekt.plugin.generation.ir + +import io.reflekt.plugin.analysis.common.* +import io.reflekt.plugin.analysis.ir.* +import io.reflekt.plugin.analysis.models.IrFunctionInfo +import io.reflekt.plugin.generation.common.* +import io.reflekt.plugin.generation.ir.util.* +import io.reflekt.plugin.utils.Util.log +import org.jetbrains.kotlin.backend.common.IrElementTransformerVoidWithContext +import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext +import org.jetbrains.kotlin.cli.common.messages.MessageCollector +import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI +import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET +import org.jetbrains.kotlin.ir.builders.* +import org.jetbrains.kotlin.ir.expressions.IrExpression +import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol +import org.jetbrains.kotlin.ir.types.* +import org.jetbrains.kotlin.name.FqName +import org.jetbrains.kotlin.types.typeUtil.isSubtypeOf + +/* Base class for Reflekt IR transformers */ +open class BaseReflektIrTransformer(private val messageCollector: MessageCollector?) : IrElementTransformerVoidWithContext() { + /** + * Constructs replacement for result of Reflekt terminal function (toList/toSet/etc) for classes or objects + * @param invokeParts info about invoke call to retrieve entity type (objects/classes) and terminal function (toList/toSet/etc) + * @param resultValues list of qualified names of objects or classes to return + */ + protected fun IrBuilderWithScope.resultIrCall( + invokeParts: BaseReflektInvokeParts, + resultValues: List, + resultType: IrType, + context: IrPluginContext + ): IrExpression { + require(resultType is IrSimpleType) + + val itemType = resultType.arguments[0].typeOrNull + ?: throw ReflektGenerationException("Return type must have at one type argument (e. g. List, Set)") + + val items = resultValues.map { + context.referenceClass(FqName(it)) ?: throw ReflektGenerationException("Failed to find class $it") + }.map { + when (invokeParts.entityType) { + ReflektEntity.OBJECTS -> irGetObject(it) + ReflektEntity.CLASSES -> irTypeCast(itemType, irKClass(it)) + ReflektEntity.FUNCTIONS -> error("Use functionResultIrCall") + } + } + return irCall(invokeParts.irTerminalFunction(context), type = resultType).also { call -> + call.putTypeArgument(0, itemType) + call.putValueArgument(0, irVarargOut(itemType, items)) + } + } + + /** + * Constructs replacement for result of Reflekt terminal function (toList/toSet/etc) for functions + * @param invokeParts info about invoke call terminal function (toList/toSet/etc) + * @param resultValues list of function qualified names with additional info to generate the right call + */ + @ObsoleteDescriptorBasedAPI + protected fun IrBuilderWithScope.functionResultIrCall( + invokeParts: BaseReflektInvokeParts, + resultValues: List, + resultType: IrType, + context: IrPluginContext + ): IrExpression { + require(resultType is IrSimpleType) + val itemType = resultType.arguments[0].typeOrNull + ?: throw ReflektGenerationException("Return type must have at one type argument (e. g. List, Set)") + require(itemType is IrSimpleType) + + messageCollector?.log("RES ARGS: ${itemType.arguments.map { (it as IrSimpleType).classFqName }}") + val items = resultValues.map { + val functionSymbol = context.referenceFunctions(FqName(it.fqName)).firstOrNull { symbol -> + symbol.owner.toParameterizedType(context.bindingContext)?.isSubtypeOf(itemType.toParameterizedType()) ?: false + } ?: throw ReflektGenerationException("Failed to find function ${it.fqName} with signature ${itemType.toParameterizedType()}") + irKFunction(itemType, functionSymbol).also { call -> + if (it.receiverFqName != null && it.isObjectReceiver) { + val dispatchSymbol = context.referenceClass(FqName(it.receiverFqName)) + ?: throw ReflektGenerationException("Failed to find receiver class ${it.receiverFqName}") + call.dispatchReceiver = irGetObject(dispatchSymbol) + } + } + } + return irCall(invokeParts.irTerminalFunction(context), type = resultType).also { call -> + call.putTypeArgument(0, itemType) + call.putValueArgument(0, irVarargOut(itemType, items)) + } + } + + protected fun newIrBuilder(pluginContext: IrPluginContext) = + object : IrBuilderWithScope(pluginContext, currentScope!!.scope, UNDEFINED_OFFSET, UNDEFINED_OFFSET) {} +} + +private val BaseReflektInvokeParts.irTerminalFunction: (IrPluginContext) -> IrFunctionSymbol + get() = when (this) { + is ReflektInvokeParts -> when (terminalFunction) { + ReflektTerminalFunction.TO_LIST -> ::funListOf + ReflektTerminalFunction.TO_SET -> ::funSetOf + } + is SmartReflektInvokeParts -> when (terminalFunction) { + SmartReflektTerminalFunction.RESOLVE -> ::funListOf + } + } diff --git a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/ir/ReflektIrGenerationExtension.kt b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/ir/ReflektIrGenerationExtension.kt new file mode 100644 index 00000000..9f79849b --- /dev/null +++ b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/ir/ReflektIrGenerationExtension.kt @@ -0,0 +1,17 @@ +package io.reflekt.plugin.generation.ir + +import io.reflekt.plugin.analysis.models.ReflektContext +import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension +import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext +import org.jetbrains.kotlin.cli.common.messages.MessageCollector +import org.jetbrains.kotlin.ir.declarations.IrModuleFragment + +class ReflektIrGenerationExtension( + private val reflektContext: ReflektContext, + private val messageCollector: MessageCollector? = null +) : IrGenerationExtension { + override fun generate(moduleFragment: IrModuleFragment, pluginContext: IrPluginContext) { + val uses = reflektContext.uses ?: error("Uses must be saved to reflektContext before running ReflektIrGenerationExtension") + moduleFragment.transform(ReflektIrTransformer(pluginContext, uses, messageCollector), null) + } +} diff --git a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/ir/ReflektIrTransformer.kt b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/ir/ReflektIrTransformer.kt new file mode 100644 index 00000000..ef0e8031 --- /dev/null +++ b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/ir/ReflektIrTransformer.kt @@ -0,0 +1,60 @@ +package io.reflekt.plugin.generation.ir + +import io.reflekt.plugin.analysis.common.ReflektEntity +import io.reflekt.plugin.analysis.ir.ReflektFunctionInvokeArgumentsCollector +import io.reflekt.plugin.analysis.ir.ReflektInvokeArgumentsCollector +import io.reflekt.plugin.analysis.models.IrReflektUses +import io.reflekt.plugin.generation.common.ReflektGenerationException +import io.reflekt.plugin.generation.common.ReflektInvokeParts +import io.reflekt.plugin.utils.Util.log +import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext +import org.jetbrains.kotlin.cli.common.messages.MessageCollector +import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI +import org.jetbrains.kotlin.ir.expressions.IrCall +import org.jetbrains.kotlin.ir.expressions.IrExpression +import org.jetbrains.kotlin.ir.util.dump +import org.jetbrains.kotlin.ir.util.fqNameForIrSerialization + +/* Replaces Reflekt invoke calls with their results */ +class ReflektIrTransformer( + private val pluginContext: IrPluginContext, + private val uses: IrReflektUses, + private val messageCollector: MessageCollector? = null +) : BaseReflektIrTransformer(messageCollector) { + + @ObsoleteDescriptorBasedAPI + override fun visitCall(expression: IrCall): IrExpression { + val function = expression.symbol.owner + val expressionFqName = function.fqNameForIrSerialization.toString() + val invokeParts = ReflektInvokeParts.parse(expressionFqName) ?: return super.visitCall(expression) + messageCollector?.log("[IR] REFLEKT CALL: $expressionFqName;") + + val call = when (invokeParts.entityType) { + ReflektEntity.OBJECTS, ReflektEntity.CLASSES -> { + val invokeArguments = ReflektInvokeArgumentsCollector.collectInvokeArguments(expression) + val usesType = if (invokeParts.entityType == ReflektEntity.OBJECTS) uses.objects else uses.classes + messageCollector?.log("[IR] INVOKE ARGUMENTS: $invokeArguments") + newIrBuilder(pluginContext).resultIrCall( + invokeParts, + usesType[invokeArguments] ?: throw ReflektGenerationException("No uses stored for $invokeArguments"), + expression.type, + pluginContext + ) + } + ReflektEntity.FUNCTIONS -> { + val invokeArguments = ReflektFunctionInvokeArgumentsCollector.collectInvokeArguments(expression) + val usesType = uses.functions + messageCollector?.log("[IR] INVOKE ARGUMENTS: $invokeArguments") + newIrBuilder(pluginContext).functionResultIrCall( + invokeParts, + usesType[invokeArguments] ?: throw ReflektGenerationException("No uses stored for $invokeArguments"), + expression.type, + pluginContext + ) + } + } + messageCollector?.log("[IR] FOUND CALL (${invokeParts.entityType}):\n${expression.dump()}") + messageCollector?.log("[IR] GENERATE CALL:\n${call.dump()}") + return call + } +} diff --git a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/ir/SmartReflektIrGenerationExtension.kt b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/ir/SmartReflektIrGenerationExtension.kt new file mode 100644 index 00000000..6e724c82 --- /dev/null +++ b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/ir/SmartReflektIrGenerationExtension.kt @@ -0,0 +1,19 @@ +package io.reflekt.plugin.generation.ir + +import io.reflekt.plugin.analysis.models.ReflektContext +import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension +import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext +import org.jetbrains.kotlin.cli.common.messages.MessageCollector +import org.jetbrains.kotlin.ir.declarations.IrModuleFragment +import java.io.File + +class SmartReflektIrGenerationExtension( + private val classpath: List, + private val reflektContext: ReflektContext, + private val messageCollector: MessageCollector? = null +) : IrGenerationExtension { + override fun generate(moduleFragment: IrModuleFragment, pluginContext: IrPluginContext) { + val instances = reflektContext.instances ?: error("Instances must be saved to reflektContext before running SmartReflektIrGenerationExtension") + moduleFragment.transform(SmartReflektIrTransformer(pluginContext, instances, classpath, messageCollector), null) + } +} diff --git a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/ir/SmartReflektIrTransformer.kt b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/ir/SmartReflektIrTransformer.kt new file mode 100644 index 00000000..5476f9c7 --- /dev/null +++ b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/ir/SmartReflektIrTransformer.kt @@ -0,0 +1,100 @@ +package io.reflekt.plugin.generation.ir + +import io.reflekt.plugin.analysis.common.ReflektEntity +import io.reflekt.plugin.analysis.ir.SmartReflektInvokeArgumentsCollector +import io.reflekt.plugin.analysis.models.* +import io.reflekt.plugin.generation.common.SmartReflektInvokeParts +import io.reflekt.plugin.scripting.ImportChecker +import io.reflekt.plugin.scripting.KotlinScript +import io.reflekt.plugin.utils.Util.log +import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext +import org.jetbrains.kotlin.backend.common.push +import org.jetbrains.kotlin.cli.common.messages.MessageCollector +import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI +import org.jetbrains.kotlin.ir.declarations.IrFile +import org.jetbrains.kotlin.ir.expressions.IrCall +import org.jetbrains.kotlin.ir.expressions.IrExpression +import org.jetbrains.kotlin.ir.util.dump +import org.jetbrains.kotlin.ir.util.fqNameForIrSerialization +import org.jetbrains.kotlin.util.removeSuffixIfPresent +import java.io.File + +/* Replaces SmartReflekt invoke calls with their results */ +class SmartReflektIrTransformer( + private val pluginContext: IrPluginContext, + private val instances: IrReflektInstances, + private val classpath: List, + private val messageCollector: MessageCollector? = null +) : BaseReflektIrTransformer(messageCollector) { + private val importChecker = ImportChecker(classpath) + private val sources = HashMap() + + @ObsoleteDescriptorBasedAPI + override fun visitCall(expression: IrCall): IrExpression { + val function = expression.symbol.owner + val expressionFqName = function.fqNameForIrSerialization.toString() + val invokeParts = SmartReflektInvokeParts.parse(expressionFqName) ?: return super.visitCall(expression) + messageCollector?.log("[IR] SMART REFLEKT CALL: $expressionFqName;") + + val invokeArguments = SmartReflektInvokeArgumentsCollector.collectInvokeArguments(expression, getSourceFile(currentFile)) + + val call = when (invokeParts.entityType) { + ReflektEntity.OBJECTS, ReflektEntity.CLASSES -> { + val filteredInstances = if (invokeParts.entityType == ReflektEntity.OBJECTS) { + filterInstances(instances.objects, invokeArguments) + } else { + filterInstances(instances.classes, invokeArguments) + } + newIrBuilder(pluginContext).resultIrCall(invokeParts, filteredInstances.map { it.info }, expression.type, pluginContext) + } + ReflektEntity.FUNCTIONS -> { + val filteredInstances = filterInstances(instances.functions, invokeArguments) + newIrBuilder(pluginContext).functionResultIrCall(invokeParts, filteredInstances.map { it.info }, expression.type, pluginContext) + } + } + messageCollector?.log("GENERATE CALL:\n${call.dump()}") + return call + } + + private inline fun filterInstances(instances: List>, invokeArguments: SupertypesToFilters): List> { + val imports = importChecker.filterImports(invokeArguments.imports) + + val resultInstances = ArrayList>() + for (instance in instances) { + if (evalFilterBody(imports, invokeArguments.filters, instance)) { + resultInstances.push(instance) + } + } + return resultInstances + } + + private inline fun evalFilterBody(imports: List, filters: List, + instance: IrTypeInstance): Boolean { + for (filter in filters) { + val result = KotlinScript( + classpath = classpath, + imports = imports, + properties = filter.parameters.zip(listOf(T::class)), + code = filter.body + ).eval(listOf(instance.instance)) as Boolean + if (!result) { + return false + } + } + return true + } + + private fun getSourceFile(irFile: IrFile): SourceFile { + val file = File(irFile.fileEntry.name) + return sources[file.absolutePath] ?: file.readText().toSourceFile().also { + sources[file.absolutePath] = it + } + } + + private fun String.toSourceFile() = SourceFile( + imports = lines() + .filter { it.startsWith("import ") } + .map { Import(it.removePrefix("import ").trim().removeSuffixIfPresent(".*"), it) }, + content = this + ) +} diff --git a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/ir/util/IrBuilderUtil.kt b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/ir/util/IrBuilderUtil.kt new file mode 100644 index 00000000..8b2d275b --- /dev/null +++ b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/generation/ir/util/IrBuilderUtil.kt @@ -0,0 +1,75 @@ +package io.reflekt.plugin.generation.ir.util + +import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext +import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET +import org.jetbrains.kotlin.ir.builders.IrBuilderWithScope +import org.jetbrains.kotlin.ir.expressions.* +import org.jetbrains.kotlin.ir.expressions.impl.* +import org.jetbrains.kotlin.ir.symbols.IrClassSymbol +import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol +import org.jetbrains.kotlin.ir.types.* +import org.jetbrains.kotlin.ir.types.impl.IrSimpleTypeImpl +import org.jetbrains.kotlin.ir.types.impl.makeTypeProjection +import org.jetbrains.kotlin.ir.util.isVararg +import org.jetbrains.kotlin.name.FqName +import org.jetbrains.kotlin.types.Variance + +fun IrBuilderWithScope.irVarargOut(elementType: IrType, elements: List) = + IrVarargImpl( + startOffset = UNDEFINED_OFFSET, + endOffset = UNDEFINED_OFFSET, + type = context.irBuiltIns.arrayClass.typeWithArguments(listOf(makeTypeProjection(elementType, Variance.OUT_VARIANCE))), + varargElementType = elementType, + elements = elements + ) + +fun irTypeCast(type: IrType, argument: IrExpression) = + IrTypeOperatorCallImpl( + startOffset = UNDEFINED_OFFSET, + endOffset = UNDEFINED_OFFSET, + type = type, + operator = IrTypeOperator.CAST, + typeOperand = type, + argument = argument + ) + +fun IrBuilderWithScope.irKClass(symbol: IrClassSymbol) = + IrClassReferenceImpl( + UNDEFINED_OFFSET, + UNDEFINED_OFFSET, + context.irBuiltIns.kClassClass.typeWith(symbol.defaultType), + symbol, + symbol.defaultType + ) + +fun IrBuilderWithScope.irKFunction(type: IrType, symbol: IrFunctionSymbol): IrFunctionReference { + require(type is IrSimpleType) + val kFunctionType = IrSimpleTypeImpl( + context.irBuiltIns.functionFactory.kFunctionN(type.arguments.size - 1).symbol, + false, + type.arguments, + emptyList() + ) + return IrFunctionReferenceImpl( + startOffset = UNDEFINED_OFFSET, + endOffset = UNDEFINED_OFFSET, + type = kFunctionType, + symbol = symbol, + typeArgumentsCount = 0, + valueArgumentsCount = type.arguments.size + ) +} + +fun funListOf(pluginContext: IrPluginContext) = + pluginContext.referenceFunctions(FqName("kotlin.collections.listOf")) + .single { + val parameters = it.owner.valueParameters + parameters.size == 1 && parameters[0].isVararg + } + +fun funSetOf(pluginContext: IrPluginContext) = + pluginContext.referenceFunctions(FqName("kotlin.collections.setOf")) + .single { + val parameters = it.owner.valueParameters + parameters.size == 1 && parameters[0].isVararg + } diff --git a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/scripting/KotlinScript.kt b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/scripting/KotlinScript.kt index fc4945d2..013a8c0e 100644 --- a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/scripting/KotlinScript.kt +++ b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/scripting/KotlinScript.kt @@ -39,7 +39,7 @@ class KotlinScript( source, compilationConfiguration, evaluationConfiguration ) if (result !is ResultWithDiagnostics.Success) { - throw RuntimeException("Failed to evaluate script:\n${result.reports}") + throw RuntimeException("Failed to evaluate script:\n${result.reports.map { it.render(withStackTrace = true)} }}") } return result } diff --git a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/utils/compiler/EnvironmentManager.kt b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/utils/compiler/EnvironmentManager.kt index 7044bc07..43208f97 100644 --- a/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/utils/compiler/EnvironmentManager.kt +++ b/reflekt-plugin/src/main/kotlin/io/reflekt/plugin/utils/compiler/EnvironmentManager.kt @@ -1,6 +1,5 @@ package io.reflekt.plugin.utils.compiler - import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys import org.jetbrains.kotlin.cli.common.environment.setIdeaIoUseFallback import org.jetbrains.kotlin.cli.common.messages.MessageCollector diff --git a/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/AnalysisSetupTest.kt b/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/AnalysisSetupTest.kt index 890efd02..6c5de5b3 100644 --- a/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/AnalysisSetupTest.kt +++ b/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/AnalysisSetupTest.kt @@ -14,7 +14,7 @@ class AnalysisSetupTest { private const val WINDOWS_USER_PROFILE = "USERPROFILE" // Todo: can we get the version from the project? - fun getReflektProjectJars(version: String = "0.1.0"): Set { + fun getReflektProjectJars(version: String = "0.2.0"): Set { val baseReflektPath = "${getMavenLocalPath()}/io/reflekt" val reflektNames = listOf("gradle-plugin", "reflekt-core", "reflekt-dsl") return reflektNames.map { diff --git a/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/AnalysisTest.kt b/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/AnalysisTest.kt index 926df292..7912d580 100644 --- a/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/AnalysisTest.kt +++ b/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/AnalysisTest.kt @@ -21,26 +21,24 @@ class AnalysisTest { val commonTestFiles = getAllNestedFiles(getResourcesRootPath(AnalysisTest::class, "commonTestFiles")).toSet() return getTestsDirectories(AnalysisTest::class).map { directory -> val project = getProjectFilesInDirectory(directory) - val invokes = parseInvokes(directory.findInDirectory("invokes.json")) - val uses = parseUses(directory.findInDirectory("uses.json")) - Arguments.of(commonTestFiles.union(project), invokes, uses) + val invokes = directory.findInDirectory("invokes.txt").readText().trim() + val uses = directory.findInDirectory("uses.txt").readText().trim() + Arguments.of(commonTestFiles.union(project), invokes, uses, directory.name) } } - - private fun parseInvokes(json: File): ReflektInvokes = parseJson(json) - - private fun parseUses(json: File): ReflektUsesTest = parseJson(json) } @Tag("analysis") @MethodSource("data") @ParameterizedTest(name = "test {index}") - fun `project analyzer test`(sources: Set, expectedInvokes: ReflektInvokes, expectedUses: ReflektUsesTest) { + fun `project analyzer test`(sources: Set, expectedInvokes: String, expectedUses: String, directory: String) { val reflektClassPath = AnalysisSetupTest.getReflektProjectJars() val analyzer = getReflektAnalyzer(classPath = reflektClassPath, sources = sources) val actualInvokes = analyzer.invokes() - Assertions.assertEquals(expectedInvokes, actualInvokes) + Assertions.assertEquals(expectedInvokes, actualInvokes.toPrettyString(), "Incorrect invokes for directory $directory") val actualUses = analyzer.uses(actualInvokes) - Assertions.assertEquals(expectedUses, actualUses.toTestUses()) + Assertions.assertEquals(expectedUses, actualUses.toPrettyString(), "Incorrect uses for directory $directory") } } + + diff --git a/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/Util.kt b/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/FileUtil.kt similarity index 100% rename from reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/Util.kt rename to reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/FileUtil.kt diff --git a/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/FormattingUtil.kt b/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/FormattingUtil.kt new file mode 100644 index 00000000..796ee9a0 --- /dev/null +++ b/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/FormattingUtil.kt @@ -0,0 +1,29 @@ +package io.reflekt.plugin.analysis + +fun CharSequence.indentN(n: Int): String { + val indent = "\t".repeat(n) + return "$indent${this.toString().replace("\n", "\n$indent")}" +} + +fun Collection.joinToStringIndented( + brackets: Brackets = Brackets.SQUARE, + transform: (T) -> CharSequence = { it.toString() } +): String { + return if (this.isEmpty()) { + brackets.left + brackets.right + } else { + this.map { transform(it) } + .sortedBy { it.toString() } + .joinToString(separator = ",\n", prefix = "${brackets.left}\n", postfix = "\n${brackets.right}") { it.indentN(1) } + } +} + +fun Map.joinToStringIndented(transform: (K, V) -> CharSequence): String { + return toList().joinToStringIndented(brackets = Brackets.CURLY) { (k, v) -> transform(k, v) } +} + +enum class Brackets(val left: String, val right: String) { + SQUARE("[", "]"), + CURLY("{", "}"), + ROUND("(", ")") +} diff --git a/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/Models.kt b/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/Models.kt index 065d6c35..680c2bca 100644 --- a/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/Models.kt +++ b/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/Models.kt @@ -1,32 +1,72 @@ package io.reflekt.plugin.analysis import io.reflekt.plugin.analysis.models.* +import io.reflekt.plugin.analysis.psi.function.fqName import org.jetbrains.kotlin.psi.KtNamedDeclaration +import org.jetbrains.kotlin.types.KotlinType -typealias TypeUsesTest = Map> -typealias ClassOrObjectUsesTest = TypeUsesTest -typealias FunctionUsesTest = TypeUsesTest +// We cannot use Json to store and test KotlinType (supertype), so we build a string representation, sufficient to test it. +// We also want to check fqName of supertype, which is not included in its toString(), so we added it separately. +fun KotlinType?.toPrettyString() = "$this (${this?.fqName()})" -data class ReflektUsesTest( - val objects: ClassOrObjectUsesTest = HashMap(), - val classes: ClassOrObjectUsesTest = HashMap(), - val functions: FunctionUsesTest = HashMap() -) +fun Collection.toPrettyString() = joinToStringIndented { it.toPrettyString() } -data class SubTypesToFiltersTest( - val subTypesToFilters: Set -) +fun KtNamedDeclaration.toPrettyString() = fqName.toString() -fun Set.toSubTypesToFiltersTest() = SubTypesToFiltersTest(this) +fun SignatureToAnnotations.toPrettyString(): String { + return "signature: ${signature.toPrettyString()},\n" + + "annotations: ${annotations.joinToStringIndented()}" +} + +@JvmName("toPrettyStringSFunctionInvokes") +fun FunctionInvokes.toPrettyString(): String { + return joinToStringIndented { it.toPrettyString() } +} + +fun SupertypesToAnnotations.toPrettyString(): String { + return "supertypes: ${supertypes.joinToStringIndented()},\n" + + "annotations: ${annotations.joinToStringIndented()}" +} + +@JvmName("toPrettyStringClassOrObjectInvokes") +fun ClassOrObjectInvokes.toPrettyString(): String { + return joinToStringIndented { it.toPrettyString() } +} + +fun SupertypesToFilters.toPrettyString(): String { + return "supertype: ${supertype?.toPrettyString()},\n" + + "filters: ${filters.joinToStringIndented()},\n" + + "imports: ${imports.joinToStringIndented()}" +} -private fun fromTypeUses(uses: TypeUses) : TypeUsesTest { - return uses.mapValues { (_, items) -> - items.map { it.fqName!!.toString() }.toSet() +@JvmName("toPrettyStringSupertypesToFilters") +fun Set.toPrettyString(): String { + return joinToStringIndented { it.toPrettyString() } +} + +fun ReflektInvokes.toPrettyString(): String { + return "objects: ${objects.toPrettyString()},\n" + + "classes: ${classes.toPrettyString()},\n" + + "functions: ${functions.toPrettyString()}" +} + +@JvmName("toPrettyStringClassOrObjectUses") +fun ClassOrObjectUses.toPrettyString(): String { + return joinToStringIndented { supertypesToAnnotations, classOrObjectList -> + "supertypesToAnnotations: ${listOf(supertypesToAnnotations.toPrettyString()).joinToStringIndented()},\n" + + "objectsOrClasses: ${classOrObjectList.joinToStringIndented { it.toPrettyString() }}" } } -fun ReflektUses.toTestUses() = ReflektUsesTest( - objects = fromTypeUses(objects), - classes = fromTypeUses(classes), - functions = fromTypeUses(functions) -) +fun FunctionUses.toPrettyString(): String { + return joinToStringIndented { signatureToAnnotations, namedFunctionList -> + "signatureToAnnotations: ${listOf(signatureToAnnotations.toPrettyString()).joinToStringIndented()},\n" + + "namedFunctions: ${namedFunctionList.joinToStringIndented { it.toPrettyString() }}" + } +} + +fun ReflektUses.toPrettyString(): String { + return "objects: ${objects.toPrettyString()},\n" + + "classes: ${classes.toPrettyString()},\n" + + "functions: ${functions.toPrettyString()}" +} diff --git a/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/parameterizedtype/AstNodeToParameterizedTypeTest.kt b/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/parameterizedtype/AstNodeToParameterizedTypeTest.kt new file mode 100644 index 00000000..88332e5f --- /dev/null +++ b/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/parameterizedtype/AstNodeToParameterizedTypeTest.kt @@ -0,0 +1,36 @@ +package io.reflekt.plugin.analysis.parameterizedtype + +import io.reflekt.plugin.analysis.parameterizedtype.util.KtCallExpressionVisitor +import io.reflekt.plugin.analysis.parameterizedtype.util.visitKtElements +import io.reflekt.plugin.analysis.toParameterizedType +import io.reflekt.plugin.analysis.toPrettyString +import io.reflekt.plugin.util.Util +import io.reflekt.util.FileUtil +import org.jetbrains.kotlin.com.intellij.lang.ASTNode +import org.jetbrains.kotlin.resolve.BindingContext +import org.junit.jupiter.api.Assertions +import org.junit.jupiter.api.Tag +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.Arguments +import org.junit.jupiter.params.provider.MethodSource + +class AstNodeToParameterizedTypeTest { + companion object { + private const val TEST_DIR_NAME = "types" + + @JvmStatic + fun getAstNodeKotlinTypes(): List { + val files = FileUtil.getAllNestedFiles(Util.getResourcesRootPath(AstNodeToParameterizedTypeTest::class, TEST_DIR_NAME)) + val visitor = KtCallExpressionVisitor() + val binding = visitKtElements(files, listOf(visitor)) + return visitor.typeArguments.map { Arguments.of(binding, it.argument, it.expectedType) } + } + } + + @Tag("parametrizedType") + @MethodSource("getAstNodeKotlinTypes") + @ParameterizedTest(name = "test {index}") + fun testAstNodeToParameterizedType(binding: BindingContext, astNode: ASTNode, expectedType: String) { + Assertions.assertEquals(expectedType, astNode.toParameterizedType(binding).toPrettyString(), "Incorrect type for ASTNode ${astNode.text}") + } +} diff --git a/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/parameterizedtype/FunctionSubtypesTest.kt b/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/parameterizedtype/FunctionSubtypesTest.kt new file mode 100644 index 00000000..ec744a6c --- /dev/null +++ b/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/parameterizedtype/FunctionSubtypesTest.kt @@ -0,0 +1,55 @@ +package io.reflekt.plugin.analysis.parameterizedtype + +import io.reflekt.plugin.analysis.parameterizedtype.util.* +import io.reflekt.plugin.analysis.psi.function.toParameterizedType +import io.reflekt.plugin.util.Util +import io.reflekt.util.FileUtil +import org.jetbrains.kotlin.psi.* +import org.jetbrains.kotlin.psi.psiUtil.getParentOfType +import org.jetbrains.kotlin.resolve.BindingContext +import org.jetbrains.kotlin.types.typeUtil.isSubtypeOf +import org.junit.jupiter.api.Assertions +import org.junit.jupiter.api.Tag +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.Arguments +import org.junit.jupiter.params.provider.MethodSource + +class FunctionSubtypesTest { + companion object { + private const val TEST_DIR_NAME = "functions" + + @JvmStatic + fun getKtNamedFunctionsWithSubtypes(): List { + val (functions, binding) = getFunctionsToTestFromResources(FunctionSubtypesTest::class, TEST_DIR_NAME) + return functions.map { Arguments.of(binding, it, functions.removeFromList(it), it.parseKDocLinks("subtypes")) } + } + + private fun List.removeFromList(toRemove: T): List { + val functions = this.toMutableList() + functions.remove(toRemove) + return functions + } + } + + private fun KtNamedFunction.getNameWithClass(): String { + var classOrObject = getParentOfType(true) + if (classOrObject is KtObjectDeclaration && classOrObject.isCompanion()) { + classOrObject = classOrObject.getParentOfType(true) + } + val className = classOrObject?.name?.let { "$it." } ?: "" + return this.name?.let { "$className$it" } ?: error("Name of function $this is null") + } + + @Tag("parametrizedType") + @MethodSource("getKtNamedFunctionsWithSubtypes") + @ParameterizedTest(name = "test {index}") + fun testFunctionSubtypes(binding: BindingContext, function: KtNamedFunction, otherFunctions: List, expectedSubtypes: List) { + val functionType = function.toParameterizedType(binding) ?: error("KotlinType of function ${function.name} is null") + val actualSubtypes = otherFunctions.filter { it.toParameterizedType(binding)?.isSubtypeOf(functionType) == true } + Assertions.assertEquals( + expectedSubtypes.sorted(), + actualSubtypes.map { it.getNameWithClass() }.sorted(), + "Incorrect subtypes for function ${function.name} $functionType" + ) + } +} diff --git a/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/parameterizedtype/FunctionToParameterizedTypeTest.kt b/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/parameterizedtype/FunctionToParameterizedTypeTest.kt new file mode 100644 index 00000000..10499d2d --- /dev/null +++ b/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/parameterizedtype/FunctionToParameterizedTypeTest.kt @@ -0,0 +1,80 @@ +package io.reflekt.plugin.analysis.parameterizedtype + +import com.tschuchort.compiletesting.KotlinCompilation +import io.reflekt.plugin.analysis.* +import io.reflekt.plugin.analysis.parameterizedtype.util.* +import io.reflekt.plugin.analysis.psi.function.* +import io.reflekt.plugin.util.Util +import io.reflekt.util.FileUtil.getAllNestedFiles +import org.jetbrains.kotlin.psi.KtNamedFunction +import org.jetbrains.kotlin.resolve.BindingContext +import org.jetbrains.kotlin.types.KotlinType +import org.junit.jupiter.api.* +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.Arguments +import org.junit.jupiter.params.provider.MethodSource +import java.io.File + +class FunctionToParameterizedTypeTest { + + companion object { + /** + * For some reason, sometimes abstract overridden IR functions have nullable KotlinType (as well as PsiElement). Not sure, if it's a bug, since + * everything works well for a simple case (see AbstractAndOverrideFunctionsSimple.kt), + * but fails with abstract functions in AbstractAndOverrideFunctions.kt. + * TODO: maybe detailed testing is needed + */ + private val failedIrFiles = listOf("AbstractAndOverrideFunctions.kt") + private const val TEST_DIR_NAME = "functions" + private const val FUNCTION_PREFIX = "foo" + + @JvmStatic + fun getKtNamedFunctionsWithTypes(): List { + val (functions, binding) = getFunctionsToTestFromResources(FunctionToParameterizedTypeTest::class, TEST_DIR_NAME) + return functions.map { Arguments.of(binding, it, it.getTagContent("kotlinType")) } + } + + @JvmStatic + fun getIrFunctionsWithTypes(): List { + return visitIrFunctionsWithTypes { it.name !in failedIrFiles } + } + + @JvmStatic + fun getIrFunctionsWithTypesFailed(): List { + return visitIrFunctionsWithTypes { it.name in failedIrFiles } + } + + private fun visitIrFunctionsWithTypes(filterFiles: (File) -> Boolean): List { + val functionFiles = getAllNestedFiles(Util.getResourcesRootPath(FunctionToParameterizedTypeTest::class, TEST_DIR_NAME)).filter { filterFiles(it) } + // We need to filter out all default functions like "equals", "toString", etc, so every function in tests has a special prefix in its name + val visitor = IrFunctionTypeVisitor { FUNCTION_PREFIX in it } + val exitCode = visitIrElements(functionFiles, listOf(visitor)).exitCode + return visitor.functions.map { f -> Arguments.of(f.name, f.actualType, f.expectedType, exitCode) } + } + } + + + @Tag("parametrizedType") + @MethodSource("getKtNamedFunctionsWithTypes") + @ParameterizedTest(name = "test {index}") + fun testKtNamedFunctions(binding: BindingContext, function: KtNamedFunction, expectedKotlinType: String) { + Assertions.assertEquals(expectedKotlinType, function.toParameterizedType(binding).toPrettyString(), "Incorrect type for function ${function.name}") + } + + @Tag("parametrizedType") + @MethodSource("getIrFunctionsWithTypes") + @ParameterizedTest(name = "test {index}") + fun testIrFunctions(name: String, actualType: KotlinType, expectedKotlinType: String?, exitCode: KotlinCompilation.ExitCode) { + Assertions.assertEquals(KotlinCompilation.ExitCode.OK, exitCode) + Assertions.assertEquals(expectedKotlinType, actualType.toPrettyString(), "Incorrect type for function $name") + } + + @Tag("parametrizedType") + @Disabled("Kotlin type of overridden IrFunction is null, see detailed explanation in comments above") + @MethodSource("getIrFunctionsWithTypesFailed") + @ParameterizedTest(name = "test {index}") + fun testIrFunctionsFailed(name: String, actualType: KotlinType, expectedKotlinType: String?, exitCode: KotlinCompilation.ExitCode) { + Assertions.assertEquals(KotlinCompilation.ExitCode.OK, exitCode) + Assertions.assertEquals(expectedKotlinType, actualType.toPrettyString(), "Incorrect type for function $name") + } +} diff --git a/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/parameterizedtype/IrTypeToParameterizedTypeTest.kt b/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/parameterizedtype/IrTypeToParameterizedTypeTest.kt new file mode 100644 index 00000000..40775c43 --- /dev/null +++ b/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/parameterizedtype/IrTypeToParameterizedTypeTest.kt @@ -0,0 +1,34 @@ +package io.reflekt.plugin.analysis.parameterizedtype + +import com.tschuchort.compiletesting.KotlinCompilation +import io.reflekt.plugin.analysis.toPrettyString +import io.reflekt.plugin.util.Util +import io.reflekt.util.FileUtil +import org.jetbrains.kotlin.types.KotlinType +import org.junit.jupiter.api.Assertions +import org.junit.jupiter.api.Tag +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.Arguments +import org.junit.jupiter.params.provider.MethodSource + +class IrTypeToParameterizedTypeTest { + companion object { + private const val TEST_DIR_NAME = "types" + + @JvmStatic + fun getIrTypeKotlinTypes(): List { + val files = FileUtil.getAllNestedFiles(Util.getResourcesRootPath(IrTypeToParameterizedTypeTest::class, TEST_DIR_NAME)) + val visitor = IrCallArgumentTypeVisitor() + val exitCode = visitIrElements(files, listOf(visitor)).exitCode + return visitor.typeArguments.map { Arguments.of(it.name, it.actualType, it.expectedType, exitCode) } + } + } + + @Tag("parametrizedType") + @MethodSource("getIrTypeKotlinTypes") + @ParameterizedTest(name = "test {index}") + fun testIrTypeToParameterizedType(name: String, actualType: KotlinType, expectedKotlinType: String?, exitCode: KotlinCompilation.ExitCode) { + Assertions.assertEquals(KotlinCompilation.ExitCode.OK, exitCode) + Assertions.assertEquals(expectedKotlinType, actualType.toPrettyString(), "Incorrect type for function $name") + } +} diff --git a/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/parameterizedtype/util/IrElementVisitorUtil.kt b/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/parameterizedtype/util/IrElementVisitorUtil.kt new file mode 100644 index 00000000..3f653caf --- /dev/null +++ b/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/parameterizedtype/util/IrElementVisitorUtil.kt @@ -0,0 +1,103 @@ +package io.reflekt.plugin.analysis.parameterizedtype + +import com.tschuchort.compiletesting.KotlinCompilation +import com.tschuchort.compiletesting.SourceFile +import io.reflekt.plugin.analysis.ir.ReflektFunctionInvokeArgumentsCollector +import io.reflekt.plugin.analysis.ir.toParameterizedType +import io.reflekt.plugin.analysis.parameterizedtype.util.getTagContent +import io.reflekt.plugin.analysis.toPrettyString +import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension +import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext +import org.jetbrains.kotlin.backend.jvm.codegen.psiElement +import org.jetbrains.kotlin.com.intellij.mock.MockProject +import org.jetbrains.kotlin.compiler.plugin.ComponentRegistrar +import org.jetbrains.kotlin.config.CompilerConfiguration +import org.jetbrains.kotlin.ir.IrElement +import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI +import org.jetbrains.kotlin.ir.backend.js.utils.asString +import org.jetbrains.kotlin.ir.declarations.IrFunction +import org.jetbrains.kotlin.ir.declarations.IrModuleFragment +import org.jetbrains.kotlin.ir.expressions.IrCall +import org.jetbrains.kotlin.ir.expressions.impl.IrConstImpl +import org.jetbrains.kotlin.ir.visitors.IrElementVisitor +import org.jetbrains.kotlin.psi.KtNamedFunction +import org.jetbrains.kotlin.resolve.BindingContext +import org.jetbrains.kotlin.types.KotlinType +import java.io.File + +/** + * We cannot access IR level when compilation is done, so to test it properly we can pass any visitor to it + * and do any checks during compilation when IR code is generated. + * After that, we can check the result by getting info from visitors. + */ +fun visitIrElements(sourceFiles: List, visitors: List>): KotlinCompilation.Result { + val plugin = IrTestComponentRegistrar(visitors) + return KotlinCompilation().apply { + sources = sourceFiles.map { SourceFile.fromPath(it) } + jvmTarget = "11" + compilerPlugins = listOf(plugin) + inheritClassPath = true + messageOutputStream + useIR = true + }.compile() +} + +class IrTestComponentRegistrar(val visitors: List>) : ComponentRegistrar { + + @ObsoleteDescriptorBasedAPI + override fun registerProjectComponents(project: MockProject, configuration: CompilerConfiguration) { + IrGenerationExtension.registerExtension(project, object : IrGenerationExtension { + override fun generate(moduleFragment: IrModuleFragment, pluginContext: IrPluginContext) { + println("$moduleFragment module fragment") + visitors.forEach { moduleFragment.accept(it, pluginContext.bindingContext) } + } + }) + } +} + +/** + * Checks IrFunctions transforming to ParameterizedType, stores the result and expected Kotlin Type which is written in docs. + * [filterByName] is used to avoid visiting special methods like equals() or toString() + */ +class IrFunctionTypeVisitor(val filterByName: (String) -> Boolean) : IrElementVisitor { + data class Function(val name: String, val actualType: KotlinType, val expectedType: String) + val functions = mutableListOf() + + override fun visitFunction(declaration: IrFunction, data: BindingContext) { + val name = declaration.name.asString() + if (filterByName(name)) { + val type = declaration.toParameterizedType(data) ?: error("Kotlin type of function $name is null") + val expectedType = (declaration.psiElement as? KtNamedFunction)?.getTagContent("kotlinType") ?: ("Expected kotlin type of function $name is null") + functions.add(Function(name, type, expectedType)) + } + super.visitFunction(declaration, data) + } + + override fun visitElement(element: IrElement, data: BindingContext) { + return element.acceptChildren(this, data) + } +} + +/** + * Checks IrType (from expression type arguments) transforming to ParametrizedType, simulating the behaviour of [ReflektFunctionInvokeArgumentsCollector]. + * The expected Kotlin Type is written in expression value arguments. + */ +class IrCallArgumentTypeVisitor : IrElementVisitor { + data class TypeArgument(val name: String, val actualType: KotlinType, val expectedType: String) + val typeArguments = mutableListOf() + + @ObsoleteDescriptorBasedAPI + override fun visitCall(expression: IrCall, data: BindingContext) { + val typeArgument = expression.getTypeArgument(0) ?: error("No arguments found in expression $expression") + val type = typeArgument.toParameterizedType() + val valueArgument = expression.getValueArgument(0) ?: error("No value passed as expected KotlinType in expression $expression") + val expectedType = (valueArgument as IrConstImpl<*>).value.toString() + typeArguments.add(TypeArgument(typeArgument.asString(), type, expectedType)) + println(type.toPrettyString()) + super.visitCall(expression, data) + } + + override fun visitElement(element: IrElement, data: BindingContext) { + return element.acceptChildren(this, data) + } +} diff --git a/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/parameterizedtype/util/KtElementVisitorUtil.kt b/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/parameterizedtype/util/KtElementVisitorUtil.kt new file mode 100644 index 00000000..57f5a2e9 --- /dev/null +++ b/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/parameterizedtype/util/KtElementVisitorUtil.kt @@ -0,0 +1,87 @@ +package io.reflekt.plugin.analysis.parameterizedtype.util + +import io.reflekt.plugin.analysis.* +import io.reflekt.plugin.analysis.common.findReflektFunctionInvokeArguments +import io.reflekt.plugin.util.Util +import io.reflekt.util.FileUtil +import org.jetbrains.kotlin.com.intellij.lang.ASTNode +import org.jetbrains.kotlin.kdoc.psi.impl.KDocLink +import org.jetbrains.kotlin.kdoc.psi.impl.KDocTag +import org.jetbrains.kotlin.psi.* +import org.jetbrains.kotlin.psi.psiUtil.getChildrenOfType +import org.jetbrains.kotlin.resolve.BindingContext +import java.io.File +import kotlin.reflect.KClass + +fun visitKtElements(sourceFiles: List, visitors: List>): BindingContext { + val reflektClassPath = AnalysisSetupTest.getReflektProjectJars() + val analyzer = AnalysisUtil.getBaseAnalyzer(classPath = reflektClassPath, sources = sourceFiles.toSet()) + visitors.forEach { v -> analyzer.ktFiles.forEach { it.acceptChildren(v, analyzer.binding) } } + return analyzer.binding +} + +data class FunctionsToTest(val functions: List, val binding: BindingContext) + +fun getFunctionsToTestFromResources(cls: KClass<*>, testDirName: String): FunctionsToTest { + val functionFiles = FileUtil.getAllNestedFiles(Util.getResourcesRootPath(cls, testDirName)) + val visitor = KtNamedFunctionVisitor() + val binding = visitKtElements(functionFiles, listOf(visitor)) + return FunctionsToTest(visitor.functions, binding) +} + + +/** + * Collects KtNamedFunctions + */ +class KtNamedFunctionVisitor : KtVisitor() { + val functions = mutableListOf() + + override fun visitNamedFunction(function: KtNamedFunction, data: BindingContext): Void? { + functions.add(function) + return super.visitNamedFunction(function, data) + } + + override fun visitKtElement(element: KtElement, data: BindingContext): Void? { + element.acceptChildren(this, data) + return super.visitKtElement(element, data) + } +} + + +/** + * Collects argument types as ASTNodes in CallExpressions together with the expected Kotlin Type written in expression value arguments (see test files), + * simulating the behaviour of [findReflektFunctionInvokeArguments]. + */ +class KtCallExpressionVisitor : KtVisitor() { + data class TypeArgument(val argument: ASTNode, val expectedType: String) + val typeArguments = mutableListOf() + + override fun visitCallExpression(expression: KtCallExpression, data: BindingContext): Void? { + val typeArgument = expression.node.getTypeArguments().firstOrNull() ?: error("No arguments found in expression ${expression}") + val expectedType = expression.valueArguments.firstOrNull()?.text ?: error("No value passed as expected KotlinType in expression $expression") + // if argument has String type, its text contains extra quotes, so we need to trim them + typeArguments.add(TypeArgument(typeArgument, expectedType.trim { it == '"' })) + return super.visitCallExpression(expression, data) + } + + override fun visitKtElement(element: KtElement, data: BindingContext): Void? { + element.acceptChildren(this, data) + return super.visitKtElement(element, data) + } +} + + +/** + * We store all necessary info for tests in functions docs with specific tags (see test files), so we need to get them. + */ +fun KtNamedFunction.findTag(tag: String): KDocTag? { + return docComment?.getDefaultSection()?.findTagByName(tag) +} + +fun KtNamedFunction.getTagContent(tag: String): String { + return findTag(tag)?.getContent() ?: error("No tag $tag found for function $name") +} + +fun KtNamedFunction.parseKDocLinks(tag: String): List { + return findTag(tag)?.getChildrenOfType().orEmpty().map { it.getLinkText() } +} diff --git a/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/util/FindSmartReflektInvokeArgumentsByExpressionPartAnalyzer.kt b/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/util/FindSmartReflektInvokeArgumentsByExpressionPartAnalyzer.kt index 24c61c2e..b47082c8 100644 --- a/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/util/FindSmartReflektInvokeArgumentsByExpressionPartAnalyzer.kt +++ b/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/util/FindSmartReflektInvokeArgumentsByExpressionPartAnalyzer.kt @@ -2,7 +2,7 @@ package io.reflekt.plugin.analysis.util import io.reflekt.plugin.analysis.analyzer.BaseAnalyzer import io.reflekt.plugin.analysis.common.findSmartReflektInvokeArgumentsByExpressionPart -import io.reflekt.plugin.analysis.models.SubTypesToFilters +import io.reflekt.plugin.analysis.models.SupertypesToFilters import io.reflekt.plugin.analysis.psi.visit import org.jetbrains.kotlin.psi.KtNameReferenceExpression @@ -15,8 +15,8 @@ class SmartReflektTestAnalyzer(baseAnalyzer: BaseAnalyzer) : BaseAnalyzer(baseAn return processor.expressions } - fun analyze(): Set { - val result = HashSet() + fun analyze(): Set { + val result = HashSet() expressions().forEach { expression -> findSmartReflektInvokeArgumentsByExpressionPart(expression, binding)?.let { result.add(it) diff --git a/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/util/FindSmartReflektInvokeArgumentsByExpressionPartTest.kt b/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/util/FindSmartReflektInvokeArgumentsByExpressionPartTest.kt index 6bb3a46d..d90b1651 100644 --- a/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/util/FindSmartReflektInvokeArgumentsByExpressionPartTest.kt +++ b/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/analysis/util/FindSmartReflektInvokeArgumentsByExpressionPartTest.kt @@ -2,6 +2,7 @@ package io.reflekt.plugin.analysis.util import io.reflekt.plugin.analysis.* import io.reflekt.plugin.util.Util +import io.reflekt.plugin.util.Util.toJson import io.reflekt.util.FileUtil import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Tag @@ -19,20 +20,18 @@ class FindSmartReflektInvokeArgumentsByExpressionPartTest { val commonTestFiles = FileUtil.getAllNestedFiles(Util.getResourcesRootPath(AnalysisTest::class, "commonTestFiles")).toSet() return getTestsDirectories(FindSmartReflektInvokeArgumentsByExpressionPartTest::class).map { directory -> val project = getProjectFilesInDirectory(directory) - val subTypesToFilters = parseSubTypesToFilters(directory.findInDirectory("subTypesToFilters.json")) - Arguments.of(commonTestFiles.union(project), subTypesToFilters) + val supertypesToFilters = directory.findInDirectory("supertypesToFilters.txt").readText().trim() + Arguments.of(commonTestFiles.union(project), supertypesToFilters, directory.name) } } - - private fun parseSubTypesToFilters(json: File): SubTypesToFiltersTest = Util.parseJson(json) } @Tag("analysis") @MethodSource("data") @ParameterizedTest(name = "test {index}") - fun `findSmartReflektInvokeArgumentsByExpressionPart function test`(sources: Set, expectedResult: SubTypesToFiltersTest) { + fun `findSmartReflektInvokeArgumentsByExpressionPart function test`(sources: Set, expectedResult: String, directory: String) { val reflektClassPath = AnalysisSetupTest.getReflektProjectJars() val analyzer = SmartReflektTestAnalyzer(AnalysisUtil.getBaseAnalyzer(classPath = reflektClassPath, sources = sources)) - Assertions.assertEquals(expectedResult, analyzer.analyze().toSubTypesToFiltersTest()) + Assertions.assertEquals(expectedResult, analyzer.analyze().toPrettyString(), "Incorrect invoke arguments for directory $directory") } } diff --git a/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/ir/IrTransformClassesAndObjectsTest.kt b/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/ir/IrTransformClassesAndObjectsTest.kt new file mode 100644 index 00000000..969aac8c --- /dev/null +++ b/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/ir/IrTransformClassesAndObjectsTest.kt @@ -0,0 +1,25 @@ +package io.reflekt.plugin.ir + +import io.reflekt.plugin.ir.ResultCall.call +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.Tag +import org.junit.jupiter.api.Test + +@Tag("ir") +class IrTransformClassesAndObjectsTest { + @Test + fun testClasses() { + assertEquals( + setOf("io.reflekt.test.ir.C1", "io.reflekt.test.ir.C2", "io.reflekt.test.ir.C3", "io.reflekt.test.ir.C3.C5"), + ReflektType.REFLEKT.classesFqNamesCall(Signature("CInterface")).call(false) + ) + } + + @Test + fun testObjects() { + assertEquals( + setOf("io.reflekt.test.ir.O1", "io.reflekt.test.ir.O1.O2"), + ReflektType.REFLEKT.objectsFqNamesCall(Signature("OInterface")).call(false) + ) + } +} diff --git a/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/ir/IrTransformFunctionsTest.kt b/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/ir/IrTransformFunctionsTest.kt new file mode 100644 index 00000000..4806bd29 --- /dev/null +++ b/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/ir/IrTransformFunctionsTest.kt @@ -0,0 +1,112 @@ +package io.reflekt.plugin.ir + +import io.reflekt.plugin.ir.ResultCall.call +import org.junit.jupiter.api.* +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.Arguments +import org.junit.jupiter.params.provider.MethodSource + +@Tag("ir") +class IrTransformFunctionsTest { + companion object { + @JvmStatic + fun getReflektFunctionsTestData(): List = listOf( + Arguments.of( + setOf( + "fun fun1(): kotlin.Unit", + "fun io.reflekt.test.ir.FunctionTestClass.Companion.fun1(): kotlin.Unit", + "fun io.reflekt.test.ir.FunctionTestObject.fun1(): kotlin.Unit" + ), + Signature("() -> Unit", "IrTestAnnotation::class"), + "", + ), + Arguments.of( + setOf( + "fun fun2(): kotlin.Int", + "fun io.reflekt.test.ir.FunctionTestClass.Companion.fun2(): kotlin.Int", + "fun io.reflekt.test.ir.FunctionTestObject.fun2(): kotlin.Int" + ), + Signature("() -> Int", "IrTestAnnotation::class"), + "" + ), + Arguments.of( + setOf( + "fun fun3(): kotlin.collections.List", + "fun io.reflekt.test.ir.FunctionTestClass.Companion.fun3(): kotlin.collections.List", + "fun io.reflekt.test.ir.FunctionTestObject.fun3(): kotlin.collections.List" + ), + Signature("() -> List", "IrTestAnnotation::class"), + "" + ), + Arguments.of( + setOf( + "fun fun4(kotlin.Int, kotlin.Float?, kotlin.collections.Set): kotlin.collections.List", + "fun io.reflekt.test.ir.FunctionTestClass.Companion.fun4(kotlin.Int, kotlin.Float?, kotlin.collections.Set): kotlin.collections.List", + "fun io.reflekt.test.ir.FunctionTestObject.fun4(kotlin.Int, kotlin.Float?, kotlin.collections.Set): kotlin.collections.List" + ), + Signature("(a: Int, b: Float?, c: Set) -> List", "IrTestAnnotation::class"), + "1, null, emptySet()" + ) + ) + + @JvmStatic + fun getReflektMemberFunctionsTestData(): List = listOf( + Arguments.of( + setOf( + "fun io.reflekt.test.ir.FunctionTestClass.fun1(): kotlin.Unit" + ), + Signature("(FunctionTestClass) -> Unit", "IrTestAnnotation::class"), + "FunctionTestClass()" + ), + Arguments.of( + setOf( + "fun io.reflekt.test.ir.FunctionTestClass.fun2(): kotlin.Int" + ), + Signature("(FunctionTestClass) -> Int", "IrTestAnnotation::class"), + "FunctionTestClass()" + ), + Arguments.of( + setOf( + "fun io.reflekt.test.ir.FunctionTestClass.fun3(): kotlin.collections.List" + ), + Signature("(FunctionTestClass) -> List", "IrTestAnnotation::class"), + "FunctionTestClass()" + ), + Arguments.of( + setOf( + "fun io.reflekt.test.ir.FunctionTestClass.fun4(kotlin.Int, kotlin.Float?, kotlin.collections.Set): kotlin.collections.List" + ), + Signature("(FunctionTestClass, Int, Float?, Set) -> List", "IrTestAnnotation::class"), + "FunctionTestClass(), 1, null, emptySet()" + ), + ) + + @JvmStatic + fun getSmartReflektFunctionsTestData(): List = listOf( + Arguments.of(setOf(""), + Signature("() -> Boolean", "it.name == \"fooBoolean\""), + "" + ) + ) + + } + + @ParameterizedTest(name = "Function test#{index} with [{arguments}]") + @MethodSource("getReflektFunctionsTestData") + fun testReflektFunctions(expectedFunctions: Set, functionsSignature: Signature, functionsArguments: String) { + Assertions.assertEquals(expectedFunctions, ReflektType.REFLEKT.functionsInvokeCall(functionsSignature, functionsArguments).call(false)) + } + + @ParameterizedTest(name = "Member function test#{index} with [{arguments}]") + @MethodSource("getReflektMemberFunctionsTestData") + fun testReflektMemberFunctions(expectedFunctions: Set, functionsSignature: Signature, functionsArguments: String, ) { + Assertions.assertEquals(expectedFunctions, ReflektType.REFLEKT.functionsInvokeCall(functionsSignature, functionsArguments).call(false)) + } + + @ParameterizedTest(name = "Function test#{index} with [{arguments}]") + @Disabled("Failed with IllegalStateException, but in examples everything works fine") + @MethodSource("getSmartReflektFunctionsTestData") + fun testSmartReflektFunctions(expectedFunctions: Set, functionsSignature: Signature, functionsArguments: String) { + Assertions.assertEquals(expectedFunctions, ReflektType.SMART_REFLEKT.functionsInvokeCall(functionsSignature, functionsArguments).call()) + } +} diff --git a/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/ir/ReflektCall.kt b/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/ir/ReflektCall.kt new file mode 100644 index 00000000..85be3c36 --- /dev/null +++ b/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/ir/ReflektCall.kt @@ -0,0 +1,97 @@ +package io.reflekt.plugin.ir + +import com.tschuchort.compiletesting.KotlinCompilation +import com.tschuchort.compiletesting.SourceFile +import io.reflekt.plugin.ReflektComponentRegistrar +import io.reflekt.plugin.util.Util +import io.reflekt.util.FileUtil +import org.junit.jupiter.api.Assertions + +/** + * Represents source file with result method [resultMethod] that returns [T] + */ +data class ResultFile( + val name: String = "Main.kt", + val path: String = "io.reflekt.test.ir", + val import: String? = null, + val resultMethod: String = "getResult", + val resultMethodBody: String = "TODO()" +) { + val classPath = "$path.${name.split('.').joinToString("") { it.capitalize() }}" + val file = SourceFile.kotlin(name, """ +package $path +${import?.let { "import $it" }} + +fun $resultMethod() = $resultMethodBody +""") +} + +/** + * Compiles ResultFile with [commonTestFiles] and returns the call result of [ResultFile.resultMethod] + */ +object ResultCall { + private val commonTestFiles = FileUtil.getAllNestedFiles(Util.getResourcesRootPath(ResultCall::class, "commonTestFiles")) + .map { SourceFile.fromPath(it) } + + fun ResultFile.call(useIR: Boolean = true): T { + val compilationResult = KotlinCompilation().apply { + sources = commonTestFiles.plus(file) + jvmTarget = "11" + compilerPlugins = listOf(ReflektComponentRegistrar(false)) + inheritClassPath = true + messageOutputStream + this.useIR = useIR + }.compile() + Assertions.assertEquals(KotlinCompilation.ExitCode.OK, compilationResult.exitCode) + val testResults = compilationResult.classLoader.loadClass(classPath) + val resultMethod = testResults.getMethod(resultMethod) + return resultMethod.invoke(null) as T + } +} + +/** + * Signature of classes, objects, or functions passed to Reflekt calls + */ +class Signature(vararg val signature: String) { + /** + * Fills signature with [filler] until [size] is reached + */ + fun fillToSize(size: Int, filler: String = ""): Array { + if (signature.size >= size) return signature + return arrayOf(*signature) + Array(size - signature.size) { filler } + } +} + +/** + * Allows building functions, classes, or objects call result file with Reflekt or SmartReflekt + */ +enum class ReflektType(val id: String, val resolve: String) { + REFLEKT("Reflekt", "toList()"), + SMART_REFLEKT("SmartReflekt", "resolve()"); + + fun functionsInvokeCall(signature: Signature, functionsArguments: String): ResultFile> { + val functionsCall = when (this) { + REFLEKT -> "functions().withAnnotations<%s>(%s)".format(*signature.fillToSize(2)) + SMART_REFLEKT -> "functions<%s>().filter { %s }".format(*signature.fillToSize(2)) + } + return resultFile("$id.$functionsCall.$resolve.also { f -> f.forEach { it($functionsArguments) } }.map { it.toString() }.toSet()") + } + + fun objectsFqNamesCall(signature: Signature): ResultFile> { + val objectsCall = when(this) { + REFLEKT -> "objects().withSupertype<%s>(%s)".format(*signature.fillToSize(2)) + SMART_REFLEKT -> "objects<%s>().filter { %s }".format(*signature.fillToSize(2)) + } + return resultFile("$id.$objectsCall.$resolve.map { it::class.qualifiedName!! }.toSet()") + } + + fun classesFqNamesCall(signature: Signature): ResultFile> { + val classesCall = when(this) { + REFLEKT -> "classes().withSupertype<%s>(%s)".format(*signature.fillToSize(2)) + SMART_REFLEKT -> "classes<%s>().filter { %s }".format(*signature.fillToSize(2)) + } + return resultFile("$id.$classesCall.$resolve.map { it.qualifiedName!! }.toSet()") + } + + private fun resultFile(resultMethodBody: String) = ResultFile>(import = "io.reflekt.$id", resultMethodBody = resultMethodBody) +} diff --git a/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/scripting/KotlinScriptTest.kt b/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/scripting/KotlinScriptTest.kt index 7257418e..ec643805 100644 --- a/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/scripting/KotlinScriptTest.kt +++ b/reflekt-plugin/src/test/kotlin/io/reflekt/plugin/scripting/KotlinScriptTest.kt @@ -2,11 +2,8 @@ package io.reflekt.plugin.scripting import io.reflekt.plugin.analysis.AnalysisSetupTest import io.reflekt.plugin.analysis.models.Import +import org.junit.jupiter.api.* import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Tag -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.assertDoesNotThrow -import org.junit.jupiter.api.assertThrows @Tag("scripting") class KotlinScriptTest { @@ -55,4 +52,14 @@ class KotlinScriptTest { ).eval(listOf("hello")) ) } + + companion object { + // Equals private val with same name from org.jetbrains.kotlin.scripting.compiler.plugin.impl + private const val SCRIPT_COMPILATION_DISABLE_PLUGINS_PROPERTY = "script.compilation.disable.plugins" + + @BeforeAll @JvmStatic + fun disableCompilerTestingPlugin() { + System.setProperty(SCRIPT_COMPILATION_DISABLE_PLUGINS_PROPERTY, "com.tschuchort.compiletesting.MainComponentRegistrar") + } + } } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/commonTestFiles/test/FunctionSignatures.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/commonTestFiles/test/FunctionSignatures.kt new file mode 100644 index 00000000..8a2fc5fa --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/commonTestFiles/test/FunctionSignatures.kt @@ -0,0 +1,66 @@ +package io.reflekt.test + +annotation class FunctionsTestAnnotation + +open class FunTest1 + +open class FunTest2 : FunTest1() + +class FunTest3 : FunTest2() + +@FunctionsTestAnnotation +fun fun1() {} + +@FunctionsTestAnnotation +fun fun2(): Unit {} + +@FunctionsTestAnnotation +fun fun3(): Int = 0 + +@FunctionsTestAnnotation +fun fun4(): String = "" + +@FunctionsTestAnnotation +fun fun5(): Array = emptyArray() + +@FunctionsTestAnnotation +fun fun6(): Array = emptyArray() + +@FunctionsTestAnnotation +fun fun7(): Array = emptyArray() + +@FunctionsTestAnnotation +fun fun8(): Array? = null + +@FunctionsTestAnnotation +fun fun9(): Int? = null + +@FunctionsTestAnnotation +fun fun10(a: Int, b: Boolean, c: Float): Int = a + +@FunctionsTestAnnotation +fun fun11(a: Int, b: Boolean, c: Float): Boolean = b + +@FunctionsTestAnnotation +fun fun12(a: Int, b: Boolean, c: Float): Float = c + +@FunctionsTestAnnotation +fun fun13(a: List): List<*> = emptyList() + +@FunctionsTestAnnotation +fun fun14(a: List): List = emptyList() + +@FunctionsTestAnnotation +fun fun15(a: List): List = emptyList() + +@FunctionsTestAnnotation +fun fun16(a: List): List = emptyList() + +@FunctionsTestAnnotation +fun fun17(a: Array): Array = emptyArray() + +@FunctionsTestAnnotation +fun fun18(a: Array): Array = emptyArray() + +@FunctionsTestAnnotation +fun fun19(a: Array): Array = emptyArray() diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/base_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/base_test/invokes.json deleted file mode 100644 index 4c2d2ab5..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/base_test/invokes.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "objects": [], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/base_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/base_test/invokes.txt new file mode 100644 index 00000000..ce60440e --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/base_test/invokes.txt @@ -0,0 +1,3 @@ +objects: [], +classes: [], +functions: [] \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/base_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/base_test/uses.json deleted file mode 100644 index ff53fe79..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/base_test/uses.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "objects": {}, - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/base_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/base_test/uses.txt new file mode 100644 index 00000000..f6257a41 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/base_test/uses.txt @@ -0,0 +1,3 @@ +objects: {}, +classes: {}, +functions: {} \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes10_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes10_test/invokes.json deleted file mode 100644 index 8ee41152..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes10_test/invokes.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest" - ], - "annotations": [] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes10_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes10_test/invokes.txt new file mode 100644 index 00000000..db9dfeeb --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes10_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.BInterfaceTest + ], + annotations: [] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes10_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes10_test/uses.json deleted file mode 100644 index 0f750ab7..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes10_test/uses.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest" - ], - "annotations": [] - }, - [ - "io.reflekt.test.B1", - "io.reflekt.test.B2", - "io.reflekt.test.B3", - "io.reflekt.test.B3.B4" - ] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes10_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes10_test/uses.txt new file mode 100644 index 00000000..cfe36d71 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes10_test/uses.txt @@ -0,0 +1,16 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.BInterfaceTest + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.B1, + io.reflekt.test.B2, + io.reflekt.test.B3, + io.reflekt.test.B3.B4 + ] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes11_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes11_test/invokes.json deleted file mode 100644 index e4d13fc5..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes11_test/invokes.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes11_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes11_test/invokes.txt new file mode 100644 index 00000000..ecab6cd2 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes11_test/invokes.txt @@ -0,0 +1,10 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.BInterfaceTest + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes11_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes11_test/uses.json deleted file mode 100644 index 02fa5f60..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes11_test/uses.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [ - "io.reflekt.test.B2", - "io.reflekt.test.B3" - ] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes11_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes11_test/uses.txt new file mode 100644 index 00000000..93242116 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes11_test/uses.txt @@ -0,0 +1,16 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.BInterfaceTest + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] + ], + objectsOrClasses: [ + io.reflekt.test.B2, + io.reflekt.test.B3 + ] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes12_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes12_test/invokes.json deleted file mode 100644 index fda5ddc3..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes12_test/invokes.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes12_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes12_test/invokes.txt new file mode 100644 index 00000000..c5e2389f --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes12_test/invokes.txt @@ -0,0 +1,11 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.BInterfaceTest + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes12_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes12_test/uses.json deleted file mode 100644 index 472f0f78..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes12_test/uses.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [ - "io.reflekt.test.B2", - "io.reflekt.test.B3" - ] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes12_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes12_test/uses.txt new file mode 100644 index 00000000..32dbc12c --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes12_test/uses.txt @@ -0,0 +1,17 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.BInterfaceTest + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] + ], + objectsOrClasses: [ + io.reflekt.test.B2, + io.reflekt.test.B3 + ] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes13_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes13_test/description.md index 9bc03d5c..2290731f 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes13_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes13_test/description.md @@ -1,5 +1,5 @@ -### Classes: subtypes and annotations invokes +### Classes: supertypes and annotations invokes This project contains `Reflekt` invokes. -First use `withSubType` with the top-level class `B1`, +First use `withSupertype` with the top-level class `B1`, then use `withAnnotations` without arguments. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes13_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes13_test/invokes.json deleted file mode 100644 index 35833fe7..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes13_test/invokes.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.B1" - ], - "annotations": [] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes13_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes13_test/invokes.txt new file mode 100644 index 00000000..5fbca976 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes13_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.B1 + ], + annotations: [] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes13_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes13_test/project/test/Main.kt index 25589ec7..ae548c55 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes13_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes13_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withSubType().withAnnotations() + val classes = Reflekt.classes().withSupertype().withAnnotations() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes13_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes13_test/uses.json deleted file mode 100644 index 2b407e04..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes13_test/uses.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.B1" - ], - "annotations": [] - }, - [ - "io.reflekt.test.B1" - ] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes13_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes13_test/uses.txt new file mode 100644 index 00000000..7ec3a739 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes13_test/uses.txt @@ -0,0 +1,13 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.B1 + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.B1 + ] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes14_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes14_test/description.md index 6c4edc1b..efe26887 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes14_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes14_test/description.md @@ -1,5 +1,5 @@ -### Classes: subtypes and annotations invokes +### Classes: supertypes and annotations invokes This project contains `Reflekt` invokes. -First use `withSubType` with the top-level class `B1`, +First use `withSupertype` with the top-level class `B1`, then use `withAnnotations` with one argument. The result of classes should be empty. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes14_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes14_test/invokes.json deleted file mode 100644 index 861a6116..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes14_test/invokes.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.B1" - ], - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes14_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes14_test/invokes.txt new file mode 100644 index 00000000..8f88aee3 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes14_test/invokes.txt @@ -0,0 +1,10 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.B1 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes14_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes14_test/project/test/Main.kt index cbeb269d..c7a436f0 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes14_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes14_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withSubType().withAnnotations(FirstAnnotationTest::class) + val classes = Reflekt.classes().withSupertype().withAnnotations(FirstAnnotationTest::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes14_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes14_test/uses.json deleted file mode 100644 index a9e687e2..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes14_test/uses.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.B1" - ], - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes14_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes14_test/uses.txt new file mode 100644 index 00000000..bca00067 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes14_test/uses.txt @@ -0,0 +1,13 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.B1 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] + ], + objectsOrClasses: [] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes15_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes15_test/description.md index 64934140..6d119c25 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes15_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes15_test/description.md @@ -1,5 +1,5 @@ -### Classes: subtypes and annotations invokes +### Classes: supertypes and annotations invokes This project contains `Reflekt` invokes. -First use `withSubType` with the top-level class `B2`, +First use `withSupertype` with the top-level class `B2`, then use `withAnnotations` with one argument. The result of classes should not be empty. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes15_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes15_test/invokes.json deleted file mode 100644 index cf6153d9..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes15_test/invokes.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.B2" - ], - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes15_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes15_test/invokes.txt new file mode 100644 index 00000000..2140539e --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes15_test/invokes.txt @@ -0,0 +1,10 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.B2 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes15_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes15_test/project/test/Main.kt index a4c6995d..69ca54c0 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes15_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes15_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withSubType().withAnnotations(FirstAnnotationTest::class) + val classes = Reflekt.classes().withSupertype().withAnnotations(FirstAnnotationTest::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes15_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes15_test/uses.json deleted file mode 100644 index 44f425d5..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes15_test/uses.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.B2" - ], - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [ - "io.reflekt.test.B2" - ] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes15_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes15_test/uses.txt new file mode 100644 index 00000000..23c916e2 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes15_test/uses.txt @@ -0,0 +1,15 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.B2 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] + ], + objectsOrClasses: [ + io.reflekt.test.B2 + ] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes16_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes16_test/description.md index b8a6d456..f4c7850d 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes16_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes16_test/description.md @@ -1,5 +1,5 @@ -### Classes: subtypes and annotations invokes +### Classes: supertypes and annotations invokes This project contains `Reflekt` invokes. -First use `withSubType` with the top-level class `B2`, +First use `withSupertype` with the top-level class `B2`, then use `withAnnotations` with several arguments. The result of classes should not be empty. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes16_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes16_test/invokes.json deleted file mode 100644 index 825a0614..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes16_test/invokes.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.B2" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes16_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes16_test/invokes.txt new file mode 100644 index 00000000..cb543d08 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes16_test/invokes.txt @@ -0,0 +1,11 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.B2 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes16_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes16_test/project/test/Main.kt index 144ac4f7..0b67e4a3 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes16_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes16_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withSubType().withAnnotations(FirstAnnotationTest::class, SecondAnnotationTest::class) + val classes = Reflekt.classes().withSupertype().withAnnotations(FirstAnnotationTest::class, SecondAnnotationTest::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes16_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes16_test/uses.json deleted file mode 100644 index 27d8ed9c..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes16_test/uses.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.B2" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [ - "io.reflekt.test.B2" - ] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes16_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes16_test/uses.txt new file mode 100644 index 00000000..7f00e25c --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes16_test/uses.txt @@ -0,0 +1,16 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.B2 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] + ], + objectsOrClasses: [ + io.reflekt.test.B2 + ] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes17_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes17_test/description.md index 019968ee..16ecc6ce 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes17_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes17_test/description.md @@ -1,5 +1,5 @@ -### Classes: subtypes and annotations invokes +### Classes: supertypes and annotations invokes This project contains `Reflekt` invokes. -First use `withSubType` with the top-level class `B2`, +First use `withSupertype` with the top-level class `B2`, then use `withAnnotations` with several arguments. The result of classes should be empty. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes17_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes17_test/invokes.json deleted file mode 100644 index 0864f2e0..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes17_test/invokes.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.B1" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes17_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes17_test/invokes.txt new file mode 100644 index 00000000..4bbcee7d --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes17_test/invokes.txt @@ -0,0 +1,11 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.B1 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes17_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes17_test/project/test/Main.kt index 38c0764a..40d82cef 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes17_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes17_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withSubType().withAnnotations(FirstAnnotationTest::class, SecondAnnotationTest::class) + val classes = Reflekt.classes().withSupertype().withAnnotations(FirstAnnotationTest::class, SecondAnnotationTest::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes17_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes17_test/uses.json deleted file mode 100644 index 8dd25838..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes17_test/uses.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.B1" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes17_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes17_test/uses.txt new file mode 100644 index 00000000..2b406f75 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes17_test/uses.txt @@ -0,0 +1,14 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.B1 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] + ], + objectsOrClasses: [] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes18_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes18_test/description.md index 70873d03..af7edf4f 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes18_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes18_test/description.md @@ -1,5 +1,5 @@ -### Classes: subtypes and annotations invokes +### Classes: supertypes and annotations invokes This project contains `Reflekt` invokes. -First use `withSubType` with the not top-level `BInterfaceTest`, +First use `withSupertype` with the not top-level `BInterfaceTest`, then use `withAnnotations` without arguments. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes18_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes18_test/invokes.json deleted file mode 100644 index 8ee41152..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes18_test/invokes.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest" - ], - "annotations": [] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes18_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes18_test/invokes.txt new file mode 100644 index 00000000..db9dfeeb --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes18_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.BInterfaceTest + ], + annotations: [] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes18_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes18_test/project/test/Main.kt index b8f0bdd7..ca4eaba1 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes18_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes18_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withSubType().withAnnotations() + val classes = Reflekt.classes().withSupertype().withAnnotations() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes18_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes18_test/uses.json deleted file mode 100644 index 0f750ab7..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes18_test/uses.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest" - ], - "annotations": [] - }, - [ - "io.reflekt.test.B1", - "io.reflekt.test.B2", - "io.reflekt.test.B3", - "io.reflekt.test.B3.B4" - ] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes18_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes18_test/uses.txt new file mode 100644 index 00000000..cfe36d71 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes18_test/uses.txt @@ -0,0 +1,16 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.BInterfaceTest + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.B1, + io.reflekt.test.B2, + io.reflekt.test.B3, + io.reflekt.test.B3.B4 + ] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes19_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes19_test/description.md index 1b1f20a4..ffbc96e9 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes19_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes19_test/description.md @@ -1,5 +1,5 @@ -### Classes: subtypes and annotations invokes +### Classes: supertypes and annotations invokes This project contains `Reflekt` invokes. -First use `withSubType` with the not top-level `BInterfaceTest`, +First use `withSupertype` with the not top-level `BInterfaceTest`, then use `withAnnotations` with one argument. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes19_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes19_test/invokes.json deleted file mode 100644 index 0c745c0d..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes19_test/invokes.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest" - ] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes19_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes19_test/invokes.txt new file mode 100644 index 00000000..f68c8fcf --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes19_test/invokes.txt @@ -0,0 +1,10 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.BInterfaceTest + ], + annotations: [ + io.reflekt.test.SecondAnnotationTest + ] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes19_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes19_test/project/test/Main.kt index 7f5c45b2..bcfe6991 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes19_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes19_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withSubType().withAnnotations(SecondAnnotationTest::class) + val classes = Reflekt.classes().withSupertype().withAnnotations(SecondAnnotationTest::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes19_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes19_test/uses.json deleted file mode 100644 index 590458d3..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes19_test/uses.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest" - ] - }, - [ - "io.reflekt.test.B2", - "io.reflekt.test.B3" - ] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes19_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes19_test/uses.txt new file mode 100644 index 00000000..6564b177 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes19_test/uses.txt @@ -0,0 +1,16 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.BInterfaceTest + ], + annotations: [ + io.reflekt.test.SecondAnnotationTest + ] + ], + objectsOrClasses: [ + io.reflekt.test.B2, + io.reflekt.test.B3 + ] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes1_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes1_test/description.md index a8af051e..61e88ce1 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes1_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes1_test/description.md @@ -1,4 +1,4 @@ -### Classes: Only subtypes invokes +### Classes: Only supertypes invokes -This project contains `Reflekt` invokes, but all invokes are only subtypes. -Use only one `withSubType` invoked with the top-level type `B1`. +This project contains `Reflekt` invokes, but all invokes are only supertypes. +Use only one `withSupertype` invoked with the top-level type `B1`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes1_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes1_test/invokes.json deleted file mode 100644 index 35833fe7..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes1_test/invokes.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.B1" - ], - "annotations": [] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes1_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes1_test/invokes.txt new file mode 100644 index 00000000..5fbca976 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes1_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.B1 + ], + annotations: [] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes1_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes1_test/project/test/Main.kt index 8d717155..8cc3eca6 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes1_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes1_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withSubType() + val classes = Reflekt.classes().withSupertype() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes1_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes1_test/uses.json deleted file mode 100644 index 2b407e04..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes1_test/uses.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.B1" - ], - "annotations": [] - }, - [ - "io.reflekt.test.B1" - ] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes1_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes1_test/uses.txt new file mode 100644 index 00000000..7ec3a739 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes1_test/uses.txt @@ -0,0 +1,13 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.B1 + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.B1 + ] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes20_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes20_test/description.md index ae439353..015b2fa1 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes20_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes20_test/description.md @@ -1,5 +1,5 @@ -### Classes: subtypes and annotations invokes +### Classes: supertypes and annotations invokes This project contains `Reflekt` invokes. -First use `withSubType` with the not top-level `BInterfaceTest`, +First use `withSupertype` with the not top-level `BInterfaceTest`, then use `withAnnotations` with several arguments. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes20_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes20_test/invokes.json deleted file mode 100644 index fda5ddc3..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes20_test/invokes.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes20_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes20_test/invokes.txt new file mode 100644 index 00000000..c5e2389f --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes20_test/invokes.txt @@ -0,0 +1,11 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.BInterfaceTest + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes20_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes20_test/project/test/Main.kt index e4a9eef5..8e2e5a72 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes20_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes20_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withSubType().withAnnotations(SecondAnnotationTest::class, FirstAnnotationTest::class) + val classes = Reflekt.classes().withSupertype().withAnnotations(SecondAnnotationTest::class, FirstAnnotationTest::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes20_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes20_test/uses.json deleted file mode 100644 index 472f0f78..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes20_test/uses.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [ - "io.reflekt.test.B2", - "io.reflekt.test.B3" - ] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes20_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes20_test/uses.txt new file mode 100644 index 00000000..32dbc12c --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes20_test/uses.txt @@ -0,0 +1,17 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.BInterfaceTest + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] + ], + objectsOrClasses: [ + io.reflekt.test.B2, + io.reflekt.test.B3 + ] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes21_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes21_test/description.md index bc426c9e..cd8ac60c 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes21_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes21_test/description.md @@ -1,5 +1,5 @@ -### Classes: subtypes and annotations invokes +### Classes: supertypes and annotations invokes This project contains `Reflekt` invokes. -First use `withSubTypes` without arguments, +First use `withSupertypes` without arguments, then use `withAnnotations` without arguments. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes21_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes21_test/invokes.json deleted file mode 100644 index 35833fe7..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes21_test/invokes.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.B1" - ], - "annotations": [] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes21_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes21_test/invokes.txt new file mode 100644 index 00000000..5fbca976 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes21_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.B1 + ], + annotations: [] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes21_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes21_test/project/test/Main.kt index ae54f449..0c59a264 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes21_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes21_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withSubTypes().withAnnotations() + val classes = Reflekt.classes().withSupertypes().withAnnotations() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes21_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes21_test/uses.json deleted file mode 100644 index 2b407e04..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes21_test/uses.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.B1" - ], - "annotations": [] - }, - [ - "io.reflekt.test.B1" - ] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes21_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes21_test/uses.txt new file mode 100644 index 00000000..7ec3a739 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes21_test/uses.txt @@ -0,0 +1,13 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.B1 + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.B1 + ] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes22_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes22_test/description.md index ed7da2f7..b469ad85 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes22_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes22_test/description.md @@ -1,5 +1,5 @@ -### Classes: subtypes and annotations invokes +### Classes: supertypes and annotations invokes This project contains `Reflekt` invokes. -First use `withSubTypes` with the top-level class `B1`, +First use `withSupertypes` with the top-level class `B1`, then use `withAnnotations` without arguments. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes22_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes22_test/invokes.json deleted file mode 100644 index 35833fe7..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes22_test/invokes.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.B1" - ], - "annotations": [] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes22_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes22_test/invokes.txt new file mode 100644 index 00000000..5fbca976 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes22_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.B1 + ], + annotations: [] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes22_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes22_test/project/test/Main.kt index 8b07e72a..99fc5f78 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes22_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes22_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withSubTypes(B1::class).withAnnotations() + val classes = Reflekt.classes().withSupertypes(B1::class).withAnnotations() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes22_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes22_test/uses.json deleted file mode 100644 index 2b407e04..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes22_test/uses.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.B1" - ], - "annotations": [] - }, - [ - "io.reflekt.test.B1" - ] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes22_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes22_test/uses.txt new file mode 100644 index 00000000..7ec3a739 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes22_test/uses.txt @@ -0,0 +1,13 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.B1 + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.B1 + ] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes23_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes23_test/description.md index ef90db2d..8be64af1 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes23_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes23_test/description.md @@ -1,5 +1,5 @@ -### Classes: subtypes and annotations invokes +### Classes: supertypes and annotations invokes This project contains `Reflekt` invokes. -First use `withSubTypes` with the top-level class `B1`, +First use `withSupertypes` with the top-level class `B1`, then use `withAnnotations` without arguments. The result of classes should be empty. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes23_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes23_test/invokes.json deleted file mode 100644 index 861a6116..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes23_test/invokes.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.B1" - ], - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes23_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes23_test/invokes.txt new file mode 100644 index 00000000..8f88aee3 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes23_test/invokes.txt @@ -0,0 +1,10 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.B1 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes23_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes23_test/project/test/Main.kt index 23e0c994..6cc45a21 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes23_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes23_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withSubTypes(B1::class).withAnnotations(FirstAnnotationTest::class) + val classes = Reflekt.classes().withSupertypes(B1::class).withAnnotations(FirstAnnotationTest::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes23_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes23_test/uses.json deleted file mode 100644 index a9e687e2..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes23_test/uses.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.B1" - ], - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes23_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes23_test/uses.txt new file mode 100644 index 00000000..bca00067 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes23_test/uses.txt @@ -0,0 +1,13 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.B1 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] + ], + objectsOrClasses: [] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes24_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes24_test/description.md index ab902bc5..01f8c19c 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes24_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes24_test/description.md @@ -1,5 +1,5 @@ -### Classes: subtypes and annotations invokes +### Classes: supertypes and annotations invokes This project contains `Reflekt` invokes. -First use `withSubTypes` with the top-level class `B3`, +First use `withSupertypes` with the top-level class `B3`, then use `withAnnotations` without arguments. The result of classes should not be empty. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes24_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes24_test/invokes.json deleted file mode 100644 index 8f661cb1..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes24_test/invokes.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.B3" - ], - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes24_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes24_test/invokes.txt new file mode 100644 index 00000000..55cbea7a --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes24_test/invokes.txt @@ -0,0 +1,10 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.B3 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes24_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes24_test/project/test/Main.kt index bc643f8e..6d55997f 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes24_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes24_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withSubTypes(B3::class).withAnnotations(FirstAnnotationTest::class) + val classes = Reflekt.classes().withSupertypes(B3::class).withAnnotations(FirstAnnotationTest::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes24_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes24_test/uses.json deleted file mode 100644 index 739bb1d9..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes24_test/uses.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.B3" - ], - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [ - "io.reflekt.test.B3" - ] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes24_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes24_test/uses.txt new file mode 100644 index 00000000..9b4222b1 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes24_test/uses.txt @@ -0,0 +1,15 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.B3 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] + ], + objectsOrClasses: [ + io.reflekt.test.B3 + ] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes25_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes25_test/description.md index cf347e73..3acf48b4 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes25_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes25_test/description.md @@ -1,5 +1,5 @@ -### Classes: subtypes and annotations invokes +### Classes: supertypes and annotations invokes This project contains `Reflekt` invokes. -First use `withSubTypes` with the top-level class `B3`, +First use `withSupertypes` with the top-level class `B3`, then use `withAnnotations` with several arguments. The result of classes should not be empty. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes25_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes25_test/invokes.json deleted file mode 100644 index 1172ff17..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes25_test/invokes.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.B3" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes25_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes25_test/invokes.txt new file mode 100644 index 00000000..069c1e5a --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes25_test/invokes.txt @@ -0,0 +1,11 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.B3 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes25_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes25_test/project/test/Main.kt index faefa887..8c179efd 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes25_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes25_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withSubTypes(B3::class).withAnnotations(FirstAnnotationTest::class, SecondAnnotationTest::class) + val classes = Reflekt.classes().withSupertypes(B3::class).withAnnotations(FirstAnnotationTest::class, SecondAnnotationTest::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes25_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes25_test/uses.json deleted file mode 100644 index df05dbd9..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes25_test/uses.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.B3" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [ - "io.reflekt.test.B3" - ] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes25_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes25_test/uses.txt new file mode 100644 index 00000000..3a8ada56 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes25_test/uses.txt @@ -0,0 +1,16 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.B3 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] + ], + objectsOrClasses: [ + io.reflekt.test.B3 + ] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes26_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes26_test/description.md index abc76a9d..738390ad 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes26_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes26_test/description.md @@ -1,5 +1,5 @@ -### Classes: subtypes and annotations invokes +### Classes: supertypes and annotations invokes This project contains `Reflekt` invokes. -First use `withSubTypes` with the top-level class `B1`, +First use `withSupertypes` with the top-level class `B1`, then use `withAnnotations` with several arguments. The result of classes should be empty. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes26_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes26_test/invokes.json deleted file mode 100644 index 0864f2e0..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes26_test/invokes.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.B1" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes26_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes26_test/invokes.txt new file mode 100644 index 00000000..4bbcee7d --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes26_test/invokes.txt @@ -0,0 +1,11 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.B1 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes26_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes26_test/project/test/Main.kt index 26eb8912..4cf07daf 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes26_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes26_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withSubTypes(B1::class).withAnnotations(FirstAnnotationTest::class, SecondAnnotationTest::class) + val classes = Reflekt.classes().withSupertypes(B1::class).withAnnotations(FirstAnnotationTest::class, SecondAnnotationTest::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes26_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes26_test/uses.json deleted file mode 100644 index 8dd25838..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes26_test/uses.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.B1" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes26_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes26_test/uses.txt new file mode 100644 index 00000000..2b406f75 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes26_test/uses.txt @@ -0,0 +1,14 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.B1 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] + ], + objectsOrClasses: [] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes27_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes27_test/description.md index bac30752..44cfa0df 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes27_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes27_test/description.md @@ -1,5 +1,5 @@ -### Classes: subtypes and annotations invokes +### Classes: supertypes and annotations invokes This project contains `Reflekt` invokes. -First use `withSubTypes` with the not top-level `BInterfaceTest`, +First use `withSupertypes` with the not top-level `BInterfaceTest`, then use `withAnnotations` without arguments. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes27_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes27_test/invokes.json deleted file mode 100644 index 8ee41152..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes27_test/invokes.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest" - ], - "annotations": [] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes27_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes27_test/invokes.txt new file mode 100644 index 00000000..db9dfeeb --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes27_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.BInterfaceTest + ], + annotations: [] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes27_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes27_test/project/test/Main.kt index e84acb52..33cdbcf9 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes27_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes27_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withSubTypes(BInterfaceTest::class).withAnnotations() + val classes = Reflekt.classes().withSupertypes(BInterfaceTest::class).withAnnotations() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes27_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes27_test/uses.json deleted file mode 100644 index 0f750ab7..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes27_test/uses.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest" - ], - "annotations": [] - }, - [ - "io.reflekt.test.B1", - "io.reflekt.test.B2", - "io.reflekt.test.B3", - "io.reflekt.test.B3.B4" - ] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes27_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes27_test/uses.txt new file mode 100644 index 00000000..cfe36d71 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes27_test/uses.txt @@ -0,0 +1,16 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.BInterfaceTest + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.B1, + io.reflekt.test.B2, + io.reflekt.test.B3, + io.reflekt.test.B3.B4 + ] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes28_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes28_test/description.md index 66b2170e..d9a72e02 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes28_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes28_test/description.md @@ -1,5 +1,5 @@ -### Classes: subtypes and annotations invokes +### Classes: supertypes and annotations invokes This project contains `Reflekt` invokes. -First use `withSubTypes` with the not top-level `BInterfaceTest`, +First use `withSupertypes` with the not top-level `BInterfaceTest`, then use `withAnnotations` with one argument. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes28_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes28_test/invokes.json deleted file mode 100644 index 0c745c0d..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes28_test/invokes.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest" - ] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes28_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes28_test/invokes.txt new file mode 100644 index 00000000..f68c8fcf --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes28_test/invokes.txt @@ -0,0 +1,10 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.BInterfaceTest + ], + annotations: [ + io.reflekt.test.SecondAnnotationTest + ] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes28_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes28_test/project/test/Main.kt index 15077f7a..2c9432ac 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes28_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes28_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withSubTypes(BInterfaceTest::class).withAnnotations(SecondAnnotationTest::class) + val classes = Reflekt.classes().withSupertypes(BInterfaceTest::class).withAnnotations(SecondAnnotationTest::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes28_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes28_test/uses.json deleted file mode 100644 index 590458d3..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes28_test/uses.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest" - ] - }, - [ - "io.reflekt.test.B2", - "io.reflekt.test.B3" - ] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes28_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes28_test/uses.txt new file mode 100644 index 00000000..6564b177 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes28_test/uses.txt @@ -0,0 +1,16 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.BInterfaceTest + ], + annotations: [ + io.reflekt.test.SecondAnnotationTest + ] + ], + objectsOrClasses: [ + io.reflekt.test.B2, + io.reflekt.test.B3 + ] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes29_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes29_test/description.md index d3c06da8..5613602d 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes29_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes29_test/description.md @@ -1,5 +1,5 @@ -### Classes: subtypes and annotations invokes +### Classes: supertypes and annotations invokes This project contains `Reflekt` invokes. -First use `withSubTypes` with the not top-level `BInterfaceTest`, +First use `withSupertypes` with the not top-level `BInterfaceTest`, then use `withAnnotations` with several arguments. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes29_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes29_test/invokes.json deleted file mode 100644 index fda5ddc3..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes29_test/invokes.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes29_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes29_test/invokes.txt new file mode 100644 index 00000000..c5e2389f --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes29_test/invokes.txt @@ -0,0 +1,11 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.BInterfaceTest + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes29_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes29_test/project/test/Main.kt index dfb7c272..a0601728 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes29_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes29_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withSubTypes(BInterfaceTest::class).withAnnotations(SecondAnnotationTest::class, FirstAnnotationTest::class) + val classes = Reflekt.classes().withSupertypes(BInterfaceTest::class).withAnnotations(SecondAnnotationTest::class, FirstAnnotationTest::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes29_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes29_test/uses.json deleted file mode 100644 index 472f0f78..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes29_test/uses.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [ - "io.reflekt.test.B2", - "io.reflekt.test.B3" - ] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes29_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes29_test/uses.txt new file mode 100644 index 00000000..32dbc12c --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes29_test/uses.txt @@ -0,0 +1,17 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.BInterfaceTest + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] + ], + objectsOrClasses: [ + io.reflekt.test.B2, + io.reflekt.test.B3 + ] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes2_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes2_test/description.md index b1e8fdb1..6abd2ce7 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes2_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes2_test/description.md @@ -1,4 +1,4 @@ -### Classes: Only subtypes invokes +### Classes: Only supertypes invokes -This project contains `Reflekt` invokes, but all invokes are only subtypes. -Use only one `withSubTypes` invoked with the top-level type `B1`. +This project contains `Reflekt` invokes, but all invokes are only supertypes. +Use only one `withSupertypes` invoked with the top-level type `B1`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes2_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes2_test/invokes.json deleted file mode 100644 index 35833fe7..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes2_test/invokes.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.B1" - ], - "annotations": [] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes2_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes2_test/invokes.txt new file mode 100644 index 00000000..5fbca976 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes2_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.B1 + ], + annotations: [] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes2_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes2_test/project/test/Main.kt index c302af7a..b4c079e2 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes2_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes2_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withSubTypes(B1::class) + val classes = Reflekt.classes().withSupertypes(B1::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes2_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes2_test/uses.json deleted file mode 100644 index 2b407e04..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes2_test/uses.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.B1" - ], - "annotations": [] - }, - [ - "io.reflekt.test.B1" - ] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes2_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes2_test/uses.txt new file mode 100644 index 00000000..7ec3a739 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes2_test/uses.txt @@ -0,0 +1,13 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.B1 + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.B1 + ] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes30_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes30_test/description.md index ed45bf80..71417d94 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes30_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes30_test/description.md @@ -1,5 +1,5 @@ -### Classes: subtypes and annotations invokes +### Classes: supertypes and annotations invokes This project contains `Reflekt` invokes. First use `withAnnotations` without arguments, -then use `withSubType` with the top-level class `B1`. +then use `withSupertype` with the top-level class `B1`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes30_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes30_test/invokes.json deleted file mode 100644 index 35833fe7..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes30_test/invokes.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.B1" - ], - "annotations": [] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes30_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes30_test/invokes.txt new file mode 100644 index 00000000..5fbca976 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes30_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.B1 + ], + annotations: [] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes30_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes30_test/project/test/Main.kt index c5e1791d..c49decdb 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes30_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes30_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withAnnotations().withSubType() + val classes = Reflekt.classes().withAnnotations().withSupertype() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes30_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes30_test/uses.json deleted file mode 100644 index 2b407e04..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes30_test/uses.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.B1" - ], - "annotations": [] - }, - [ - "io.reflekt.test.B1" - ] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes30_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes30_test/uses.txt new file mode 100644 index 00000000..7ec3a739 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes30_test/uses.txt @@ -0,0 +1,13 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.B1 + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.B1 + ] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes31_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes31_test/description.md index 16620c93..ac1b9366 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes31_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes31_test/description.md @@ -1,5 +1,5 @@ -### Classes: subtypes and annotations invokes +### Classes: supertypes and annotations invokes This project contains `Reflekt` invokes. First use `withAnnotations` with one argument. The result of objects should be empty, -then use `withSubType` with the top-level class `B1`. +then use `withSupertype` with the top-level class `B1`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes31_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes31_test/invokes.json deleted file mode 100644 index 861a6116..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes31_test/invokes.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.B1" - ], - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes31_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes31_test/invokes.txt new file mode 100644 index 00000000..8f88aee3 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes31_test/invokes.txt @@ -0,0 +1,10 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.B1 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes31_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes31_test/project/test/Main.kt index c85bfbf1..efcfaa60 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes31_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes31_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withAnnotations(FirstAnnotationTest::class).withSubType() + val classes = Reflekt.classes().withAnnotations(FirstAnnotationTest::class).withSupertype() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes31_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes31_test/uses.json deleted file mode 100644 index a9e687e2..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes31_test/uses.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.B1" - ], - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes31_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes31_test/uses.txt new file mode 100644 index 00000000..bca00067 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes31_test/uses.txt @@ -0,0 +1,13 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.B1 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] + ], + objectsOrClasses: [] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes32_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes32_test/description.md index 29f5ebb0..33031071 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes32_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes32_test/description.md @@ -1,5 +1,5 @@ -### Classes: subtypes and annotations invokes +### Classes: supertypes and annotations invokes This project contains `Reflekt` invokes. First use `withAnnotations` with one argument. The result of objects should not be empty, -then use `withSubType` with the top-level class `B3`. +then use `withSupertype` with the top-level class `B3`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes32_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes32_test/invokes.json deleted file mode 100644 index 8f661cb1..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes32_test/invokes.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.B3" - ], - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes32_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes32_test/invokes.txt new file mode 100644 index 00000000..55cbea7a --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes32_test/invokes.txt @@ -0,0 +1,10 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.B3 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes32_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes32_test/project/test/Main.kt index 2459faf6..ea1a4f0e 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes32_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes32_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withAnnotations(FirstAnnotationTest::class).withSubType() + val classes = Reflekt.classes().withAnnotations(FirstAnnotationTest::class).withSupertype() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes32_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes32_test/uses.json deleted file mode 100644 index 739bb1d9..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes32_test/uses.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.B3" - ], - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [ - "io.reflekt.test.B3" - ] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes32_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes32_test/uses.txt new file mode 100644 index 00000000..9b4222b1 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes32_test/uses.txt @@ -0,0 +1,15 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.B3 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] + ], + objectsOrClasses: [ + io.reflekt.test.B3 + ] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes33_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes33_test/description.md index 4b700f87..d064ed31 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes33_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes33_test/description.md @@ -1,5 +1,5 @@ -### Classes: subtypes and annotations invokes +### Classes: supertypes and annotations invokes This project contains `Reflekt` invokes. First use `withAnnotations` with several arguments. The result of objects should not be empty, -then use `withSubType` with the top-level class `B3`. +then use `withSupertype` with the top-level class `B3`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes33_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes33_test/invokes.json deleted file mode 100644 index 1172ff17..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes33_test/invokes.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.B3" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes33_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes33_test/invokes.txt new file mode 100644 index 00000000..069c1e5a --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes33_test/invokes.txt @@ -0,0 +1,11 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.B3 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes33_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes33_test/project/test/Main.kt index 4d8a3e7c..13abb60e 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes33_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes33_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withAnnotations(FirstAnnotationTest::class, SecondAnnotationTest::class).withSubType() + val classes = Reflekt.classes().withAnnotations(FirstAnnotationTest::class, SecondAnnotationTest::class).withSupertype() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes33_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes33_test/uses.json deleted file mode 100644 index df05dbd9..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes33_test/uses.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.B3" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [ - "io.reflekt.test.B3" - ] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes33_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes33_test/uses.txt new file mode 100644 index 00000000..3a8ada56 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes33_test/uses.txt @@ -0,0 +1,16 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.B3 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] + ], + objectsOrClasses: [ + io.reflekt.test.B3 + ] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes34_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes34_test/description.md index 33181718..d419fce6 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes34_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes34_test/description.md @@ -1,5 +1,5 @@ -### Classes: subtypes and annotations invokes +### Classes: supertypes and annotations invokes This project contains `Reflekt` invokes. First use `withAnnotations` with several arguments. The result of objects should be empty, -then use `withSubType` with the top-level class `B1`. +then use `withSupertype` with the top-level class `B1`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes34_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes34_test/invokes.json deleted file mode 100644 index 0864f2e0..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes34_test/invokes.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.B1" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes34_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes34_test/invokes.txt new file mode 100644 index 00000000..4bbcee7d --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes34_test/invokes.txt @@ -0,0 +1,11 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.B1 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes34_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes34_test/project/test/Main.kt index 4d75bccc..63909f5b 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes34_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes34_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withAnnotations(FirstAnnotationTest::class, SecondAnnotationTest::class).withSubType() + val classes = Reflekt.classes().withAnnotations(FirstAnnotationTest::class, SecondAnnotationTest::class).withSupertype() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes34_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes34_test/uses.json deleted file mode 100644 index 8dd25838..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes34_test/uses.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.B1" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes34_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes34_test/uses.txt new file mode 100644 index 00000000..2b406f75 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes34_test/uses.txt @@ -0,0 +1,14 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.B1 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] + ], + objectsOrClasses: [] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes35_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes35_test/description.md index 0b1d416c..5c38ba92 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes35_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes35_test/description.md @@ -1,5 +1,5 @@ -### Classes: subtypes and annotations invokes +### Classes: supertypes and annotations invokes This project contains `Reflekt` invokes. First use `withAnnotations` without arguments, -then use `withSubType` with the not top-level `BInterfaceTest`. +then use `withSupertype` with the not top-level `BInterfaceTest`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes35_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes35_test/invokes.json deleted file mode 100644 index 8ee41152..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes35_test/invokes.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest" - ], - "annotations": [] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes35_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes35_test/invokes.txt new file mode 100644 index 00000000..db9dfeeb --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes35_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.BInterfaceTest + ], + annotations: [] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes35_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes35_test/project/test/Main.kt index 180a43fb..5724c5df 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes35_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes35_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withAnnotations().withSubType() + val classes = Reflekt.classes().withAnnotations().withSupertype() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes35_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes35_test/uses.json deleted file mode 100644 index 0f750ab7..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes35_test/uses.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest" - ], - "annotations": [] - }, - [ - "io.reflekt.test.B1", - "io.reflekt.test.B2", - "io.reflekt.test.B3", - "io.reflekt.test.B3.B4" - ] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes35_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes35_test/uses.txt new file mode 100644 index 00000000..cfe36d71 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes35_test/uses.txt @@ -0,0 +1,16 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.BInterfaceTest + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.B1, + io.reflekt.test.B2, + io.reflekt.test.B3, + io.reflekt.test.B3.B4 + ] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes36_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes36_test/description.md index 6e957747..68ad852a 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes36_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes36_test/description.md @@ -1,5 +1,5 @@ -### Classes: subtypes and annotations invokes +### Classes: supertypes and annotations invokes This project contains `Reflekt` invokes. First use `withAnnotations` with one argument, -then use `withSubType` with the not top-level `BInterfaceTest`. +then use `withSupertype` with the not top-level `BInterfaceTest`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes36_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes36_test/invokes.json deleted file mode 100644 index 0c745c0d..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes36_test/invokes.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest" - ] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes36_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes36_test/invokes.txt new file mode 100644 index 00000000..f68c8fcf --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes36_test/invokes.txt @@ -0,0 +1,10 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.BInterfaceTest + ], + annotations: [ + io.reflekt.test.SecondAnnotationTest + ] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes36_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes36_test/project/test/Main.kt index f03aa042..4bf203d9 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes36_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes36_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withAnnotations(SecondAnnotationTest::class).withSubType() + val classes = Reflekt.classes().withAnnotations(SecondAnnotationTest::class).withSupertype() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes36_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes36_test/uses.json deleted file mode 100644 index 590458d3..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes36_test/uses.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest" - ] - }, - [ - "io.reflekt.test.B2", - "io.reflekt.test.B3" - ] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes36_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes36_test/uses.txt new file mode 100644 index 00000000..6564b177 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes36_test/uses.txt @@ -0,0 +1,16 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.BInterfaceTest + ], + annotations: [ + io.reflekt.test.SecondAnnotationTest + ] + ], + objectsOrClasses: [ + io.reflekt.test.B2, + io.reflekt.test.B3 + ] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes37_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes37_test/description.md index 190c71e9..88efc04b 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes37_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes37_test/description.md @@ -1,5 +1,5 @@ -### Classes: subtypes and annotations invokes +### Classes: supertypes and annotations invokes This project contains `Reflekt` invokes. First use `withAnnotations` with several arguments, -then use `withSubType` with the not top-level `BInterfaceTest`. +then use `withSupertype` with the not top-level `BInterfaceTest`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes37_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes37_test/invokes.json deleted file mode 100644 index fda5ddc3..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes37_test/invokes.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes37_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes37_test/invokes.txt new file mode 100644 index 00000000..c5e2389f --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes37_test/invokes.txt @@ -0,0 +1,11 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.BInterfaceTest + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes37_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes37_test/project/test/Main.kt index dd3c9504..8d736d58 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes37_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes37_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withAnnotations(SecondAnnotationTest::class, FirstAnnotationTest::class).withSubType() + val classes = Reflekt.classes().withAnnotations(SecondAnnotationTest::class, FirstAnnotationTest::class).withSupertype() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes37_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes37_test/uses.json deleted file mode 100644 index 472f0f78..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes37_test/uses.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [ - "io.reflekt.test.B2", - "io.reflekt.test.B3" - ] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes37_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes37_test/uses.txt new file mode 100644 index 00000000..32dbc12c --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes37_test/uses.txt @@ -0,0 +1,17 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.BInterfaceTest + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] + ], + objectsOrClasses: [ + io.reflekt.test.B2, + io.reflekt.test.B3 + ] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes38_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes38_test/description.md index 4d00d6bb..204c8b94 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes38_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes38_test/description.md @@ -1,5 +1,5 @@ -### Classes: subtypes and annotations invokes +### Classes: supertypes and annotations invokes This project contains `Reflekt` invokes. First use `withAnnotations` without arguments, -then use `withSubTypes` without arguments. +then use `withSupertypes` without arguments. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes38_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes38_test/invokes.json deleted file mode 100644 index 35833fe7..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes38_test/invokes.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.B1" - ], - "annotations": [] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes38_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes38_test/invokes.txt new file mode 100644 index 00000000..5fbca976 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes38_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.B1 + ], + annotations: [] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes38_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes38_test/project/test/Main.kt index dbc3dbad..ed254c75 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes38_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes38_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withAnnotations().withSubTypes() + val classes = Reflekt.classes().withAnnotations().withSupertypes() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes38_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes38_test/uses.json deleted file mode 100644 index 2b407e04..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes38_test/uses.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.B1" - ], - "annotations": [] - }, - [ - "io.reflekt.test.B1" - ] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes38_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes38_test/uses.txt new file mode 100644 index 00000000..7ec3a739 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes38_test/uses.txt @@ -0,0 +1,13 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.B1 + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.B1 + ] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes39_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes39_test/description.md index 7312d223..1db671ae 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes39_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes39_test/description.md @@ -1,5 +1,5 @@ -### Classes: subtypes and annotations invokes +### Classes: supertypes and annotations invokes This project contains `Reflekt` invokes. First use `withAnnotations` without arguments, -then use `withSubTypes` with the top-level class `B1`. +then use `withSupertypes` with the top-level class `B1`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes39_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes39_test/invokes.json deleted file mode 100644 index 35833fe7..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes39_test/invokes.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.B1" - ], - "annotations": [] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes39_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes39_test/invokes.txt new file mode 100644 index 00000000..5fbca976 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes39_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.B1 + ], + annotations: [] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes39_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes39_test/project/test/Main.kt index 755aac8b..d1a96f92 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes39_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes39_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withAnnotations().withSubTypes(B1::class) + val classes = Reflekt.classes().withAnnotations().withSupertypes(B1::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes39_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes39_test/uses.json deleted file mode 100644 index 2b407e04..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes39_test/uses.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.B1" - ], - "annotations": [] - }, - [ - "io.reflekt.test.B1" - ] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes39_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes39_test/uses.txt new file mode 100644 index 00000000..7ec3a739 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes39_test/uses.txt @@ -0,0 +1,13 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.B1 + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.B1 + ] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes3_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes3_test/description.md index f8000de9..7b185629 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes3_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes3_test/description.md @@ -1,4 +1,4 @@ -### Classes: Only subtypes invokes +### Classes: Only supertypes invokes -This project contains `Reflekt` invokes, but all invokes are only subtypes. -Use one `withSubTypes` and one `withSubType` invoked with the top-level type `B1`. +This project contains `Reflekt` invokes, but all invokes are only supertypes. +Use one `withSupertypes` and one `withSupertype` invoked with the top-level type `B1`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes3_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes3_test/invokes.json deleted file mode 100644 index 35833fe7..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes3_test/invokes.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.B1" - ], - "annotations": [] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes3_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes3_test/invokes.txt new file mode 100644 index 00000000..5fbca976 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes3_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.B1 + ], + annotations: [] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes3_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes3_test/project/test/Main.kt index 96a640b2..f1ff6f81 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes3_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes3_test/project/test/Main.kt @@ -3,6 +3,6 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withSubTypes(B1::class) - val classes1 = Reflekt.classes().withSubType() + val classes = Reflekt.classes().withSupertypes(B1::class) + val classes1 = Reflekt.classes().withSupertype() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes3_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes3_test/uses.json deleted file mode 100644 index 2b407e04..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes3_test/uses.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.B1" - ], - "annotations": [] - }, - [ - "io.reflekt.test.B1" - ] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes3_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes3_test/uses.txt new file mode 100644 index 00000000..7ec3a739 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes3_test/uses.txt @@ -0,0 +1,13 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.B1 + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.B1 + ] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes40_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes40_test/description.md index 6a48946e..30733342 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes40_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes40_test/description.md @@ -1,5 +1,5 @@ -### Classes: subtypes and annotations invokes +### Classes: supertypes and annotations invokes This project contains `Reflekt` invokes. First use `withAnnotations` with one argument. The result of classes should be empty, -then use `withSubTypes` with the top-level class `B1`. +then use `withSupertypes` with the top-level class `B1`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes40_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes40_test/invokes.json deleted file mode 100644 index 861a6116..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes40_test/invokes.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.B1" - ], - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes40_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes40_test/invokes.txt new file mode 100644 index 00000000..8f88aee3 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes40_test/invokes.txt @@ -0,0 +1,10 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.B1 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes40_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes40_test/project/test/Main.kt index 08a583f4..2e7bbb02 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes40_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes40_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withAnnotations(FirstAnnotationTest::class).withSubTypes(B1::class) + val classes = Reflekt.classes().withAnnotations(FirstAnnotationTest::class).withSupertypes(B1::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes40_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes40_test/uses.json deleted file mode 100644 index a9e687e2..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes40_test/uses.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.B1" - ], - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes40_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes40_test/uses.txt new file mode 100644 index 00000000..bca00067 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes40_test/uses.txt @@ -0,0 +1,13 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.B1 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] + ], + objectsOrClasses: [] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes41_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes41_test/description.md index a915da31..626e856b 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes41_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes41_test/description.md @@ -1,5 +1,5 @@ -### Classes: subtypes and annotations invokes +### Classes: supertypes and annotations invokes This project contains `Reflekt` invokes. First use `withAnnotations` with one argument. The result of classes should not be empty, -then use `withSubTypes` with the top-level class `B3`. +then use `withSupertypes` with the top-level class `B3`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes41_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes41_test/invokes.json deleted file mode 100644 index 8f661cb1..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes41_test/invokes.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.B3" - ], - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes41_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes41_test/invokes.txt new file mode 100644 index 00000000..55cbea7a --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes41_test/invokes.txt @@ -0,0 +1,10 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.B3 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes41_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes41_test/project/test/Main.kt index 0b1c36ad..12d1d245 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes41_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes41_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withAnnotations(FirstAnnotationTest::class).withSubTypes(B3::class) + val classes = Reflekt.classes().withAnnotations(FirstAnnotationTest::class).withSupertypes(B3::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes41_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes41_test/uses.json deleted file mode 100644 index 739bb1d9..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes41_test/uses.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.B3" - ], - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [ - "io.reflekt.test.B3" - ] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes41_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes41_test/uses.txt new file mode 100644 index 00000000..9b4222b1 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes41_test/uses.txt @@ -0,0 +1,15 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.B3 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] + ], + objectsOrClasses: [ + io.reflekt.test.B3 + ] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes42_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes42_test/description.md index 316fae0c..07f91b31 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes42_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes42_test/description.md @@ -1,5 +1,5 @@ -### Classes: subtypes and annotations invokes +### Classes: supertypes and annotations invokes This project contains `Reflekt` invokes. First use `withAnnotations` with several arguments. The result of classes should not be empty, -then use `withSubTypes` with the top-level class `B3`. +then use `withSupertypes` with the top-level class `B3`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes42_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes42_test/invokes.json deleted file mode 100644 index 1172ff17..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes42_test/invokes.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.B3" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes42_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes42_test/invokes.txt new file mode 100644 index 00000000..069c1e5a --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes42_test/invokes.txt @@ -0,0 +1,11 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.B3 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes42_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes42_test/project/test/Main.kt index 76c10f0f..aa3e9bdd 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes42_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes42_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withAnnotations(FirstAnnotationTest::class, SecondAnnotationTest::class).withSubTypes(B3::class) + val classes = Reflekt.classes().withAnnotations(FirstAnnotationTest::class, SecondAnnotationTest::class).withSupertypes(B3::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes42_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes42_test/uses.json deleted file mode 100644 index df05dbd9..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes42_test/uses.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.B3" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [ - "io.reflekt.test.B3" - ] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes42_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes42_test/uses.txt new file mode 100644 index 00000000..3a8ada56 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes42_test/uses.txt @@ -0,0 +1,16 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.B3 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] + ], + objectsOrClasses: [ + io.reflekt.test.B3 + ] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes43_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes43_test/description.md index efd32e40..9e7f38e7 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes43_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes43_test/description.md @@ -1,5 +1,5 @@ -### Classes: subtypes and annotations invokes +### Classes: supertypes and annotations invokes This project contains `Reflekt` invokes. First use `withAnnotations` with several arguments. The result of classes should be empty, -then use `withSubTypes` with the top-level class `B3`. +then use `withSupertypes` with the top-level class `B3`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes43_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes43_test/invokes.json deleted file mode 100644 index 0864f2e0..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes43_test/invokes.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.B1" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes43_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes43_test/invokes.txt new file mode 100644 index 00000000..4bbcee7d --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes43_test/invokes.txt @@ -0,0 +1,11 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.B1 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes43_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes43_test/project/test/Main.kt index 49fe5363..714b8d2e 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes43_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes43_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withAnnotations(FirstAnnotationTest::class, SecondAnnotationTest::class).withSubTypes(B1::class) + val classes = Reflekt.classes().withAnnotations(FirstAnnotationTest::class, SecondAnnotationTest::class).withSupertypes(B1::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes43_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes43_test/uses.json deleted file mode 100644 index 8dd25838..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes43_test/uses.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.B1" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes43_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes43_test/uses.txt new file mode 100644 index 00000000..2b406f75 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes43_test/uses.txt @@ -0,0 +1,14 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.B1 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] + ], + objectsOrClasses: [] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes44_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes44_test/description.md index d2e6ad38..c87579a2 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes44_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes44_test/description.md @@ -1,5 +1,5 @@ -### Classes: subtypes and annotations invokes +### Classes: supertypes and annotations invokes This project contains `Reflekt` invokes. First use `withAnnotations` without arguments, -then use `withSubTypes` with the not top-level `BInterfaceTest`. +then use `withSupertypes` with the not top-level `BInterfaceTest`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes44_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes44_test/invokes.json deleted file mode 100644 index 8ee41152..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes44_test/invokes.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest" - ], - "annotations": [] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes44_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes44_test/invokes.txt new file mode 100644 index 00000000..db9dfeeb --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes44_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.BInterfaceTest + ], + annotations: [] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes44_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes44_test/project/test/Main.kt index 373f2e78..1721ae8d 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes44_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes44_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withAnnotations().withSubTypes(BInterfaceTest::class) + val classes = Reflekt.classes().withAnnotations().withSupertypes(BInterfaceTest::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes44_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes44_test/uses.json deleted file mode 100644 index 0f750ab7..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes44_test/uses.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest" - ], - "annotations": [] - }, - [ - "io.reflekt.test.B1", - "io.reflekt.test.B2", - "io.reflekt.test.B3", - "io.reflekt.test.B3.B4" - ] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes44_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes44_test/uses.txt new file mode 100644 index 00000000..cfe36d71 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes44_test/uses.txt @@ -0,0 +1,16 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.BInterfaceTest + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.B1, + io.reflekt.test.B2, + io.reflekt.test.B3, + io.reflekt.test.B3.B4 + ] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes45_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes45_test/description.md index 708ca2d5..2f5b7c42 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes45_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes45_test/description.md @@ -1,5 +1,5 @@ -### Classes: subtypes and annotations invokes +### Classes: supertypes and annotations invokes This project contains `Reflekt` invokes. First use `withAnnotations` with one argument, -then use `withSubTypes` with the not top-level `BInterfaceTest`. +then use `withSupertypes` with the not top-level `BInterfaceTest`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes45_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes45_test/invokes.json deleted file mode 100644 index 0c745c0d..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes45_test/invokes.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest" - ] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes45_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes45_test/invokes.txt new file mode 100644 index 00000000..f68c8fcf --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes45_test/invokes.txt @@ -0,0 +1,10 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.BInterfaceTest + ], + annotations: [ + io.reflekt.test.SecondAnnotationTest + ] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes45_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes45_test/project/test/Main.kt index f16b08c2..8d88c000 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes45_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes45_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withAnnotations(SecondAnnotationTest::class).withSubTypes(BInterfaceTest::class) + val classes = Reflekt.classes().withAnnotations(SecondAnnotationTest::class).withSupertypes(BInterfaceTest::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes45_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes45_test/uses.json deleted file mode 100644 index 590458d3..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes45_test/uses.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest" - ] - }, - [ - "io.reflekt.test.B2", - "io.reflekt.test.B3" - ] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes45_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes45_test/uses.txt new file mode 100644 index 00000000..6564b177 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes45_test/uses.txt @@ -0,0 +1,16 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.BInterfaceTest + ], + annotations: [ + io.reflekt.test.SecondAnnotationTest + ] + ], + objectsOrClasses: [ + io.reflekt.test.B2, + io.reflekt.test.B3 + ] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes46_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes46_test/description.md index fac464eb..10ceefa4 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes46_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes46_test/description.md @@ -1,5 +1,5 @@ -### Classes: subtypes and annotations invokes +### Classes: supertypes and annotations invokes This project contains `Reflekt` invokes. First use `withAnnotations` with several arguments, -then use `withSubTypes` with the not top-level `BInterfaceTest`. +then use `withSupertypes` with the not top-level `BInterfaceTest`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes46_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes46_test/invokes.json deleted file mode 100644 index fda5ddc3..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes46_test/invokes.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes46_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes46_test/invokes.txt new file mode 100644 index 00000000..c5e2389f --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes46_test/invokes.txt @@ -0,0 +1,11 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.BInterfaceTest + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes46_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes46_test/project/test/Main.kt index 96cbe5fc..8e448a6a 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes46_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes46_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withAnnotations(SecondAnnotationTest::class, FirstAnnotationTest::class).withSubTypes(BInterfaceTest::class) + val classes = Reflekt.classes().withAnnotations(SecondAnnotationTest::class, FirstAnnotationTest::class).withSupertypes(BInterfaceTest::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes46_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes46_test/uses.json deleted file mode 100644 index 472f0f78..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes46_test/uses.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [ - "io.reflekt.test.B2", - "io.reflekt.test.B3" - ] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes46_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes46_test/uses.txt new file mode 100644 index 00000000..32dbc12c --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes46_test/uses.txt @@ -0,0 +1,17 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.BInterfaceTest + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] + ], + objectsOrClasses: [ + io.reflekt.test.B2, + io.reflekt.test.B3 + ] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes4_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes4_test/description.md index 6a6f7dbf..d565877a 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes4_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes4_test/description.md @@ -1,4 +1,4 @@ -### Classes: Only subtypes invokes +### Classes: Only supertypes invokes -This project contains `Reflekt` invokes, but all invokes are only subtypes. -Use only one `withSubType` invoked with the not top-level`BInterfaceTest` interface. +This project contains `Reflekt` invokes, but all invokes are only supertypes. +Use only one `withSupertype` invoked with the not top-level`BInterfaceTest` interface. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes4_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes4_test/invokes.json deleted file mode 100644 index 8ee41152..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes4_test/invokes.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest" - ], - "annotations": [] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes4_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes4_test/invokes.txt new file mode 100644 index 00000000..db9dfeeb --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes4_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.BInterfaceTest + ], + annotations: [] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes4_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes4_test/project/test/Main.kt index 36a0d07d..7ead1aa5 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes4_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes4_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withSubType() + val classes = Reflekt.classes().withSupertype() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes4_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes4_test/uses.json deleted file mode 100644 index 0f750ab7..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes4_test/uses.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest" - ], - "annotations": [] - }, - [ - "io.reflekt.test.B1", - "io.reflekt.test.B2", - "io.reflekt.test.B3", - "io.reflekt.test.B3.B4" - ] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes4_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes4_test/uses.txt new file mode 100644 index 00000000..cfe36d71 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes4_test/uses.txt @@ -0,0 +1,16 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.BInterfaceTest + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.B1, + io.reflekt.test.B2, + io.reflekt.test.B3, + io.reflekt.test.B3.B4 + ] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes5_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes5_test/description.md index d49df358..21c153aa 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes5_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes5_test/description.md @@ -1,4 +1,4 @@ -### Classes: Only subtypes invokes +### Classes: Only supertypes invokes -This project contains `Reflekt` invokes, but all invokes are only subtypes. -Use only one `withSubTypes` invoked with the not top-level`BInterfaceTest` interface. +This project contains `Reflekt` invokes, but all invokes are only supertypes. +Use only one `withSupertypes` invoked with the not top-level`BInterfaceTest` interface. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes5_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes5_test/invokes.json deleted file mode 100644 index 8ee41152..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes5_test/invokes.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest" - ], - "annotations": [] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes5_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes5_test/invokes.txt new file mode 100644 index 00000000..db9dfeeb --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes5_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.BInterfaceTest + ], + annotations: [] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes5_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes5_test/project/test/Main.kt index 182dbc91..f4202a1f 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes5_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes5_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withSubTypes(BInterfaceTest::class) + val classes = Reflekt.classes().withSupertypes(BInterfaceTest::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes5_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes5_test/uses.json deleted file mode 100644 index 0f750ab7..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes5_test/uses.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest" - ], - "annotations": [] - }, - [ - "io.reflekt.test.B1", - "io.reflekt.test.B2", - "io.reflekt.test.B3", - "io.reflekt.test.B3.B4" - ] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes5_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes5_test/uses.txt new file mode 100644 index 00000000..cfe36d71 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes5_test/uses.txt @@ -0,0 +1,16 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.BInterfaceTest + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.B1, + io.reflekt.test.B2, + io.reflekt.test.B3, + io.reflekt.test.B3.B4 + ] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes6_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes6_test/description.md index e93ec13f..b1b5c690 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes6_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes6_test/description.md @@ -1,4 +1,4 @@ -### Classes: Only subtypes invokes +### Classes: Only supertypes invokes -This project contains `Reflekt` invokes, but all invokes are only subtypes. -Use one `withSubTypes` and one `withSubType` invoked with the not top-level`BInterfaceTest` interface. +This project contains `Reflekt` invokes, but all invokes are only supertypes. +Use one `withSupertypes` and one `withSupertype` invoked with the not top-level`BInterfaceTest` interface. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes6_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes6_test/invokes.json deleted file mode 100644 index 8ee41152..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes6_test/invokes.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest" - ], - "annotations": [] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes6_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes6_test/invokes.txt new file mode 100644 index 00000000..db9dfeeb --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes6_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.BInterfaceTest + ], + annotations: [] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes6_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes6_test/project/test/Main.kt index db312cc7..6c9a15ce 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes6_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes6_test/project/test/Main.kt @@ -3,6 +3,6 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withSubTypes(BInterfaceTest::class) - val classes1 = Reflekt.classes().withSubType() + val classes = Reflekt.classes().withSupertypes(BInterfaceTest::class) + val classes1 = Reflekt.classes().withSupertype() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes6_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes6_test/uses.json deleted file mode 100644 index 0f750ab7..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes6_test/uses.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest" - ], - "annotations": [] - }, - [ - "io.reflekt.test.B1", - "io.reflekt.test.B2", - "io.reflekt.test.B3", - "io.reflekt.test.B3.B4" - ] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes6_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes6_test/uses.txt new file mode 100644 index 00000000..cfe36d71 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes6_test/uses.txt @@ -0,0 +1,16 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.BInterfaceTest + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.B1, + io.reflekt.test.B2, + io.reflekt.test.B3, + io.reflekt.test.B3.B4 + ] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes7_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes7_test/description.md index 10bcdc64..0d06c730 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes7_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes7_test/description.md @@ -1,4 +1,4 @@ -### Classes: Only subtypes invokes +### Classes: Only supertypes invokes -This project contains `Reflekt` invokes, but all invokes are only subtypes. -Use one `withSubTypes` without arguments. +This project contains `Reflekt` invokes, but all invokes are only supertypes. +Use one `withSupertypes` without arguments. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes7_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes7_test/invokes.json deleted file mode 100644 index 4c2d2ab5..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes7_test/invokes.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "objects": [], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes7_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes7_test/invokes.txt new file mode 100644 index 00000000..ce60440e --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes7_test/invokes.txt @@ -0,0 +1,3 @@ +objects: [], +classes: [], +functions: [] \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes7_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes7_test/project/test/Main.kt index 548d25dc..8dc53fd3 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes7_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes7_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withSubTypes() + val classes = Reflekt.classes().withSupertypes() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes7_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes7_test/uses.json deleted file mode 100644 index ff53fe79..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes7_test/uses.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "objects": {}, - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes7_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes7_test/uses.txt new file mode 100644 index 00000000..f6257a41 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes7_test/uses.txt @@ -0,0 +1,3 @@ +objects: {}, +classes: {}, +functions: {} \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes8_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes8_test/description.md index aee601a0..b0559a58 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes8_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes8_test/description.md @@ -1,4 +1,4 @@ -### Classes: Only subtypes invokes +### Classes: Only supertypes invokes -This project contains `Reflekt` invokes, but all invokes are only subtypes. -Use one `withSubTypes` with several arguments. +This project contains `Reflekt` invokes, but all invokes are only supertypes. +Use one `withSupertypes` with several arguments. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes8_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes8_test/invokes.json deleted file mode 100644 index e68cec39..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes8_test/invokes.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest", - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes8_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes8_test/invokes.txt new file mode 100644 index 00000000..a94dc5ec --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes8_test/invokes.txt @@ -0,0 +1,9 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.AInterfaceTest, + io.reflekt.test.BInterfaceTest + ], + annotations: [] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes8_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes8_test/project/test/Main.kt index 3bd84b37..514e308e 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes8_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes8_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withSubTypes(AInterfaceTest::class, BInterfaceTest::class) + val classes = Reflekt.classes().withSupertypes(AInterfaceTest::class, BInterfaceTest::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes8_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes8_test/uses.json deleted file mode 100644 index 850c97bb..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes8_test/uses.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest", - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [] - }, - [ - "io.reflekt.test.B1", - "io.reflekt.test.B2", - "io.reflekt.test.B3", - "io.reflekt.test.B3.B4" - ] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes8_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes8_test/uses.txt new file mode 100644 index 00000000..d5e3a3fb --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes8_test/uses.txt @@ -0,0 +1,17 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.AInterfaceTest, + io.reflekt.test.BInterfaceTest + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.B1, + io.reflekt.test.B2, + io.reflekt.test.B3, + io.reflekt.test.B3.B4 + ] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes9_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes9_test/description.md index a09f796f..9f2ab247 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes9_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes9_test/description.md @@ -1,4 +1,4 @@ -### Classes: Only subtypes invokes +### Classes: Only supertypes invokes -This project contains `Reflekt` invokes, but all invokes are only subtypes. -Use one `withSubTypes` with several arguments and one `withSubType` with another argument. +This project contains `Reflekt` invokes, but all invokes are only supertypes. +Use one `withSupertypes` with several arguments and one `withSupertype` with another argument. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes9_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes9_test/invokes.json deleted file mode 100644 index bcad041a..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes9_test/invokes.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "objects": [], - "classes": [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest", - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [] - }, - { - "subTypes": [ - "kotlin.Any" - ], - "annotations": [] - } - ], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes9_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes9_test/invokes.txt new file mode 100644 index 00000000..113a5a58 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes9_test/invokes.txt @@ -0,0 +1,13 @@ +objects: [], +classes: [ + supertypes: [ + io.reflekt.test.AInterfaceTest, + io.reflekt.test.BInterfaceTest + ], + annotations: [], + supertypes: [ + kotlin.Any + ], + annotations: [] +], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes9_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes9_test/project/test/Main.kt index 042bc353..e9cca3c9 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes9_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes9_test/project/test/Main.kt @@ -3,6 +3,6 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withSubTypes(AInterfaceTest::class, BInterfaceTest::class) - val classes1 = Reflekt.classes().withSubType() + val classes = Reflekt.classes().withSupertypes(AInterfaceTest::class, BInterfaceTest::class) + val classes1 = Reflekt.classes().withSupertype() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes9_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes9_test/uses.json deleted file mode 100644 index 6aaa89b7..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes9_test/uses.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "objects": {}, - "classes": [ - [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest", - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [] - }, - [ - "io.reflekt.test.B1", - "io.reflekt.test.B2", - "io.reflekt.test.B3", - "io.reflekt.test.B3.B4" - ] - ], - [ - { - "subTypes": [ - "kotlin.Any" - ], - "annotations": [] - }, - [ - "io.reflekt.test.B1", - "io.reflekt.test.B2", - "io.reflekt.test.B3", - "io.reflekt.test.B3.B4", - "io.reflekt.test.TestFunctions", - "io.reflekt.test.FirstAnnotationTest", - "io.reflekt.test.SecondAnnotationTest" - ] - ] - ], - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes9_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes9_test/uses.txt new file mode 100644 index 00000000..16a003b2 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/classes9_test/uses.txt @@ -0,0 +1,36 @@ +objects: {}, +classes: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.AInterfaceTest, + io.reflekt.test.BInterfaceTest + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.B1, + io.reflekt.test.B2, + io.reflekt.test.B3, + io.reflekt.test.B3.B4 + ], + supertypesToAnnotations: [ + supertypes: [ + kotlin.Any + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.B1, + io.reflekt.test.B2, + io.reflekt.test.B3, + io.reflekt.test.B3.B4, + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.FunTest1, + io.reflekt.test.FunTest2, + io.reflekt.test.FunTest3, + io.reflekt.test.FunctionsTestAnnotation, + io.reflekt.test.SecondAnnotationTest, + io.reflekt.test.TestFunctions + ] +}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions10_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions10_test/invokes.txt new file mode 100644 index 00000000..46907b55 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions10_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [], +classes: [], +functions: [ + signature: Function0> (kotlin.Function0), + annotations: [ + io.reflekt.test.FunctionsTestAnnotation + ] +] \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions10_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions10_test/project/test/Main.kt new file mode 100644 index 00000000..869873cb --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions10_test/project/test/Main.kt @@ -0,0 +1,7 @@ +package io.reflekt.test + +import io.reflekt.Reflekt + +fun main() { + val functions = Reflekt.functions().withAnnotations<() -> Array>(FunctionsTestAnnotation::class) +} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions10_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions10_test/uses.txt new file mode 100644 index 00000000..5ce896f7 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions10_test/uses.txt @@ -0,0 +1,14 @@ +objects: {}, +classes: {}, +functions: { + signatureToAnnotations: [ + signature: Function0> (kotlin.Function0), + annotations: [ + io.reflekt.test.FunctionsTestAnnotation + ] + ], + namedFunctions: [ + io.reflekt.test.fun6, + io.reflekt.test.fun7 + ] +} \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions11_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions11_test/invokes.txt new file mode 100644 index 00000000..6dbd8e8e --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions11_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [], +classes: [], +functions: [ + signature: Function0> (kotlin.Function0), + annotations: [ + io.reflekt.test.FunctionsTestAnnotation + ] +] \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions11_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions11_test/project/test/Main.kt new file mode 100644 index 00000000..659f7e1a --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions11_test/project/test/Main.kt @@ -0,0 +1,7 @@ +package io.reflekt.test + +import io.reflekt.Reflekt + +fun main() { + val functions = Reflekt.functions().withAnnotations<() -> Array>(FunctionsTestAnnotation::class) +} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions11_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions11_test/uses.txt new file mode 100644 index 00000000..10ea1dbd --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions11_test/uses.txt @@ -0,0 +1,13 @@ +objects: {}, +classes: {}, +functions: { + signatureToAnnotations: [ + signature: Function0> (kotlin.Function0), + annotations: [ + io.reflekt.test.FunctionsTestAnnotation + ] + ], + namedFunctions: [ + io.reflekt.test.fun7 + ] +} \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions12_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions12_test/invokes.txt new file mode 100644 index 00000000..2ccfc6fb --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions12_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [], +classes: [], +functions: [ + signature: Function0> (kotlin.Function0), + annotations: [ + io.reflekt.test.FunctionsTestAnnotation + ] +] \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions12_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions12_test/project/test/Main.kt new file mode 100644 index 00000000..a47313d9 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions12_test/project/test/Main.kt @@ -0,0 +1,7 @@ +package io.reflekt.test + +import io.reflekt.Reflekt + +fun main() { + val functions = Reflekt.functions().withAnnotations<() -> Array>(FunctionsTestAnnotation::class) +} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions12_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions12_test/uses.txt new file mode 100644 index 00000000..bdfe93f5 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions12_test/uses.txt @@ -0,0 +1,13 @@ +objects: {}, +classes: {}, +functions: { + signatureToAnnotations: [ + signature: Function0> (kotlin.Function0), + annotations: [ + io.reflekt.test.FunctionsTestAnnotation + ] + ], + namedFunctions: [ + io.reflekt.test.fun6 + ] +} \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions13_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions13_test/invokes.txt new file mode 100644 index 00000000..fc9889b9 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions13_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [], +classes: [], +functions: [ + signature: Function0> (kotlin.Function0), + annotations: [ + io.reflekt.test.FunctionsTestAnnotation + ] +] \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions13_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions13_test/project/test/Main.kt new file mode 100644 index 00000000..a033e9f2 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions13_test/project/test/Main.kt @@ -0,0 +1,7 @@ +package io.reflekt.test + +import io.reflekt.Reflekt + +fun main() { + val functions = Reflekt.functions().withAnnotations<() -> Array>(FunctionsTestAnnotation::class) +} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions13_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions13_test/uses.txt new file mode 100644 index 00000000..0e72efac --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions13_test/uses.txt @@ -0,0 +1,14 @@ +objects: {}, +classes: {}, +functions: { + signatureToAnnotations: [ + signature: Function0> (kotlin.Function0), + annotations: [ + io.reflekt.test.FunctionsTestAnnotation + ] + ], + namedFunctions: [ + io.reflekt.test.fun6, + io.reflekt.test.fun7 + ] +} \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions14_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions14_test/invokes.txt new file mode 100644 index 00000000..e78d8390 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions14_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [], +classes: [], +functions: [ + signature: Function0 (kotlin.Function0), + annotations: [ + io.reflekt.test.FunctionsTestAnnotation + ] +] \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions14_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions14_test/project/test/Main.kt new file mode 100644 index 00000000..83263f6f --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions14_test/project/test/Main.kt @@ -0,0 +1,7 @@ +package io.reflekt.test + +import io.reflekt.Reflekt + +fun main() { + val functions = Reflekt.functions().withAnnotations<() -> Any?>(FunctionsTestAnnotation::class) +} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions14_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions14_test/uses.txt new file mode 100644 index 00000000..4dc86ba0 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions14_test/uses.txt @@ -0,0 +1,21 @@ +objects: {}, +classes: {}, +functions: { + signatureToAnnotations: [ + signature: Function0 (kotlin.Function0), + annotations: [ + io.reflekt.test.FunctionsTestAnnotation + ] + ], + namedFunctions: [ + io.reflekt.test.fun1, + io.reflekt.test.fun2, + io.reflekt.test.fun3, + io.reflekt.test.fun4, + io.reflekt.test.fun5, + io.reflekt.test.fun6, + io.reflekt.test.fun7, + io.reflekt.test.fun8, + io.reflekt.test.fun9 + ] +} \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions15_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions15_test/invokes.txt new file mode 100644 index 00000000..80e7b21b --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions15_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [], +classes: [], +functions: [ + signature: Function3 (kotlin.Function3), + annotations: [ + io.reflekt.test.FunctionsTestAnnotation + ] +] \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions15_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions15_test/project/test/Main.kt new file mode 100644 index 00000000..a0281ce1 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions15_test/project/test/Main.kt @@ -0,0 +1,7 @@ +package io.reflekt.test + +import io.reflekt.Reflekt + +fun main() { + val functions = Reflekt.functions().withAnnotations<(Int, Boolean, Float) -> Any>(FunctionsTestAnnotation::class) +} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions15_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions15_test/uses.txt new file mode 100644 index 00000000..5201ceaf --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions15_test/uses.txt @@ -0,0 +1,15 @@ +objects: {}, +classes: {}, +functions: { + signatureToAnnotations: [ + signature: Function3 (kotlin.Function3), + annotations: [ + io.reflekt.test.FunctionsTestAnnotation + ] + ], + namedFunctions: [ + io.reflekt.test.fun10, + io.reflekt.test.fun11, + io.reflekt.test.fun12 + ] +} \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions16_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions16_test/invokes.txt new file mode 100644 index 00000000..4b1df36a --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions16_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [], +classes: [], +functions: [ + signature: Function1, List<*>> (kotlin.Function1), + annotations: [ + io.reflekt.test.FunctionsTestAnnotation + ] +] \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions16_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions16_test/project/test/Main.kt new file mode 100644 index 00000000..9ce961e7 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions16_test/project/test/Main.kt @@ -0,0 +1,7 @@ +package io.reflekt.test + +import io.reflekt.Reflekt + +fun main() { + val functions = Reflekt.functions().withAnnotations<(List<*>) -> List<*>>(FunctionsTestAnnotation::class) +} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions16_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions16_test/uses.txt new file mode 100644 index 00000000..328deda5 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions16_test/uses.txt @@ -0,0 +1,11 @@ +objects: {}, +classes: {}, +functions: { + signatureToAnnotations: [ + signature: Function1, List<*>> (kotlin.Function1), + annotations: [ + io.reflekt.test.FunctionsTestAnnotation + ] + ], + namedFunctions: [] +} \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions17_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions17_test/invokes.txt new file mode 100644 index 00000000..faec09a6 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions17_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [], +classes: [], +functions: [ + signature: Function1, List<*>> (kotlin.Function1), + annotations: [ + io.reflekt.test.FunctionsTestAnnotation + ] +] \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions17_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions17_test/project/test/Main.kt new file mode 100644 index 00000000..f43f8eed --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions17_test/project/test/Main.kt @@ -0,0 +1,7 @@ +package io.reflekt.test + +import io.reflekt.Reflekt + +fun main() { + val functions = Reflekt.functions().withAnnotations<(List) -> List<*>>(FunctionsTestAnnotation::class) +} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions17_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions17_test/uses.txt new file mode 100644 index 00000000..d6219aff --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions17_test/uses.txt @@ -0,0 +1,15 @@ +objects: {}, +classes: {}, +functions: { + signatureToAnnotations: [ + signature: Function1, List<*>> (kotlin.Function1), + annotations: [ + io.reflekt.test.FunctionsTestAnnotation + ] + ], + namedFunctions: [ + io.reflekt.test.fun13, + io.reflekt.test.fun14, + io.reflekt.test.fun15 + ] +} \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions18_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions18_test/invokes.txt new file mode 100644 index 00000000..04bc443b --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions18_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [], +classes: [], +functions: [ + signature: Function1, List> (kotlin.Function1), + annotations: [ + io.reflekt.test.FunctionsTestAnnotation + ] +] \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions18_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions18_test/project/test/Main.kt new file mode 100644 index 00000000..912cf76c --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions18_test/project/test/Main.kt @@ -0,0 +1,7 @@ +package io.reflekt.test + +import io.reflekt.Reflekt + +fun main() { + val functions = Reflekt.functions().withAnnotations<(List) -> List>(FunctionsTestAnnotation::class) +} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions18_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions18_test/uses.txt new file mode 100644 index 00000000..23492a5e --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions18_test/uses.txt @@ -0,0 +1,13 @@ +objects: {}, +classes: {}, +functions: { + signatureToAnnotations: [ + signature: Function1, List> (kotlin.Function1), + annotations: [ + io.reflekt.test.FunctionsTestAnnotation + ] + ], + namedFunctions: [ + io.reflekt.test.fun15 + ] +} \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions19_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions19_test/invokes.txt new file mode 100644 index 00000000..5311311c --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions19_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [], +classes: [], +functions: [ + signature: Function1, List<*>> (kotlin.Function1), + annotations: [ + io.reflekt.test.FunctionsTestAnnotation + ] +] \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions19_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions19_test/project/test/Main.kt new file mode 100644 index 00000000..4c664eb0 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions19_test/project/test/Main.kt @@ -0,0 +1,7 @@ +package io.reflekt.test + +import io.reflekt.Reflekt + +fun main() { + val functions = Reflekt.functions().withAnnotations<(List) -> List<*>>(FunctionsTestAnnotation::class) +} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions19_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions19_test/uses.txt new file mode 100644 index 00000000..1bb29641 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions19_test/uses.txt @@ -0,0 +1,13 @@ +objects: {}, +classes: {}, +functions: { + signatureToAnnotations: [ + signature: Function1, List<*>> (kotlin.Function1), + annotations: [ + io.reflekt.test.FunctionsTestAnnotation + ] + ], + namedFunctions: [ + io.reflekt.test.fun16 + ] +} \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions1_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions1_test/invokes.json deleted file mode 100644 index 276e7970..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions1_test/invokes.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "objects": [], - "classes": [], - "functions": [ - { - "signature": { - "fqName": "kotlin.Function0", - "parameters": [ - { - "fqName": "kotlin.Unit", - "parameters": [] - } - ] - }, - "annotations": [] - } - ] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions1_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions1_test/invokes.txt new file mode 100644 index 00000000..429ab1f0 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions1_test/invokes.txt @@ -0,0 +1,6 @@ +objects: [], +classes: [], +functions: [ + signature: Function0 (kotlin.Function0), + annotations: [] +] \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions1_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions1_test/uses.json deleted file mode 100644 index dd6a55ac..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions1_test/uses.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "objects": {}, - "classes": {}, - "functions": [ - [ - { - "signature": { - "fqName": "kotlin.Function0", - "parameters": [ - { - "fqName": "kotlin.Unit", - "parameters": [] - } - ] - }, - "annotations": [] - }, - [ - "io.reflekt.test.foo", - "io.reflekt.test.bar", - "io.reflekt.test.TestFunctions.Companion.foo", - "io.reflekt.test.nested.foo", - "io.reflekt.test.main" - ] - ] - ] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions1_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions1_test/uses.txt new file mode 100644 index 00000000..89c2b759 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions1_test/uses.txt @@ -0,0 +1,17 @@ +objects: {}, +classes: {}, +functions: { + signatureToAnnotations: [ + signature: Function0 (kotlin.Function0), + annotations: [] + ], + namedFunctions: [ + io.reflekt.test.TestFunctions.Companion.foo, + io.reflekt.test.bar, + io.reflekt.test.foo, + io.reflekt.test.fun1, + io.reflekt.test.fun2, + io.reflekt.test.main, + io.reflekt.test.nested.foo + ] +} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions20_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions20_test/invokes.txt new file mode 100644 index 00000000..16820991 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions20_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [], +classes: [], +functions: [ + signature: Function1, Array> (kotlin.Function1), + annotations: [ + io.reflekt.test.FunctionsTestAnnotation + ] +] \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions20_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions20_test/project/test/Main.kt new file mode 100644 index 00000000..849f5552 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions20_test/project/test/Main.kt @@ -0,0 +1,7 @@ +package io.reflekt.test + +import io.reflekt.Reflekt + +fun main() { + val functions = Reflekt.functions().withAnnotations<(Array) -> Array>(FunctionsTestAnnotation::class) +} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions20_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions20_test/uses.txt new file mode 100644 index 00000000..9b2275cd --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions20_test/uses.txt @@ -0,0 +1,15 @@ +objects: {}, +classes: {}, +functions: { + signatureToAnnotations: [ + signature: Function1, Array> (kotlin.Function1), + annotations: [ + io.reflekt.test.FunctionsTestAnnotation + ] + ], + namedFunctions: [ + io.reflekt.test.fun17, + io.reflekt.test.fun18, + io.reflekt.test.fun19 + ] +} \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions21_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions21_test/invokes.txt new file mode 100644 index 00000000..5080bfc6 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions21_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [], +classes: [], +functions: [ + signature: Function1, Array> (kotlin.Function1), + annotations: [ + io.reflekt.test.FunctionsTestAnnotation + ] +] \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions21_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions21_test/project/test/Main.kt new file mode 100644 index 00000000..b7902a0d --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions21_test/project/test/Main.kt @@ -0,0 +1,7 @@ +package io.reflekt.test + +import io.reflekt.Reflekt + +fun main() { + val functions = Reflekt.functions().withAnnotations<(Array) -> Array>(FunctionsTestAnnotation::class) +} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions21_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions21_test/uses.txt new file mode 100644 index 00000000..88e220a1 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions21_test/uses.txt @@ -0,0 +1,14 @@ +objects: {}, +classes: {}, +functions: { + signatureToAnnotations: [ + signature: Function1, Array> (kotlin.Function1), + annotations: [ + io.reflekt.test.FunctionsTestAnnotation + ] + ], + namedFunctions: [ + io.reflekt.test.fun18, + io.reflekt.test.fun19 + ] +} \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions2_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions2_test/invokes.json deleted file mode 100644 index 257b0013..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions2_test/invokes.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "objects": [], - "classes": [], - "functions": [ - { - "signature": { - "fqName": "kotlin.Function0", - "parameters": [ - { - "fqName": "kotlin.Unit", - "parameters": [] - } - ] - }, - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - } - ] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions2_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions2_test/invokes.txt new file mode 100644 index 00000000..12a390be --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions2_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [], +classes: [], +functions: [ + signature: Function0 (kotlin.Function0), + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] +] \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions2_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions2_test/uses.json deleted file mode 100644 index 2261342a..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions2_test/uses.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "objects": {}, - "classes": {}, - "functions": [ - [ - { - "signature": { - "fqName": "kotlin.Function0", - "parameters": [ - { - "fqName": "kotlin.Unit", - "parameters": [] - } - ] - }, - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [ - "io.reflekt.test.foo", - "io.reflekt.test.bar", - "io.reflekt.test.TestFunctions.Companion.foo", - "io.reflekt.test.nested.foo" - ] - ] - ] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions2_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions2_test/uses.txt new file mode 100644 index 00000000..d912884c --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions2_test/uses.txt @@ -0,0 +1,16 @@ +objects: {}, +classes: {}, +functions: { + signatureToAnnotations: [ + signature: Function0 (kotlin.Function0), + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] + ], + namedFunctions: [ + io.reflekt.test.TestFunctions.Companion.foo, + io.reflekt.test.bar, + io.reflekt.test.foo, + io.reflekt.test.nested.foo + ] +} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions3_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions3_test/invokes.json deleted file mode 100644 index 3c6e6107..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions3_test/invokes.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "objects": [], - "classes": [], - "functions": [ - { - "signature": { - "fqName": "kotlin.Function0", - "parameters": [ - { - "fqName": "kotlin.Unit", - "parameters": [] - } - ] - }, - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - } - ] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions3_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions3_test/invokes.txt new file mode 100644 index 00000000..cf686d89 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions3_test/invokes.txt @@ -0,0 +1,9 @@ +objects: [], +classes: [], +functions: [ + signature: Function0 (kotlin.Function0), + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] +] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions3_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions3_test/uses.json deleted file mode 100644 index f0c0f037..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions3_test/uses.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "objects": {}, - "classes": {}, - "functions": [ - [ - { - "signature": { - "fqName": "kotlin.Function0", - "parameters": [ - { - "fqName": "kotlin.Unit", - "parameters": [] - } - ] - }, - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [ - "io.reflekt.test.foo", - "io.reflekt.test.bar", - "io.reflekt.test.TestFunctions.Companion.foo", - "io.reflekt.test.nested.foo" - ] - ] - ] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions3_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions3_test/uses.txt new file mode 100644 index 00000000..dfe52255 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions3_test/uses.txt @@ -0,0 +1,17 @@ +objects: {}, +classes: {}, +functions: { + signatureToAnnotations: [ + signature: Function0 (kotlin.Function0), + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] + ], + namedFunctions: [ + io.reflekt.test.TestFunctions.Companion.foo, + io.reflekt.test.bar, + io.reflekt.test.foo, + io.reflekt.test.nested.foo + ] +} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions4_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions4_test/invokes.txt new file mode 100644 index 00000000..99754cdd --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions4_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [], +classes: [], +functions: [ + signature: Function0 (kotlin.Function0), + annotations: [ + io.reflekt.test.FunctionsTestAnnotation + ] +] \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions4_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions4_test/project/test/Main.kt new file mode 100644 index 00000000..3e23957e --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions4_test/project/test/Main.kt @@ -0,0 +1,7 @@ +package io.reflekt.test + +import io.reflekt.Reflekt + +fun main() { + val functions = Reflekt.functions().withAnnotations<() -> Any>(FunctionsTestAnnotation::class) +} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions4_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions4_test/uses.txt new file mode 100644 index 00000000..d77030fc --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions4_test/uses.txt @@ -0,0 +1,19 @@ +objects: {}, +classes: {}, +functions: { + signatureToAnnotations: [ + signature: Function0 (kotlin.Function0), + annotations: [ + io.reflekt.test.FunctionsTestAnnotation + ] + ], + namedFunctions: [ + io.reflekt.test.fun1, + io.reflekt.test.fun2, + io.reflekt.test.fun3, + io.reflekt.test.fun4, + io.reflekt.test.fun5, + io.reflekt.test.fun6, + io.reflekt.test.fun7 + ] +} \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions5_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions5_test/invokes.txt new file mode 100644 index 00000000..e78d8390 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions5_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [], +classes: [], +functions: [ + signature: Function0 (kotlin.Function0), + annotations: [ + io.reflekt.test.FunctionsTestAnnotation + ] +] \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions5_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions5_test/project/test/Main.kt new file mode 100644 index 00000000..83263f6f --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions5_test/project/test/Main.kt @@ -0,0 +1,7 @@ +package io.reflekt.test + +import io.reflekt.Reflekt + +fun main() { + val functions = Reflekt.functions().withAnnotations<() -> Any?>(FunctionsTestAnnotation::class) +} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions5_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions5_test/uses.txt new file mode 100644 index 00000000..4dc86ba0 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions5_test/uses.txt @@ -0,0 +1,21 @@ +objects: {}, +classes: {}, +functions: { + signatureToAnnotations: [ + signature: Function0 (kotlin.Function0), + annotations: [ + io.reflekt.test.FunctionsTestAnnotation + ] + ], + namedFunctions: [ + io.reflekt.test.fun1, + io.reflekt.test.fun2, + io.reflekt.test.fun3, + io.reflekt.test.fun4, + io.reflekt.test.fun5, + io.reflekt.test.fun6, + io.reflekt.test.fun7, + io.reflekt.test.fun8, + io.reflekt.test.fun9 + ] +} \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions6_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions6_test/invokes.txt new file mode 100644 index 00000000..de73f960 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions6_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [], +classes: [], +functions: [ + signature: Function0<*> (kotlin.Function0), + annotations: [ + io.reflekt.test.FunctionsTestAnnotation + ] +] \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions6_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions6_test/project/test/Main.kt new file mode 100644 index 00000000..8a1cc191 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions6_test/project/test/Main.kt @@ -0,0 +1,7 @@ +package io.reflekt.test + +import io.reflekt.Reflekt + +fun main() { + val functions = Reflekt.functions().withAnnotations>(FunctionsTestAnnotation::class) +} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions6_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions6_test/uses.txt new file mode 100644 index 00000000..d2fc1ef1 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions6_test/uses.txt @@ -0,0 +1,21 @@ +objects: {}, +classes: {}, +functions: { + signatureToAnnotations: [ + signature: Function0<*> (kotlin.Function0), + annotations: [ + io.reflekt.test.FunctionsTestAnnotation + ] + ], + namedFunctions: [ + io.reflekt.test.fun1, + io.reflekt.test.fun2, + io.reflekt.test.fun3, + io.reflekt.test.fun4, + io.reflekt.test.fun5, + io.reflekt.test.fun6, + io.reflekt.test.fun7, + io.reflekt.test.fun8, + io.reflekt.test.fun9 + ] +} \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions7_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions7_test/invokes.txt new file mode 100644 index 00000000..93e2a143 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions7_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [], +classes: [], +functions: [ + signature: Function0> (kotlin.Function0), + annotations: [ + io.reflekt.test.FunctionsTestAnnotation + ] +] \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions7_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions7_test/project/test/Main.kt new file mode 100644 index 00000000..c9c7b1f7 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions7_test/project/test/Main.kt @@ -0,0 +1,7 @@ +package io.reflekt.test + +import io.reflekt.Reflekt + +fun main() { + val functions = Reflekt.functions().withAnnotations<() -> Array<*>>(FunctionsTestAnnotation::class) +} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions7_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions7_test/uses.txt new file mode 100644 index 00000000..d9629520 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions7_test/uses.txt @@ -0,0 +1,15 @@ +objects: {}, +classes: {}, +functions: { + signatureToAnnotations: [ + signature: Function0> (kotlin.Function0), + annotations: [ + io.reflekt.test.FunctionsTestAnnotation + ] + ], + namedFunctions: [ + io.reflekt.test.fun5, + io.reflekt.test.fun6, + io.reflekt.test.fun7 + ] +} \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions8_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions8_test/invokes.txt new file mode 100644 index 00000000..8cf9900d --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions8_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [], +classes: [], +functions: [ + signature: Function0> (kotlin.Function0), + annotations: [ + io.reflekt.test.FunctionsTestAnnotation + ] +] \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions8_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions8_test/project/test/Main.kt new file mode 100644 index 00000000..bc5be835 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions8_test/project/test/Main.kt @@ -0,0 +1,7 @@ +package io.reflekt.test + +import io.reflekt.Reflekt + +fun main() { + val functions = Reflekt.functions().withAnnotations<() -> Array>(FunctionsTestAnnotation::class) +} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions8_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions8_test/uses.txt new file mode 100644 index 00000000..c5d8d47c --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions8_test/uses.txt @@ -0,0 +1,14 @@ +objects: {}, +classes: {}, +functions: { + signatureToAnnotations: [ + signature: Function0> (kotlin.Function0), + annotations: [ + io.reflekt.test.FunctionsTestAnnotation + ] + ], + namedFunctions: [ + io.reflekt.test.fun6, + io.reflekt.test.fun7 + ] +} \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions9_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions9_test/invokes.txt new file mode 100644 index 00000000..1ad0c705 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions9_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [], +classes: [], +functions: [ + signature: Function0> (kotlin.Function0), + annotations: [ + io.reflekt.test.FunctionsTestAnnotation + ] +] \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions9_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions9_test/project/test/Main.kt new file mode 100644 index 00000000..f2073d94 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions9_test/project/test/Main.kt @@ -0,0 +1,7 @@ +package io.reflekt.test + +import io.reflekt.Reflekt + +fun main() { + val functions = Reflekt.functions().withAnnotations<() -> Array>(FunctionsTestAnnotation::class) +} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions9_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions9_test/uses.txt new file mode 100644 index 00000000..fad416ff --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/functions9_test/uses.txt @@ -0,0 +1,11 @@ +objects: {}, +classes: {}, +functions: { + signatureToAnnotations: [ + signature: Function0> (kotlin.Function0), + annotations: [ + io.reflekt.test.FunctionsTestAnnotation + ] + ], + namedFunctions: [] +} \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects10_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects10_test/invokes.json deleted file mode 100644 index 050f83ce..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects10_test/invokes.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects10_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects10_test/invokes.txt new file mode 100644 index 00000000..bc41564d --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects10_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [ + supertypes: [ + io.reflekt.test.AInterfaceTest + ], + annotations: [] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects10_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects10_test/uses.json deleted file mode 100644 index 5f362ce9..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects10_test/uses.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [] - }, - [ - "io.reflekt.test.A1", - "io.reflekt.test.A2", - "io.reflekt.test.A3" - ] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects10_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects10_test/uses.txt new file mode 100644 index 00000000..373e753f --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects10_test/uses.txt @@ -0,0 +1,15 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.AInterfaceTest + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.A1, + io.reflekt.test.A2, + io.reflekt.test.A3 + ] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects11_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects11_test/invokes.json deleted file mode 100644 index cef081b6..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects11_test/invokes.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects11_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects11_test/invokes.txt new file mode 100644 index 00000000..9fb2e6b2 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects11_test/invokes.txt @@ -0,0 +1,10 @@ +objects: [ + supertypes: [ + io.reflekt.test.AInterfaceTest + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects11_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects11_test/uses.json deleted file mode 100644 index e71b0f86..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects11_test/uses.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [ - "io.reflekt.test.A3" - ] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects11_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects11_test/uses.txt new file mode 100644 index 00000000..a7985f52 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects11_test/uses.txt @@ -0,0 +1,15 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.AInterfaceTest + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] + ], + objectsOrClasses: [ + io.reflekt.test.A3 + ] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects12_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects12_test/invokes.json deleted file mode 100644 index 0723a1e1..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects12_test/invokes.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects12_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects12_test/invokes.txt new file mode 100644 index 00000000..4b6c908f --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects12_test/invokes.txt @@ -0,0 +1,11 @@ +objects: [ + supertypes: [ + io.reflekt.test.AInterfaceTest + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects12_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects12_test/uses.json deleted file mode 100644 index 80755251..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects12_test/uses.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [ - "io.reflekt.test.A2", - "io.reflekt.test.A3" - ] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects12_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects12_test/uses.txt new file mode 100644 index 00000000..70b1dd0b --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects12_test/uses.txt @@ -0,0 +1,17 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.AInterfaceTest + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] + ], + objectsOrClasses: [ + io.reflekt.test.A2, + io.reflekt.test.A3 + ] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects13_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects13_test/description.md index 29b206fb..fd889c38 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects13_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects13_test/description.md @@ -1,5 +1,5 @@ -### Objects: subtypes and annotations invokes +### Objects: supertypes and annotations invokes This project contains `Reflekt` invokes. -First use `withSubType` with the top-level class `A1`, +First use `withSupertype` with the top-level class `A1`, then use `withAnnotations` without arguments. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects13_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects13_test/invokes.json deleted file mode 100644 index cfd28c71..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects13_test/invokes.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.A1" - ], - "annotations": [] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects13_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects13_test/invokes.txt new file mode 100644 index 00000000..28012bf5 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects13_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [ + supertypes: [ + io.reflekt.test.A1 + ], + annotations: [] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects13_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects13_test/project/test/Main.kt index c2bb6fc4..5743877a 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects13_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects13_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withSubType().withAnnotations() + val objects = Reflekt.objects().withSupertype().withAnnotations() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects13_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects13_test/uses.json deleted file mode 100644 index 76f9df5c..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects13_test/uses.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.A1" - ], - "annotations": [] - }, - [ - "io.reflekt.test.A1" - ] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects13_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects13_test/uses.txt new file mode 100644 index 00000000..fed75736 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects13_test/uses.txt @@ -0,0 +1,13 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.A1 + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.A1 + ] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects14_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects14_test/description.md index 1744f9ff..5a324438 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects14_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects14_test/description.md @@ -1,5 +1,5 @@ -### Objects: subtypes and annotations invokes +### Objects: supertypes and annotations invokes This project contains `Reflekt` invokes. -First use `withSubType` with the top-level class `A1`, +First use `withSupertype` with the top-level class `A1`, then use `withAnnotations` with one argument. The result of objects should be empty. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects14_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects14_test/invokes.json deleted file mode 100644 index 69d1e48d..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects14_test/invokes.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.A1" - ], - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects14_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects14_test/invokes.txt new file mode 100644 index 00000000..d11d56dd --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects14_test/invokes.txt @@ -0,0 +1,10 @@ +objects: [ + supertypes: [ + io.reflekt.test.A1 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects14_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects14_test/project/test/Main.kt index 3838b872..9dd91de1 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects14_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects14_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withSubType().withAnnotations(FirstAnnotationTest::class) + val objects = Reflekt.objects().withSupertype().withAnnotations(FirstAnnotationTest::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects14_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects14_test/uses.json deleted file mode 100644 index 725cd19b..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects14_test/uses.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.A1" - ], - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects14_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects14_test/uses.txt new file mode 100644 index 00000000..919a22d6 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects14_test/uses.txt @@ -0,0 +1,13 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.A1 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] + ], + objectsOrClasses: [] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects15_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects15_test/description.md index a1fe48b1..8c8a5ea5 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects15_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects15_test/description.md @@ -1,5 +1,5 @@ -### Objects: subtypes and annotations invokes +### Objects: supertypes and annotations invokes This project contains `Reflekt` invokes. -First use `withSubType` with the top-level class `A3`, +First use `withSupertype` with the top-level class `A3`, then use `withAnnotations` with one argument. The result of objects should not be empty. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects15_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects15_test/invokes.json deleted file mode 100644 index 37593dd5..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects15_test/invokes.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.A3" - ], - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects15_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects15_test/invokes.txt new file mode 100644 index 00000000..ca0e1a2f --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects15_test/invokes.txt @@ -0,0 +1,10 @@ +objects: [ + supertypes: [ + io.reflekt.test.A3 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects15_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects15_test/project/test/Main.kt index 9c0a72e8..59608cfa 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects15_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects15_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withSubType().withAnnotations(FirstAnnotationTest::class) + val objects = Reflekt.objects().withSupertype().withAnnotations(FirstAnnotationTest::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects15_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects15_test/uses.json deleted file mode 100644 index 95b49b43..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects15_test/uses.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.A3" - ], - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [ - "io.reflekt.test.A3" - ] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects15_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects15_test/uses.txt new file mode 100644 index 00000000..9725e9f5 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects15_test/uses.txt @@ -0,0 +1,15 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.A3 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] + ], + objectsOrClasses: [ + io.reflekt.test.A3 + ] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects16_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects16_test/description.md index a280b845..85563a07 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects16_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects16_test/description.md @@ -1,5 +1,5 @@ -### Objects: subtypes and annotations invokes +### Objects: supertypes and annotations invokes This project contains `Reflekt` invokes. -First use `withSubType` with the top-level class `A3`, +First use `withSupertype` with the top-level class `A3`, then use `withAnnotations` with several arguments. The result of objects should not be empty. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects16_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects16_test/invokes.json deleted file mode 100644 index 704ba263..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects16_test/invokes.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.A3" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects16_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects16_test/invokes.txt new file mode 100644 index 00000000..314b3656 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects16_test/invokes.txt @@ -0,0 +1,11 @@ +objects: [ + supertypes: [ + io.reflekt.test.A3 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects16_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects16_test/project/test/Main.kt index e9fc6b25..b9da6cf4 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects16_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects16_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withSubType().withAnnotations(FirstAnnotationTest::class, SecondAnnotationTest::class) + val objects = Reflekt.objects().withSupertype().withAnnotations(FirstAnnotationTest::class, SecondAnnotationTest::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects16_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects16_test/uses.json deleted file mode 100644 index 36b987a5..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects16_test/uses.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.A3" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [ - "io.reflekt.test.A3" - ] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects16_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects16_test/uses.txt new file mode 100644 index 00000000..0d6e7dc7 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects16_test/uses.txt @@ -0,0 +1,16 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.A3 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] + ], + objectsOrClasses: [ + io.reflekt.test.A3 + ] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects17_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects17_test/description.md index 6f2d171b..610d8646 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects17_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects17_test/description.md @@ -1,5 +1,5 @@ -### Objects: subtypes and annotations invokes +### Objects: supertypes and annotations invokes This project contains `Reflekt` invokes. -First use `withSubType` with the top-level class `A1`, +First use `withSupertype` with the top-level class `A1`, then use `withAnnotations` with several arguments. The result of objects should be empty. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects17_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects17_test/invokes.json deleted file mode 100644 index 34c790b8..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects17_test/invokes.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.A1" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects17_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects17_test/invokes.txt new file mode 100644 index 00000000..18d47029 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects17_test/invokes.txt @@ -0,0 +1,11 @@ +objects: [ + supertypes: [ + io.reflekt.test.A1 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects17_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects17_test/project/test/Main.kt index c3a536d1..3632dd20 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects17_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects17_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withSubType().withAnnotations(FirstAnnotationTest::class, SecondAnnotationTest::class) + val objects = Reflekt.objects().withSupertype().withAnnotations(FirstAnnotationTest::class, SecondAnnotationTest::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects17_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects17_test/uses.json deleted file mode 100644 index 53aa6d08..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects17_test/uses.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.A1" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects17_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects17_test/uses.txt new file mode 100644 index 00000000..c9005a28 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects17_test/uses.txt @@ -0,0 +1,14 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.A1 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] + ], + objectsOrClasses: [] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects18_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects18_test/description.md index 58e74d0c..e71f5511 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects18_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects18_test/description.md @@ -1,5 +1,5 @@ -### Objects: subtypes and annotations invokes +### Objects: supertypes and annotations invokes This project contains `Reflekt` invokes. -First use `withSubType` with the not top-level `AInterfaceTest`, +First use `withSupertype` with the not top-level `AInterfaceTest`, then use `withAnnotations` without arguments. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects18_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects18_test/invokes.json deleted file mode 100644 index 050f83ce..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects18_test/invokes.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects18_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects18_test/invokes.txt new file mode 100644 index 00000000..bc41564d --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects18_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [ + supertypes: [ + io.reflekt.test.AInterfaceTest + ], + annotations: [] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects18_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects18_test/project/test/Main.kt index 5271976e..685d9162 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects18_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects18_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withSubType().withAnnotations() + val objects = Reflekt.objects().withSupertype().withAnnotations() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects18_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects18_test/uses.json deleted file mode 100644 index 5f362ce9..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects18_test/uses.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [] - }, - [ - "io.reflekt.test.A1", - "io.reflekt.test.A2", - "io.reflekt.test.A3" - ] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects18_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects18_test/uses.txt new file mode 100644 index 00000000..373e753f --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects18_test/uses.txt @@ -0,0 +1,15 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.AInterfaceTest + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.A1, + io.reflekt.test.A2, + io.reflekt.test.A3 + ] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects19_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects19_test/description.md index 85a2febf..b04508ea 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects19_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects19_test/description.md @@ -1,5 +1,5 @@ -### Objects: subtypes and annotations invokes +### Objects: supertypes and annotations invokes This project contains `Reflekt` invokes. -First use `withSubType` with the not top-level `AInterfaceTest`, +First use `withSupertype` with the not top-level `AInterfaceTest`, then use `withAnnotations` with one argument. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects19_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects19_test/invokes.json deleted file mode 100644 index 3f41df0e..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects19_test/invokes.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest" - ] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects19_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects19_test/invokes.txt new file mode 100644 index 00000000..f02e2bea --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects19_test/invokes.txt @@ -0,0 +1,10 @@ +objects: [ + supertypes: [ + io.reflekt.test.AInterfaceTest + ], + annotations: [ + io.reflekt.test.SecondAnnotationTest + ] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects19_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects19_test/project/test/Main.kt index 60869bb9..ec7798ce 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects19_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects19_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withSubType().withAnnotations(SecondAnnotationTest::class) + val objects = Reflekt.objects().withSupertype().withAnnotations(SecondAnnotationTest::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects19_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects19_test/uses.json deleted file mode 100644 index 78b3e292..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects19_test/uses.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest" - ] - }, - [ - "io.reflekt.test.A2" - ] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects19_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects19_test/uses.txt new file mode 100644 index 00000000..08514323 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects19_test/uses.txt @@ -0,0 +1,15 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.AInterfaceTest + ], + annotations: [ + io.reflekt.test.SecondAnnotationTest + ] + ], + objectsOrClasses: [ + io.reflekt.test.A2 + ] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects1_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects1_test/description.md index f1a5ed27..895c82eb 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects1_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects1_test/description.md @@ -1,4 +1,4 @@ -### Objects: Only subtypes invokes +### Objects: Only supertypes invokes -This project contains `Reflekt` invokes, but all invokes are only subtypes. -Use only one `withSubType` invoked with the top-level type `A1`. +This project contains `Reflekt` invokes, but all invokes are only supertypes. +Use only one `withSupertype` invoked with the top-level type `A1`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects1_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects1_test/invokes.json deleted file mode 100644 index cfd28c71..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects1_test/invokes.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.A1" - ], - "annotations": [] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects1_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects1_test/invokes.txt new file mode 100644 index 00000000..28012bf5 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects1_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [ + supertypes: [ + io.reflekt.test.A1 + ], + annotations: [] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects1_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects1_test/project/test/Main.kt index 7878fd7b..33f5c1eb 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects1_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects1_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withSubType() + val objects = Reflekt.objects().withSupertype() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects1_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects1_test/uses.json deleted file mode 100644 index 76f9df5c..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects1_test/uses.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.A1" - ], - "annotations": [] - }, - [ - "io.reflekt.test.A1" - ] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects1_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects1_test/uses.txt new file mode 100644 index 00000000..fed75736 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects1_test/uses.txt @@ -0,0 +1,13 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.A1 + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.A1 + ] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects20_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects20_test/description.md index d2b8d098..2c92371f 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects20_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects20_test/description.md @@ -1,5 +1,5 @@ -### Objects: subtypes and annotations invokes +### Objects: supertypes and annotations invokes This project contains `Reflekt` invokes. -First use `withSubType` with the not top-level `AInterfaceTest`, +First use `withSupertype` with the not top-level `AInterfaceTest`, then use `withAnnotations` with several arguments. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects20_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects20_test/invokes.json deleted file mode 100644 index 0723a1e1..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects20_test/invokes.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects20_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects20_test/invokes.txt new file mode 100644 index 00000000..4b6c908f --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects20_test/invokes.txt @@ -0,0 +1,11 @@ +objects: [ + supertypes: [ + io.reflekt.test.AInterfaceTest + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects20_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects20_test/project/test/Main.kt index c811a0d6..69f5f23d 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects20_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects20_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withSubType().withAnnotations(SecondAnnotationTest::class, FirstAnnotationTest::class) + val objects = Reflekt.objects().withSupertype().withAnnotations(SecondAnnotationTest::class, FirstAnnotationTest::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects20_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects20_test/uses.json deleted file mode 100644 index 80755251..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects20_test/uses.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [ - "io.reflekt.test.A2", - "io.reflekt.test.A3" - ] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects20_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects20_test/uses.txt new file mode 100644 index 00000000..70b1dd0b --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects20_test/uses.txt @@ -0,0 +1,17 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.AInterfaceTest + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] + ], + objectsOrClasses: [ + io.reflekt.test.A2, + io.reflekt.test.A3 + ] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects21_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects21_test/description.md index cd224ca4..ede5b5b5 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects21_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects21_test/description.md @@ -1,5 +1,5 @@ -### Objects: subtypes and annotations invokes +### Objects: supertypes and annotations invokes This project contains `Reflekt` invokes. -First use `withSubTypes` without arguments, +First use `withSupertypes` without arguments, then use `withAnnotations` without arguments. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects21_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects21_test/invokes.json deleted file mode 100644 index cfd28c71..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects21_test/invokes.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.A1" - ], - "annotations": [] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects21_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects21_test/invokes.txt new file mode 100644 index 00000000..28012bf5 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects21_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [ + supertypes: [ + io.reflekt.test.A1 + ], + annotations: [] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects21_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects21_test/project/test/Main.kt index 2482a867..a718dc4c 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects21_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects21_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withSubTypes().withAnnotations() + val objects = Reflekt.objects().withSupertypes().withAnnotations() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects21_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects21_test/uses.json deleted file mode 100644 index 76f9df5c..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects21_test/uses.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.A1" - ], - "annotations": [] - }, - [ - "io.reflekt.test.A1" - ] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects21_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects21_test/uses.txt new file mode 100644 index 00000000..fed75736 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects21_test/uses.txt @@ -0,0 +1,13 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.A1 + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.A1 + ] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects22_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects22_test/description.md index df73dcae..bcf9dd81 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects22_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects22_test/description.md @@ -1,5 +1,5 @@ -### Objects: subtypes and annotations invokes +### Objects: supertypes and annotations invokes This project contains `Reflekt` invokes. -First use `withSubTypes` with the top-level class `A1`, +First use `withSupertypes` with the top-level class `A1`, then use `withAnnotations` without arguments. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects22_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects22_test/invokes.json deleted file mode 100644 index cfd28c71..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects22_test/invokes.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.A1" - ], - "annotations": [] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects22_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects22_test/invokes.txt new file mode 100644 index 00000000..28012bf5 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects22_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [ + supertypes: [ + io.reflekt.test.A1 + ], + annotations: [] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects22_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects22_test/project/test/Main.kt index 131f6bac..1b982b26 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects22_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects22_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withSubTypes(A1::class).withAnnotations() + val objects = Reflekt.objects().withSupertypes(A1::class).withAnnotations() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects22_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects22_test/uses.json deleted file mode 100644 index 76f9df5c..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects22_test/uses.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.A1" - ], - "annotations": [] - }, - [ - "io.reflekt.test.A1" - ] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects22_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects22_test/uses.txt new file mode 100644 index 00000000..fed75736 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects22_test/uses.txt @@ -0,0 +1,13 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.A1 + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.A1 + ] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects23_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects23_test/description.md index 5164329a..0b902546 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects23_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects23_test/description.md @@ -1,5 +1,5 @@ -### Objects: subtypes and annotations invokes +### Objects: supertypes and annotations invokes This project contains `Reflekt` invokes. -First use `withSubTypes` with the top-level class `A1`, +First use `withSupertypes` with the top-level class `A1`, then use `withAnnotations` with one argument. The result of objects should be empty. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects23_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects23_test/invokes.json deleted file mode 100644 index 69d1e48d..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects23_test/invokes.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.A1" - ], - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects23_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects23_test/invokes.txt new file mode 100644 index 00000000..d11d56dd --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects23_test/invokes.txt @@ -0,0 +1,10 @@ +objects: [ + supertypes: [ + io.reflekt.test.A1 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects23_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects23_test/project/test/Main.kt index c7080d61..529a50a1 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects23_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects23_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withSubTypes(A1::class).withAnnotations(FirstAnnotationTest::class) + val objects = Reflekt.objects().withSupertypes(A1::class).withAnnotations(FirstAnnotationTest::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects23_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects23_test/uses.json deleted file mode 100644 index 725cd19b..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects23_test/uses.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.A1" - ], - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects23_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects23_test/uses.txt new file mode 100644 index 00000000..919a22d6 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects23_test/uses.txt @@ -0,0 +1,13 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.A1 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] + ], + objectsOrClasses: [] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects24_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects24_test/description.md index e81b29c0..040efc5e 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects24_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects24_test/description.md @@ -1,5 +1,5 @@ -### Objects: subtypes and annotations invokes +### Objects: supertypes and annotations invokes This project contains `Reflekt` invokes. -First use `withSubTypes` with the top-level class `A3`, +First use `withSupertypes` with the top-level class `A3`, then use `withAnnotations` with one argument. The result of objects should not be empty. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects24_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects24_test/invokes.json deleted file mode 100644 index 37593dd5..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects24_test/invokes.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.A3" - ], - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects24_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects24_test/invokes.txt new file mode 100644 index 00000000..ca0e1a2f --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects24_test/invokes.txt @@ -0,0 +1,10 @@ +objects: [ + supertypes: [ + io.reflekt.test.A3 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects24_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects24_test/project/test/Main.kt index 024b0291..1f7507d5 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects24_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects24_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withSubTypes(A3::class).withAnnotations(FirstAnnotationTest::class) + val objects = Reflekt.objects().withSupertypes(A3::class).withAnnotations(FirstAnnotationTest::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects24_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects24_test/uses.json deleted file mode 100644 index 95b49b43..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects24_test/uses.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.A3" - ], - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [ - "io.reflekt.test.A3" - ] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects24_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects24_test/uses.txt new file mode 100644 index 00000000..9725e9f5 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects24_test/uses.txt @@ -0,0 +1,15 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.A3 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] + ], + objectsOrClasses: [ + io.reflekt.test.A3 + ] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects25_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects25_test/description.md index 1c032236..b515b68c 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects25_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects25_test/description.md @@ -1,5 +1,5 @@ -### Objects: subtypes and annotations invokes +### Objects: supertypes and annotations invokes This project contains `Reflekt` invokes. -First use `withSubTypes` with the top-level class `A3`, +First use `withSupertypes` with the top-level class `A3`, then use `withAnnotations` with several arguments. The result of objects should not be empty. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects25_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects25_test/invokes.json deleted file mode 100644 index 704ba263..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects25_test/invokes.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.A3" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects25_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects25_test/invokes.txt new file mode 100644 index 00000000..314b3656 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects25_test/invokes.txt @@ -0,0 +1,11 @@ +objects: [ + supertypes: [ + io.reflekt.test.A3 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects25_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects25_test/project/test/Main.kt index ee726d76..6268c97f 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects25_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects25_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withSubTypes(A3::class).withAnnotations(FirstAnnotationTest::class, SecondAnnotationTest::class) + val objects = Reflekt.objects().withSupertypes(A3::class).withAnnotations(FirstAnnotationTest::class, SecondAnnotationTest::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects25_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects25_test/uses.json deleted file mode 100644 index 36b987a5..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects25_test/uses.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.A3" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [ - "io.reflekt.test.A3" - ] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects25_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects25_test/uses.txt new file mode 100644 index 00000000..0d6e7dc7 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects25_test/uses.txt @@ -0,0 +1,16 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.A3 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] + ], + objectsOrClasses: [ + io.reflekt.test.A3 + ] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects26_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects26_test/description.md index e3313e4f..167198fa 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects26_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects26_test/description.md @@ -1,5 +1,5 @@ -### Objects: subtypes and annotations invokes +### Objects: supertypes and annotations invokes This project contains `Reflekt` invokes. -First use `withSubTypes` with the top-level class `A1`, +First use `withSupertypes` with the top-level class `A1`, then use `withAnnotations` with several arguments. The result of objects should be empty. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects26_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects26_test/invokes.json deleted file mode 100644 index 34c790b8..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects26_test/invokes.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.A1" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects26_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects26_test/invokes.txt new file mode 100644 index 00000000..18d47029 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects26_test/invokes.txt @@ -0,0 +1,11 @@ +objects: [ + supertypes: [ + io.reflekt.test.A1 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects26_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects26_test/project/test/Main.kt index fbd2cf69..60e046be 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects26_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects26_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withSubTypes(A1::class).withAnnotations(FirstAnnotationTest::class, SecondAnnotationTest::class) + val objects = Reflekt.objects().withSupertypes(A1::class).withAnnotations(FirstAnnotationTest::class, SecondAnnotationTest::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects26_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects26_test/uses.json deleted file mode 100644 index 53aa6d08..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects26_test/uses.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.A1" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects26_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects26_test/uses.txt new file mode 100644 index 00000000..c9005a28 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects26_test/uses.txt @@ -0,0 +1,14 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.A1 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] + ], + objectsOrClasses: [] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects27_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects27_test/description.md index d6ac23cf..b84841c4 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects27_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects27_test/description.md @@ -1,5 +1,5 @@ -### Objects: subtypes and annotations invokes +### Objects: supertypes and annotations invokes This project contains `Reflekt` invokes. -First use `withSubTypes` with the not top-level `AInterfaceTest`, +First use `withSupertypes` with the not top-level `AInterfaceTest`, then use `withAnnotations` without arguments. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects27_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects27_test/invokes.json deleted file mode 100644 index 050f83ce..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects27_test/invokes.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects27_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects27_test/invokes.txt new file mode 100644 index 00000000..bc41564d --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects27_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [ + supertypes: [ + io.reflekt.test.AInterfaceTest + ], + annotations: [] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects27_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects27_test/project/test/Main.kt index e62f4e38..6b62ca33 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects27_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects27_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withSubTypes(AInterfaceTest::class).withAnnotations() + val objects = Reflekt.objects().withSupertypes(AInterfaceTest::class).withAnnotations() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects27_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects27_test/uses.json deleted file mode 100644 index 5f362ce9..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects27_test/uses.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [] - }, - [ - "io.reflekt.test.A1", - "io.reflekt.test.A2", - "io.reflekt.test.A3" - ] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects27_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects27_test/uses.txt new file mode 100644 index 00000000..373e753f --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects27_test/uses.txt @@ -0,0 +1,15 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.AInterfaceTest + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.A1, + io.reflekt.test.A2, + io.reflekt.test.A3 + ] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects28_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects28_test/description.md index b8786193..ef83541c 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects28_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects28_test/description.md @@ -1,5 +1,5 @@ -### Objects: subtypes and annotations invokes +### Objects: supertypes and annotations invokes This project contains `Reflekt` invokes. -First use `withSubTypes` with the not top-level `AInterfaceTest`, +First use `withSupertypes` with the not top-level `AInterfaceTest`, then use `withAnnotations` with one argument. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects28_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects28_test/invokes.json deleted file mode 100644 index 3f41df0e..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects28_test/invokes.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest" - ] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects28_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects28_test/invokes.txt new file mode 100644 index 00000000..f02e2bea --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects28_test/invokes.txt @@ -0,0 +1,10 @@ +objects: [ + supertypes: [ + io.reflekt.test.AInterfaceTest + ], + annotations: [ + io.reflekt.test.SecondAnnotationTest + ] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects28_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects28_test/project/test/Main.kt index 16d388c6..9d0e7475 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects28_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects28_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withSubTypes(AInterfaceTest::class).withAnnotations(SecondAnnotationTest::class) + val objects = Reflekt.objects().withSupertypes(AInterfaceTest::class).withAnnotations(SecondAnnotationTest::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects28_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects28_test/uses.json deleted file mode 100644 index 78b3e292..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects28_test/uses.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest" - ] - }, - [ - "io.reflekt.test.A2" - ] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects28_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects28_test/uses.txt new file mode 100644 index 00000000..08514323 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects28_test/uses.txt @@ -0,0 +1,15 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.AInterfaceTest + ], + annotations: [ + io.reflekt.test.SecondAnnotationTest + ] + ], + objectsOrClasses: [ + io.reflekt.test.A2 + ] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects29_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects29_test/description.md index 32595a1e..b79143e9 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects29_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects29_test/description.md @@ -1,5 +1,5 @@ -### Objects: subtypes and annotations invokes +### Objects: supertypes and annotations invokes This project contains `Reflekt` invokes. -First use `withSubTypes` with the not top-level `AInterfaceTest`, +First use `withSupertypes` with the not top-level `AInterfaceTest`, then use `withAnnotations` with several arguments. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects29_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects29_test/invokes.json deleted file mode 100644 index 0723a1e1..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects29_test/invokes.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects29_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects29_test/invokes.txt new file mode 100644 index 00000000..4b6c908f --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects29_test/invokes.txt @@ -0,0 +1,11 @@ +objects: [ + supertypes: [ + io.reflekt.test.AInterfaceTest + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects29_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects29_test/project/test/Main.kt index 205c206d..d46bedd8 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects29_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects29_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withSubTypes(AInterfaceTest::class).withAnnotations(SecondAnnotationTest::class, FirstAnnotationTest::class) + val objects = Reflekt.objects().withSupertypes(AInterfaceTest::class).withAnnotations(SecondAnnotationTest::class, FirstAnnotationTest::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects29_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects29_test/uses.json deleted file mode 100644 index 80755251..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects29_test/uses.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [ - "io.reflekt.test.A2", - "io.reflekt.test.A3" - ] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects29_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects29_test/uses.txt new file mode 100644 index 00000000..70b1dd0b --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects29_test/uses.txt @@ -0,0 +1,17 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.AInterfaceTest + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] + ], + objectsOrClasses: [ + io.reflekt.test.A2, + io.reflekt.test.A3 + ] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects2_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects2_test/description.md index b2bee24a..2f1d89d4 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects2_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects2_test/description.md @@ -1,4 +1,4 @@ -### Objects: Only subtypes invokes +### Objects: Only supertypes invokes -This project contains `Reflekt` invokes, but all invokes are only subtypes. -Use only one `withSubTypes` invoked with the top-level type `A1`. +This project contains `Reflekt` invokes, but all invokes are only supertypes. +Use only one `withSupertypes` invoked with the top-level type `A1`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects2_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects2_test/invokes.json deleted file mode 100644 index cfd28c71..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects2_test/invokes.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.A1" - ], - "annotations": [] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects2_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects2_test/invokes.txt new file mode 100644 index 00000000..28012bf5 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects2_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [ + supertypes: [ + io.reflekt.test.A1 + ], + annotations: [] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects2_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects2_test/project/test/Main.kt index 84b68886..d38409fb 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects2_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects2_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withSubTypes(A1::class) + val objects = Reflekt.objects().withSupertypes(A1::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects2_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects2_test/uses.json deleted file mode 100644 index 76f9df5c..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects2_test/uses.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.A1" - ], - "annotations": [] - }, - [ - "io.reflekt.test.A1" - ] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects2_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects2_test/uses.txt new file mode 100644 index 00000000..fed75736 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects2_test/uses.txt @@ -0,0 +1,13 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.A1 + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.A1 + ] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects30_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects30_test/description.md index 6474d753..73531b83 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects30_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects30_test/description.md @@ -1,5 +1,5 @@ -### Objects: subtypes and annotations invokes +### Objects: supertypes and annotations invokes This project contains `Reflekt` invokes. First use `withAnnotations` without arguments, -then use `withSubType` with the top-level class `A1`. +then use `withSupertype` with the top-level class `A1`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects30_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects30_test/invokes.json deleted file mode 100644 index cfd28c71..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects30_test/invokes.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.A1" - ], - "annotations": [] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects30_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects30_test/invokes.txt new file mode 100644 index 00000000..28012bf5 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects30_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [ + supertypes: [ + io.reflekt.test.A1 + ], + annotations: [] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects30_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects30_test/project/test/Main.kt index ab9aeda9..5fedeedf 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects30_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects30_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withAnnotations().withSubType() + val objects = Reflekt.objects().withAnnotations().withSupertype() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects30_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects30_test/uses.json deleted file mode 100644 index 76f9df5c..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects30_test/uses.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.A1" - ], - "annotations": [] - }, - [ - "io.reflekt.test.A1" - ] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects30_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects30_test/uses.txt new file mode 100644 index 00000000..fed75736 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects30_test/uses.txt @@ -0,0 +1,13 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.A1 + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.A1 + ] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects31_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects31_test/description.md index 62c7dc8f..645a9754 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects31_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects31_test/description.md @@ -1,5 +1,5 @@ -### Objects: subtypes and annotations invokes +### Objects: supertypes and annotations invokes This project contains `Reflekt` invokes. First use `withAnnotations` with one argument. The result of objects should be empty, -then use `withSubType` with the top-level class `A1`. +then use `withSupertype` with the top-level class `A1`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects31_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects31_test/invokes.json deleted file mode 100644 index 69d1e48d..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects31_test/invokes.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.A1" - ], - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects31_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects31_test/invokes.txt new file mode 100644 index 00000000..d11d56dd --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects31_test/invokes.txt @@ -0,0 +1,10 @@ +objects: [ + supertypes: [ + io.reflekt.test.A1 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects31_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects31_test/project/test/Main.kt index c3e8863d..e5279d9f 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects31_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects31_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withAnnotations(FirstAnnotationTest::class).withSubType() + val objects = Reflekt.objects().withAnnotations(FirstAnnotationTest::class).withSupertype() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects31_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects31_test/uses.json deleted file mode 100644 index 725cd19b..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects31_test/uses.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.A1" - ], - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects31_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects31_test/uses.txt new file mode 100644 index 00000000..919a22d6 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects31_test/uses.txt @@ -0,0 +1,13 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.A1 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] + ], + objectsOrClasses: [] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects32_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects32_test/description.md index 05aae0ec..077c45e3 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects32_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects32_test/description.md @@ -1,5 +1,5 @@ -### Objects: subtypes and annotations invokes +### Objects: supertypes and annotations invokes This project contains `Reflekt` invokes. First use `withAnnotations` with one argument. The result of objects should not be empty, -then use `withSubType` with the top-level class `A3`. +then use `withSupertype` with the top-level class `A3`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects32_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects32_test/invokes.json deleted file mode 100644 index 37593dd5..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects32_test/invokes.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.A3" - ], - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects32_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects32_test/invokes.txt new file mode 100644 index 00000000..ca0e1a2f --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects32_test/invokes.txt @@ -0,0 +1,10 @@ +objects: [ + supertypes: [ + io.reflekt.test.A3 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects32_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects32_test/project/test/Main.kt index 14223d3d..00b1ce2f 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects32_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects32_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withAnnotations(FirstAnnotationTest::class).withSubType() + val objects = Reflekt.objects().withAnnotations(FirstAnnotationTest::class).withSupertype() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects32_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects32_test/uses.json deleted file mode 100644 index 95b49b43..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects32_test/uses.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.A3" - ], - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [ - "io.reflekt.test.A3" - ] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects32_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects32_test/uses.txt new file mode 100644 index 00000000..9725e9f5 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects32_test/uses.txt @@ -0,0 +1,15 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.A3 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] + ], + objectsOrClasses: [ + io.reflekt.test.A3 + ] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects33_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects33_test/description.md index 99bb4456..d7730902 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects33_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects33_test/description.md @@ -1,5 +1,5 @@ -### Objects: subtypes and annotations invokes +### Objects: supertypes and annotations invokes This project contains `Reflekt` invokes. First use `withAnnotations` with several arguments. The result of objects should not be empty, -then use `withSubType` with the top-level class `A3`. +then use `withSupertype` with the top-level class `A3`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects33_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects33_test/invokes.json deleted file mode 100644 index 704ba263..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects33_test/invokes.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.A3" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects33_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects33_test/invokes.txt new file mode 100644 index 00000000..314b3656 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects33_test/invokes.txt @@ -0,0 +1,11 @@ +objects: [ + supertypes: [ + io.reflekt.test.A3 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects33_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects33_test/project/test/Main.kt index e2536ff4..22e1efa1 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects33_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects33_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withAnnotations(FirstAnnotationTest::class, SecondAnnotationTest::class).withSubType() + val objects = Reflekt.objects().withAnnotations(FirstAnnotationTest::class, SecondAnnotationTest::class).withSupertype() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects33_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects33_test/uses.json deleted file mode 100644 index 36b987a5..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects33_test/uses.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.A3" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [ - "io.reflekt.test.A3" - ] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects33_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects33_test/uses.txt new file mode 100644 index 00000000..0d6e7dc7 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects33_test/uses.txt @@ -0,0 +1,16 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.A3 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] + ], + objectsOrClasses: [ + io.reflekt.test.A3 + ] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects34_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects34_test/description.md index 566e04e3..99dfb8b3 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects34_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects34_test/description.md @@ -1,5 +1,5 @@ -### Objects: subtypes and annotations invokes +### Objects: supertypes and annotations invokes This project contains `Reflekt` invokes. First use `withAnnotations` with several arguments. The result of objects should be empty, -then use `withSubType` with the top-level class `A1`. +then use `withSupertype` with the top-level class `A1`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects34_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects34_test/invokes.json deleted file mode 100644 index 34c790b8..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects34_test/invokes.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.A1" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects34_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects34_test/invokes.txt new file mode 100644 index 00000000..18d47029 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects34_test/invokes.txt @@ -0,0 +1,11 @@ +objects: [ + supertypes: [ + io.reflekt.test.A1 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects34_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects34_test/project/test/Main.kt index b7303fa5..0e663fc3 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects34_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects34_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withAnnotations(FirstAnnotationTest::class, SecondAnnotationTest::class).withSubType() + val objects = Reflekt.objects().withAnnotations(FirstAnnotationTest::class, SecondAnnotationTest::class).withSupertype() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects34_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects34_test/uses.json deleted file mode 100644 index 53aa6d08..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects34_test/uses.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.A1" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects34_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects34_test/uses.txt new file mode 100644 index 00000000..c9005a28 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects34_test/uses.txt @@ -0,0 +1,14 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.A1 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] + ], + objectsOrClasses: [] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects35_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects35_test/description.md index 40ef56f2..291e4552 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects35_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects35_test/description.md @@ -1,5 +1,5 @@ -### Objects: subtypes and annotations invokes +### Objects: supertypes and annotations invokes This project contains `Reflekt` invokes. First use `withAnnotations` without arguments, -then use `withSubType` with the not top-level `AInterfaceTest`. +then use `withSupertype` with the not top-level `AInterfaceTest`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects35_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects35_test/invokes.json deleted file mode 100644 index 050f83ce..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects35_test/invokes.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects35_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects35_test/invokes.txt new file mode 100644 index 00000000..bc41564d --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects35_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [ + supertypes: [ + io.reflekt.test.AInterfaceTest + ], + annotations: [] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects35_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects35_test/project/test/Main.kt index 53c176fa..e1654042 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects35_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects35_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withAnnotations().withSubType() + val objects = Reflekt.objects().withAnnotations().withSupertype() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects35_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects35_test/uses.json deleted file mode 100644 index 5f362ce9..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects35_test/uses.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [] - }, - [ - "io.reflekt.test.A1", - "io.reflekt.test.A2", - "io.reflekt.test.A3" - ] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects35_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects35_test/uses.txt new file mode 100644 index 00000000..373e753f --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects35_test/uses.txt @@ -0,0 +1,15 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.AInterfaceTest + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.A1, + io.reflekt.test.A2, + io.reflekt.test.A3 + ] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects36_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects36_test/description.md index 5c8b2c02..e6f93172 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects36_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects36_test/description.md @@ -1,5 +1,5 @@ -### Objects: subtypes and annotations invokes +### Objects: supertypes and annotations invokes This project contains `Reflekt` invokes. First use `withAnnotations` with one argument, -then use `withSubType` with the not top-level `AInterfaceTest`. +then use `withSupertype` with the not top-level `AInterfaceTest`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects36_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects36_test/invokes.json deleted file mode 100644 index 3f41df0e..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects36_test/invokes.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest" - ] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects36_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects36_test/invokes.txt new file mode 100644 index 00000000..f02e2bea --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects36_test/invokes.txt @@ -0,0 +1,10 @@ +objects: [ + supertypes: [ + io.reflekt.test.AInterfaceTest + ], + annotations: [ + io.reflekt.test.SecondAnnotationTest + ] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects36_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects36_test/project/test/Main.kt index 5d730cd5..d9e58560 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects36_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects36_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withAnnotations(SecondAnnotationTest::class).withSubType() + val objects = Reflekt.objects().withAnnotations(SecondAnnotationTest::class).withSupertype() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects36_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects36_test/uses.json deleted file mode 100644 index 78b3e292..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects36_test/uses.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest" - ] - }, - [ - "io.reflekt.test.A2" - ] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects36_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects36_test/uses.txt new file mode 100644 index 00000000..08514323 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects36_test/uses.txt @@ -0,0 +1,15 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.AInterfaceTest + ], + annotations: [ + io.reflekt.test.SecondAnnotationTest + ] + ], + objectsOrClasses: [ + io.reflekt.test.A2 + ] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects37_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects37_test/description.md index 0187bdc8..c51ba6af 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects37_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects37_test/description.md @@ -1,5 +1,5 @@ -### Objects: subtypes and annotations invokes +### Objects: supertypes and annotations invokes This project contains `Reflekt` invokes. First use `withAnnotations` with several arguments, -then use `withSubType` with the not top-level `AInterfaceTest`. +then use `withSupertype` with the not top-level `AInterfaceTest`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects37_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects37_test/invokes.json deleted file mode 100644 index 0723a1e1..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects37_test/invokes.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects37_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects37_test/invokes.txt new file mode 100644 index 00000000..4b6c908f --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects37_test/invokes.txt @@ -0,0 +1,11 @@ +objects: [ + supertypes: [ + io.reflekt.test.AInterfaceTest + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects37_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects37_test/project/test/Main.kt index 93296985..8827e5a7 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects37_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects37_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withAnnotations(SecondAnnotationTest::class, FirstAnnotationTest::class).withSubType() + val objects = Reflekt.objects().withAnnotations(SecondAnnotationTest::class, FirstAnnotationTest::class).withSupertype() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects37_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects37_test/uses.json deleted file mode 100644 index 80755251..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects37_test/uses.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [ - "io.reflekt.test.A2", - "io.reflekt.test.A3" - ] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects37_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects37_test/uses.txt new file mode 100644 index 00000000..70b1dd0b --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects37_test/uses.txt @@ -0,0 +1,17 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.AInterfaceTest + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] + ], + objectsOrClasses: [ + io.reflekt.test.A2, + io.reflekt.test.A3 + ] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects38_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects38_test/description.md index 03a3ab4e..eda1bd4b 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects38_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects38_test/description.md @@ -1,5 +1,5 @@ -### Objects: subtypes and annotations invokes +### Objects: supertypes and annotations invokes This project contains `Reflekt` invokes. First use `withAnnotations` without arguments, -then use `withSubTypes` without arguments. +then use `withSupertypes` without arguments. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects38_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects38_test/invokes.json deleted file mode 100644 index cfd28c71..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects38_test/invokes.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.A1" - ], - "annotations": [] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects38_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects38_test/invokes.txt new file mode 100644 index 00000000..28012bf5 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects38_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [ + supertypes: [ + io.reflekt.test.A1 + ], + annotations: [] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects38_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects38_test/project/test/Main.kt index 63b052bd..8be2ecbc 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects38_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects38_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withAnnotations().withSubTypes() + val objects = Reflekt.objects().withAnnotations().withSupertypes() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects38_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects38_test/uses.json deleted file mode 100644 index 76f9df5c..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects38_test/uses.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.A1" - ], - "annotations": [] - }, - [ - "io.reflekt.test.A1" - ] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects38_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects38_test/uses.txt new file mode 100644 index 00000000..fed75736 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects38_test/uses.txt @@ -0,0 +1,13 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.A1 + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.A1 + ] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects39_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects39_test/description.md index ad318414..0631eee4 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects39_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects39_test/description.md @@ -1,5 +1,5 @@ -### Objects: subtypes and annotations invokes +### Objects: supertypes and annotations invokes This project contains `Reflekt` invokes. First use `withAnnotations` without arguments, -then use `withSubTypes` with the top-level class `A1`. +then use `withSupertypes` with the top-level class `A1`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects39_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects39_test/invokes.json deleted file mode 100644 index cfd28c71..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects39_test/invokes.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.A1" - ], - "annotations": [] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects39_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects39_test/invokes.txt new file mode 100644 index 00000000..28012bf5 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects39_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [ + supertypes: [ + io.reflekt.test.A1 + ], + annotations: [] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects39_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects39_test/project/test/Main.kt index 5a5f438e..6345d88a 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects39_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects39_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withAnnotations().withSubTypes(A1::class) + val objects = Reflekt.objects().withAnnotations().withSupertypes(A1::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects39_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects39_test/uses.json deleted file mode 100644 index 76f9df5c..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects39_test/uses.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.A1" - ], - "annotations": [] - }, - [ - "io.reflekt.test.A1" - ] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects39_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects39_test/uses.txt new file mode 100644 index 00000000..fed75736 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects39_test/uses.txt @@ -0,0 +1,13 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.A1 + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.A1 + ] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects3_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects3_test/description.md index f41e879e..cba0d499 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects3_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects3_test/description.md @@ -1,4 +1,4 @@ -### Objects: Only subtypes invokes +### Objects: Only supertypes invokes -This project contains `Reflekt` invokes, but all invokes are only subtypes. -Use one `withSubTypes` and one `withSubType` invoked with the top-level type `A1`. +This project contains `Reflekt` invokes, but all invokes are only supertypes. +Use one `withSupertypes` and one `withSupertype` invoked with the top-level type `A1`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects3_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects3_test/invokes.json deleted file mode 100644 index cfd28c71..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects3_test/invokes.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.A1" - ], - "annotations": [] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects3_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects3_test/invokes.txt new file mode 100644 index 00000000..28012bf5 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects3_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [ + supertypes: [ + io.reflekt.test.A1 + ], + annotations: [] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects3_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects3_test/project/test/Main.kt index d4e1629c..a6eb06a6 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects3_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects3_test/project/test/Main.kt @@ -3,6 +3,6 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withSubTypes(A1::class) - val objects1 = Reflekt.objects().withSubType() + val objects = Reflekt.objects().withSupertypes(A1::class) + val objects1 = Reflekt.objects().withSupertype() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects3_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects3_test/uses.json deleted file mode 100644 index 76f9df5c..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects3_test/uses.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.A1" - ], - "annotations": [] - }, - [ - "io.reflekt.test.A1" - ] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects3_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects3_test/uses.txt new file mode 100644 index 00000000..fed75736 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects3_test/uses.txt @@ -0,0 +1,13 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.A1 + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.A1 + ] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects40_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects40_test/description.md index b83ff4e9..d7c1728a 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects40_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects40_test/description.md @@ -1,5 +1,5 @@ -### Objects: subtypes and annotations invokes +### Objects: supertypes and annotations invokes This project contains `Reflekt` invokes. First use `withAnnotations` with one argument. The result of objects should be empty, -then use `withSubTypes` with the top-level class `A1`. +then use `withSupertypes` with the top-level class `A1`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects40_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects40_test/invokes.json deleted file mode 100644 index 69d1e48d..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects40_test/invokes.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.A1" - ], - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects40_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects40_test/invokes.txt new file mode 100644 index 00000000..d11d56dd --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects40_test/invokes.txt @@ -0,0 +1,10 @@ +objects: [ + supertypes: [ + io.reflekt.test.A1 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects40_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects40_test/project/test/Main.kt index e88d9ee7..99bf9ade 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects40_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects40_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withAnnotations(FirstAnnotationTest::class).withSubTypes(A1::class) + val objects = Reflekt.objects().withAnnotations(FirstAnnotationTest::class).withSupertypes(A1::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects40_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects40_test/uses.json deleted file mode 100644 index 725cd19b..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects40_test/uses.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.A1" - ], - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects40_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects40_test/uses.txt new file mode 100644 index 00000000..919a22d6 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects40_test/uses.txt @@ -0,0 +1,13 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.A1 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] + ], + objectsOrClasses: [] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects41_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects41_test/description.md index 9e58a484..95066762 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects41_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects41_test/description.md @@ -1,5 +1,5 @@ -### Objects: subtypes and annotations invokes +### Objects: supertypes and annotations invokes This project contains `Reflekt` invokes. First use `withAnnotations` with one argument. The result of objects should not be empty, -then use `withSubTypes` with the top-level class `A3`. +then use `withSupertypes` with the top-level class `A3`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects41_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects41_test/invokes.json deleted file mode 100644 index 37593dd5..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects41_test/invokes.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.A3" - ], - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects41_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects41_test/invokes.txt new file mode 100644 index 00000000..ca0e1a2f --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects41_test/invokes.txt @@ -0,0 +1,10 @@ +objects: [ + supertypes: [ + io.reflekt.test.A3 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects41_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects41_test/project/test/Main.kt index a6c8865f..c02eed8a 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects41_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects41_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withAnnotations(FirstAnnotationTest::class).withSubTypes(A3::class) + val objects = Reflekt.objects().withAnnotations(FirstAnnotationTest::class).withSupertypes(A3::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects41_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects41_test/uses.json deleted file mode 100644 index 95b49b43..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects41_test/uses.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.A3" - ], - "annotations": [ - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [ - "io.reflekt.test.A3" - ] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects41_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects41_test/uses.txt new file mode 100644 index 00000000..9725e9f5 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects41_test/uses.txt @@ -0,0 +1,15 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.A3 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest + ] + ], + objectsOrClasses: [ + io.reflekt.test.A3 + ] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects42_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects42_test/description.md index cd63dbae..d3ab27bd 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects42_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects42_test/description.md @@ -1,5 +1,5 @@ -### Objects: subtypes and annotations invokes +### Objects: supertypes and annotations invokes This project contains `Reflekt` invokes. First use `withAnnotations` with several arguments. The result of objects should not be empty, -then use `withSubTypes` with the top-level class `A3`. +then use `withSupertypes` with the top-level class `A3`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects42_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects42_test/invokes.json deleted file mode 100644 index 704ba263..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects42_test/invokes.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.A3" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects42_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects42_test/invokes.txt new file mode 100644 index 00000000..314b3656 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects42_test/invokes.txt @@ -0,0 +1,11 @@ +objects: [ + supertypes: [ + io.reflekt.test.A3 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects42_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects42_test/project/test/Main.kt index 78789c0b..2e1e43cc 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects42_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects42_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withAnnotations(FirstAnnotationTest::class, SecondAnnotationTest::class).withSubTypes(A3::class) + val objects = Reflekt.objects().withAnnotations(FirstAnnotationTest::class, SecondAnnotationTest::class).withSupertypes(A3::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects42_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects42_test/uses.json deleted file mode 100644 index 36b987a5..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects42_test/uses.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.A3" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [ - "io.reflekt.test.A3" - ] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects42_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects42_test/uses.txt new file mode 100644 index 00000000..0d6e7dc7 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects42_test/uses.txt @@ -0,0 +1,16 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.A3 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] + ], + objectsOrClasses: [ + io.reflekt.test.A3 + ] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects43_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects43_test/description.md index 5dc76cae..af866a42 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects43_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects43_test/description.md @@ -1,5 +1,5 @@ -### Objects: subtypes and annotations invokes +### Objects: supertypes and annotations invokes This project contains `Reflekt` invokes. First use `withAnnotations` with several arguments. The result of objects should be empty, -then use `withSubTypes` with the top-level class `A1`. +then use `withSupertypes` with the top-level class `A1`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects43_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects43_test/invokes.json deleted file mode 100644 index 34c790b8..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects43_test/invokes.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.A1" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects43_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects43_test/invokes.txt new file mode 100644 index 00000000..18d47029 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects43_test/invokes.txt @@ -0,0 +1,11 @@ +objects: [ + supertypes: [ + io.reflekt.test.A1 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects43_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects43_test/project/test/Main.kt index cadbe60e..ec066ba6 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects43_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects43_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withAnnotations(FirstAnnotationTest::class, SecondAnnotationTest::class).withSubTypes(A1::class) + val objects = Reflekt.objects().withAnnotations(FirstAnnotationTest::class, SecondAnnotationTest::class).withSupertypes(A1::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects43_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects43_test/uses.json deleted file mode 100644 index 53aa6d08..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects43_test/uses.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.A1" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects43_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects43_test/uses.txt new file mode 100644 index 00000000..c9005a28 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects43_test/uses.txt @@ -0,0 +1,14 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.A1 + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] + ], + objectsOrClasses: [] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects44_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects44_test/description.md index 749f2d09..db8a006d 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects44_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects44_test/description.md @@ -1,5 +1,5 @@ -### Objects: subtypes and annotations invokes +### Objects: supertypes and annotations invokes This project contains `Reflekt` invokes. First use `withAnnotations` without arguments, -then use `withSubTypes` with the not top-level `AInterfaceTest`. +then use `withSupertypes` with the not top-level `AInterfaceTest`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects44_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects44_test/invokes.json deleted file mode 100644 index 050f83ce..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects44_test/invokes.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects44_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects44_test/invokes.txt new file mode 100644 index 00000000..bc41564d --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects44_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [ + supertypes: [ + io.reflekt.test.AInterfaceTest + ], + annotations: [] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects44_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects44_test/project/test/Main.kt index b463321c..c026251a 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects44_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects44_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withAnnotations().withSubTypes(AInterfaceTest::class) + val objects = Reflekt.objects().withAnnotations().withSupertypes(AInterfaceTest::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects44_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects44_test/uses.json deleted file mode 100644 index 5f362ce9..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects44_test/uses.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [] - }, - [ - "io.reflekt.test.A1", - "io.reflekt.test.A2", - "io.reflekt.test.A3" - ] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects44_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects44_test/uses.txt new file mode 100644 index 00000000..373e753f --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects44_test/uses.txt @@ -0,0 +1,15 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.AInterfaceTest + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.A1, + io.reflekt.test.A2, + io.reflekt.test.A3 + ] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects45_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects45_test/description.md index 05dd27ea..5393f34f 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects45_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects45_test/description.md @@ -1,5 +1,5 @@ -### Objects: subtypes and annotations invokes +### Objects: supertypes and annotations invokes This project contains `Reflekt` invokes. First use `withAnnotations` with one argument, -then use `withSubTypes` with the not top-level `AInterfaceTest`. +then use `withSupertypes` with the not top-level `AInterfaceTest`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects45_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects45_test/invokes.json deleted file mode 100644 index 3f41df0e..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects45_test/invokes.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest" - ] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects45_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects45_test/invokes.txt new file mode 100644 index 00000000..f02e2bea --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects45_test/invokes.txt @@ -0,0 +1,10 @@ +objects: [ + supertypes: [ + io.reflekt.test.AInterfaceTest + ], + annotations: [ + io.reflekt.test.SecondAnnotationTest + ] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects45_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects45_test/project/test/Main.kt index 4c8a7451..dc597b28 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects45_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects45_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withAnnotations(SecondAnnotationTest::class).withSubTypes(AInterfaceTest::class) + val objects = Reflekt.objects().withAnnotations(SecondAnnotationTest::class).withSupertypes(AInterfaceTest::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects45_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects45_test/uses.json deleted file mode 100644 index 78b3e292..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects45_test/uses.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest" - ] - }, - [ - "io.reflekt.test.A2" - ] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects45_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects45_test/uses.txt new file mode 100644 index 00000000..08514323 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects45_test/uses.txt @@ -0,0 +1,15 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.AInterfaceTest + ], + annotations: [ + io.reflekt.test.SecondAnnotationTest + ] + ], + objectsOrClasses: [ + io.reflekt.test.A2 + ] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects46_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects46_test/description.md index 29933e4b..926507c8 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects46_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects46_test/description.md @@ -1,5 +1,5 @@ -### Objects: subtypes and annotations invokes +### Objects: supertypes and annotations invokes This project contains `Reflekt` invokes. First use `withAnnotations` with several arguments, -then use `withSubTypes` with the not top-level `AInterfaceTest`. +then use `withSupertypes` with the not top-level `AInterfaceTest`. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects46_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects46_test/invokes.json deleted file mode 100644 index 0723a1e1..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects46_test/invokes.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects46_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects46_test/invokes.txt new file mode 100644 index 00000000..4b6c908f --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects46_test/invokes.txt @@ -0,0 +1,11 @@ +objects: [ + supertypes: [ + io.reflekt.test.AInterfaceTest + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects46_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects46_test/project/test/Main.kt index d775675a..5c99ebe8 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects46_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects46_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withAnnotations(SecondAnnotationTest::class, FirstAnnotationTest::class).withSubTypes(AInterfaceTest::class) + val objects = Reflekt.objects().withAnnotations(SecondAnnotationTest::class, FirstAnnotationTest::class).withSupertypes(AInterfaceTest::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects46_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects46_test/uses.json deleted file mode 100644 index 80755251..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects46_test/uses.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [ - "io.reflekt.test.SecondAnnotationTest", - "io.reflekt.test.FirstAnnotationTest" - ] - }, - [ - "io.reflekt.test.A2", - "io.reflekt.test.A3" - ] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects46_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects46_test/uses.txt new file mode 100644 index 00000000..70b1dd0b --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects46_test/uses.txt @@ -0,0 +1,17 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.AInterfaceTest + ], + annotations: [ + io.reflekt.test.FirstAnnotationTest, + io.reflekt.test.SecondAnnotationTest + ] + ], + objectsOrClasses: [ + io.reflekt.test.A2, + io.reflekt.test.A3 + ] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects4_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects4_test/description.md index b5ba6c30..f84a8edf 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects4_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects4_test/description.md @@ -1,4 +1,4 @@ -### Objects: Only subtypes invokes +### Objects: Only supertypes invokes -This project contains `Reflekt` invokes, but all invokes are only subtypes. -Use only one `withSubType` invoked with the not top-level`AInterfaceTest` interface. +This project contains `Reflekt` invokes, but all invokes are only supertypes. +Use only one `withSupertype` invoked with the not top-level`AInterfaceTest` interface. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects4_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects4_test/invokes.json deleted file mode 100644 index 050f83ce..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects4_test/invokes.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects4_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects4_test/invokes.txt new file mode 100644 index 00000000..bc41564d --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects4_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [ + supertypes: [ + io.reflekt.test.AInterfaceTest + ], + annotations: [] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects4_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects4_test/project/test/Main.kt index f49a3e17..be718f11 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects4_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects4_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withSubType() + val objects = Reflekt.objects().withSupertype() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects4_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects4_test/uses.json deleted file mode 100644 index 5f362ce9..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects4_test/uses.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [] - }, - [ - "io.reflekt.test.A1", - "io.reflekt.test.A2", - "io.reflekt.test.A3" - ] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects4_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects4_test/uses.txt new file mode 100644 index 00000000..373e753f --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects4_test/uses.txt @@ -0,0 +1,15 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.AInterfaceTest + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.A1, + io.reflekt.test.A2, + io.reflekt.test.A3 + ] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects5_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects5_test/description.md index dc06a421..6114f82e 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects5_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects5_test/description.md @@ -1,4 +1,4 @@ -### Objects: Only subtypes invokes +### Objects: Only supertypes invokes -This project contains `Reflekt` invokes, but all invokes are only subtypes. -Use only one `withSubTypes` invoked with the not top-level`AInterfaceTest` interface. +This project contains `Reflekt` invokes, but all invokes are only supertypes. +Use only one `withSupertypes` invoked with the not top-level`AInterfaceTest` interface. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects5_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects5_test/invokes.json deleted file mode 100644 index 050f83ce..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects5_test/invokes.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects5_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects5_test/invokes.txt new file mode 100644 index 00000000..bc41564d --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects5_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [ + supertypes: [ + io.reflekt.test.AInterfaceTest + ], + annotations: [] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects5_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects5_test/project/test/Main.kt index 0e86178d..20f3f9f7 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects5_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects5_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withSubTypes(AInterfaceTest::class) + val objects = Reflekt.objects().withSupertypes(AInterfaceTest::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects5_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects5_test/uses.json deleted file mode 100644 index 5f362ce9..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects5_test/uses.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [] - }, - [ - "io.reflekt.test.A1", - "io.reflekt.test.A2", - "io.reflekt.test.A3" - ] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects5_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects5_test/uses.txt new file mode 100644 index 00000000..373e753f --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects5_test/uses.txt @@ -0,0 +1,15 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.AInterfaceTest + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.A1, + io.reflekt.test.A2, + io.reflekt.test.A3 + ] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects6_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects6_test/description.md index 7aaacabd..c994c440 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects6_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects6_test/description.md @@ -1,4 +1,4 @@ -### Objects: Only subtypes invokes +### Objects: Only supertypes invokes -This project contains `Reflekt` invokes, but all invokes are only subtypes. -Use one `withSubTypes` and one `withSubType` invoked with the not top-level`AInterfaceTest` interface. +This project contains `Reflekt` invokes, but all invokes are only supertypes. +Use one `withSupertypes` and one `withSupertype` invoked with the not top-level`AInterfaceTest` interface. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects6_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects6_test/invokes.json deleted file mode 100644 index 050f83ce..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects6_test/invokes.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects6_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects6_test/invokes.txt new file mode 100644 index 00000000..bc41564d --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects6_test/invokes.txt @@ -0,0 +1,8 @@ +objects: [ + supertypes: [ + io.reflekt.test.AInterfaceTest + ], + annotations: [] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects6_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects6_test/project/test/Main.kt index ecd628b1..2a373821 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects6_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects6_test/project/test/Main.kt @@ -3,6 +3,6 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withSubTypes(AInterfaceTest::class) - val objects1 = Reflekt.objects().withSubType() + val objects = Reflekt.objects().withSupertypes(AInterfaceTest::class) + val objects1 = Reflekt.objects().withSupertype() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects6_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects6_test/uses.json deleted file mode 100644 index 5f362ce9..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects6_test/uses.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [] - }, - [ - "io.reflekt.test.A1", - "io.reflekt.test.A2", - "io.reflekt.test.A3" - ] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects6_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects6_test/uses.txt new file mode 100644 index 00000000..373e753f --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects6_test/uses.txt @@ -0,0 +1,15 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.AInterfaceTest + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.A1, + io.reflekt.test.A2, + io.reflekt.test.A3 + ] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects7_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects7_test/description.md index a8195444..4e8677e5 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects7_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects7_test/description.md @@ -1,4 +1,4 @@ -### Objects: Only subtypes invokes +### Objects: Only supertypes invokes -This project contains `Reflekt` invokes, but all invokes are only subtypes. -Use one `withSubTypes` without arguments. +This project contains `Reflekt` invokes, but all invokes are only supertypes. +Use one `withSupertypes` without arguments. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects7_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects7_test/invokes.json deleted file mode 100644 index 4c2d2ab5..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects7_test/invokes.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "objects": [], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects7_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects7_test/invokes.txt new file mode 100644 index 00000000..ce60440e --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects7_test/invokes.txt @@ -0,0 +1,3 @@ +objects: [], +classes: [], +functions: [] \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects7_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects7_test/project/test/Main.kt index de79d506..8cc982a7 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects7_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects7_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withSubTypes() + val objects = Reflekt.objects().withSupertypes() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects7_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects7_test/uses.json deleted file mode 100644 index ff53fe79..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects7_test/uses.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "objects": {}, - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects7_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects7_test/uses.txt new file mode 100644 index 00000000..f6257a41 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects7_test/uses.txt @@ -0,0 +1,3 @@ +objects: {}, +classes: {}, +functions: {} \ No newline at end of file diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects8_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects8_test/description.md index 0d425630..53bd1725 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects8_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects8_test/description.md @@ -1,4 +1,4 @@ -### Objects: Only subtypes invokes +### Objects: Only supertypes invokes -This project contains `Reflekt` invokes, but all invokes are only subtypes. -Use one `withSubTypes` with several arguments. +This project contains `Reflekt` invokes, but all invokes are only supertypes. +Use one `withSupertypes` with several arguments. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects8_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects8_test/invokes.json deleted file mode 100644 index 15f5767c..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects8_test/invokes.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest", - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects8_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects8_test/invokes.txt new file mode 100644 index 00000000..ea387ee2 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects8_test/invokes.txt @@ -0,0 +1,9 @@ +objects: [ + supertypes: [ + io.reflekt.test.AInterfaceTest, + io.reflekt.test.BInterfaceTest + ], + annotations: [] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects8_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects8_test/project/test/Main.kt index 8f12bb17..599e5e01 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects8_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects8_test/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withSubTypes(AInterfaceTest::class, BInterfaceTest::class) + val objects = Reflekt.objects().withSupertypes(AInterfaceTest::class, BInterfaceTest::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects8_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects8_test/uses.json deleted file mode 100644 index 2774f64c..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects8_test/uses.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest", - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [] - }, - [ - "io.reflekt.test.A1", - "io.reflekt.test.A2", - "io.reflekt.test.A3", - "io.reflekt.test.A4" - ] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects8_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects8_test/uses.txt new file mode 100644 index 00000000..104120e6 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects8_test/uses.txt @@ -0,0 +1,17 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.AInterfaceTest, + io.reflekt.test.BInterfaceTest + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.A1, + io.reflekt.test.A2, + io.reflekt.test.A3, + io.reflekt.test.A4 + ] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects9_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects9_test/description.md index 337e3582..d92086bb 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects9_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects9_test/description.md @@ -1,4 +1,4 @@ -### Objects: Only subtypes invokes +### Objects: Only supertypes invokes -This project contains `Reflekt` invokes, but all invokes are only subtypes. -Use one `withSubTypes` with several arguments and one `withSubType` with another argument. +This project contains `Reflekt` invokes, but all invokes are only supertypes. +Use one `withSupertypes` with several arguments and one `withSupertype` with another argument. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects9_test/invokes.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects9_test/invokes.json deleted file mode 100644 index 1fbe06ba..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects9_test/invokes.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "objects": [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest", - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [] - }, - { - "subTypes": [ - "kotlin.Any" - ], - "annotations": [] - } - ], - "classes": [], - "functions": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects9_test/invokes.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects9_test/invokes.txt new file mode 100644 index 00000000..360dd84e --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects9_test/invokes.txt @@ -0,0 +1,13 @@ +objects: [ + supertypes: [ + io.reflekt.test.AInterfaceTest, + io.reflekt.test.BInterfaceTest + ], + annotations: [], + supertypes: [ + kotlin.Any + ], + annotations: [] +], +classes: [], +functions: [] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects9_test/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects9_test/project/test/Main.kt index 3f142596..fc0520cc 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects9_test/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects9_test/project/test/Main.kt @@ -3,6 +3,6 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val objects = Reflekt.objects().withSubTypes(AInterfaceTest::class, BInterfaceTest::class) - val objects1 = Reflekt.objects().withSubType() + val objects = Reflekt.objects().withSupertypes(AInterfaceTest::class, BInterfaceTest::class) + val objects1 = Reflekt.objects().withSupertype() } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects9_test/uses.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects9_test/uses.json deleted file mode 100644 index e81d8ac4..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects9_test/uses.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "objects": [ - [ - { - "subTypes": [ - "io.reflekt.test.BInterfaceTest", - "io.reflekt.test.AInterfaceTest" - ], - "annotations": [] - }, - [ - "io.reflekt.test.A1", - "io.reflekt.test.A2", - "io.reflekt.test.A3", - "io.reflekt.test.A4" - ] - ], - [ - { - "subTypes": [ - "kotlin.Any" - ], - "annotations": [] - }, - [ - "io.reflekt.test.A1", - "io.reflekt.test.A2", - "io.reflekt.test.A3", - "io.reflekt.test.A4", - "io.reflekt.test.TestFunctions.Companion" - ] - ] - ], - "classes": {}, - "functions": {} -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects9_test/uses.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects9_test/uses.txt new file mode 100644 index 00000000..4eae5baf --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/data/objects9_test/uses.txt @@ -0,0 +1,30 @@ +objects: { + supertypesToAnnotations: [ + supertypes: [ + io.reflekt.test.AInterfaceTest, + io.reflekt.test.BInterfaceTest + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.A1, + io.reflekt.test.A2, + io.reflekt.test.A3, + io.reflekt.test.A4 + ], + supertypesToAnnotations: [ + supertypes: [ + kotlin.Any + ], + annotations: [] + ], + objectsOrClasses: [ + io.reflekt.test.A1, + io.reflekt.test.A2, + io.reflekt.test.A3, + io.reflekt.test.A4, + io.reflekt.test.TestFunctions.Companion + ] +}, +classes: {}, +functions: {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/parameterizedtype/functions/AbstractAndOverrideFunctions.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/parameterizedtype/functions/AbstractAndOverrideFunctions.kt new file mode 100644 index 00000000..4059933a --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/parameterizedtype/functions/AbstractAndOverrideFunctions.kt @@ -0,0 +1,68 @@ +package io.reflekt.plugin.analysis.parameterizedtype.functions + +interface MyInterfaceWithFunctions { + /** + * @kotlinType [@kotlin.ExtensionFunctionType] Function2 (kotlin.Function2) + * @subtypes: + * [MyInterfaceWithFunctions.foo2_MyInterfaceWithFunctions_Any_Any_abstract], + * [MyClassReceiver.foo2_Any_Any_Unit] + */ + fun foo2_MyInterfaceWithFunctions_Any_Any(any: Any): Any = "hello" + + /** + * @kotlinType [@kotlin.ExtensionFunctionType] Function2 (kotlin.Function2) + * @subtypes: + * [MyInterfaceWithFunctions.foo2_MyInterfaceWithFunctions_Any_Any], + * [MyClassReceiver.foo2_Any_Any_Unit] + */ + fun foo2_MyInterfaceWithFunctions_Any_Any_abstract(any: Any): Any + + /** + * @kotlinType [@kotlin.ExtensionFunctionType] Function1 (kotlin.Function1) + * @subtypes: + * [foo1_Any_Unit] + */ + fun foo1_MyInterfaceWithFunctions_Unit() {} +} + +abstract class MyAbstractClass : MyInterfaceWithFunctions { + /** + * @kotlinType [@kotlin.ExtensionFunctionType] Function1 (kotlin.Function1) + * @subtypes: + * [MyInterfaceWithFunctions.foo1_MyInterfaceWithFunctions_Unit], + * [foo1_Any_Unit] + */ + abstract fun foo1_MyAbstractClass_Unit() +} + +class MyClassWithFunctions : MyAbstractClass() { + + /** + * @kotlinType [@kotlin.ExtensionFunctionType] Function1 (kotlin.Function1) + * @subtypes: + * [MyInterfaceWithFunctions.foo1_MyInterfaceWithFunctions_Unit], + * [MyAbstractClass.foo1_MyAbstractClass_Unit] + * [foo1_Any_Unit] + */ + override fun foo1_MyAbstractClass_Unit() { } + + /** + * @kotlinType [@kotlin.ExtensionFunctionType] Function2 (kotlin.Function2) + * @subtypes: + * [MyInterfaceWithFunctions.foo2_MyInterfaceWithFunctions_Any_Any], + * [MyInterfaceWithFunctions.foo2_MyInterfaceWithFunctions_Any_Any_abstract], + * [MyClassWithFunctions.foo2_MyInterfaceWithFunctions_Any_Any_abstract], + * [MyClassReceiver.foo2_Any_Any_Unit] + */ + override fun foo2_MyInterfaceWithFunctions_Any_Any(any: Any): Any = 0 + + /** + * @kotlinType [@kotlin.ExtensionFunctionType] Function2 (kotlin.Function2) + * @subtypes: + * [MyClassReceiver.foo2_Any_Any_Unit], + * [MyInterfaceWithFunctions.foo2_MyInterfaceWithFunctions_Any_Any], + * [MyInterfaceWithFunctions.foo2_MyInterfaceWithFunctions_Any_Any_abstract], + * [MyClassWithFunctions.foo2_MyInterfaceWithFunctions_Any_Any] + */ + override fun foo2_MyInterfaceWithFunctions_Any_Any_abstract(any: Any): Any = 0 +} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/parameterizedtype/functions/AbstractAndOverrideFunctionsSimple.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/parameterizedtype/functions/AbstractAndOverrideFunctionsSimple.kt new file mode 100644 index 00000000..f9665923 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/parameterizedtype/functions/AbstractAndOverrideFunctionsSimple.kt @@ -0,0 +1,30 @@ +package io.reflekt.plugin.analysis.parameterizedtype.functions + +interface MySimpleInterface { + + /** + * @kotlinType [@kotlin.ExtensionFunctionType] Function1 (kotlin.Function1) + * @subtypes: + * [foo1_Any_Any], + * [foo1_Any_Any_nested], + * [foo1_Any_Any_nested_nested], + * [foo1_Any_Unit] + */ + fun foo1_MySimpleInterface_Any(): Any + +} + + +class MySimpleClass : MySimpleInterface { + + /** + * @kotlinType [@kotlin.ExtensionFunctionType] Function1 (kotlin.Function1) + * @subtypes: + * [MySimpleInterface.foo1_MySimpleInterface_Any], + * [foo1_Any_Any], + * [foo1_Any_Any_nested], + * [foo1_Any_Any_nested_nested], + * [foo1_Any_Unit] + */ + override fun foo1_MySimpleInterface_Any(): Any = 0 +} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/parameterizedtype/functions/FunctionsWithReceiver.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/parameterizedtype/functions/FunctionsWithReceiver.kt new file mode 100644 index 00000000..afa3c32b --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/parameterizedtype/functions/FunctionsWithReceiver.kt @@ -0,0 +1,158 @@ +package io.reflekt.plugin.analysis.parameterizedtype.functions + + +class MyClassReceiver : MyInterface { + + /** + * @kotlinType [@kotlin.ExtensionFunctionType] Function1 (kotlin.Function1) + * @subtypes: no subtypes + */ + fun foo1_MyClassReceiver_String(): String = "hello" + + /** + * @kotlinType [@kotlin.ExtensionFunctionType] Function2 (kotlin.Function2) + * @subtypes: + * [MyClassReceiver.foo2_Any_Any_Unit], + * [MyClassReceiver.foo2_MyClassReceiver_NumberExt_Unit] + */ + fun foo2_MyClassReceiver_Number_Unit(n: Number) {} + + /** + * @kotlinType [@kotlin.ExtensionFunctionType] Function2 (kotlin.Function2) + * @subtypes: + * [MyClassReceiver.foo2_Any_Any_Unit] + */ + fun foo2_MyClassReceiver_CharSequence_Unit(charSequence: CharSequence) {} + + /** + * @kotlinType [@kotlin.ExtensionFunctionType] Function2 (kotlin.Function2) + * @subtypes: + * [MyClassReceiver.foo2_Any_Any_Unit], + * [MyClassReceiver.foo2_MyClassReceiver_Number_Unit] + */ + fun Number.foo2_MyClassReceiver_NumberExt_Unit() {} + + + companion object { + + /** + * @kotlinType Function0 (kotlin.Function0) + * @subtypes: + * [MyObjectReceiver.foo0_Double], + * [foo0_Int], + * [foo0_MyAlias], + * [foo0_Number] + */ + fun foo0_Number(): Number = 0 + + /** + * @kotlinType [@kotlin.ExtensionFunctionType] Function1, Unit> (kotlin.Function1) + * @subtypes [foo1_Any_Unit] + */ + fun (() -> Number).foo1_Functional_Unit() {} + + /** + * @kotlinType Function2 (kotlin.Function2) + * @subtypes: no subtypes + */ + fun foo2_Any_Any_Unit(a1: Any, a2: Any) {} + + /** + * @kotlinType [@kotlin.ExtensionFunctionType] Function2 (kotlin.Function2) + * @subtypes: + * [MyClassReceiver.foo2_Any_Any_Unit] + */ + fun MyInterface.foo2_MyInterface_Int_Any(i: Int): Any = 0 + } +} + + +object MyObjectReceiver { + + /** + * @kotlinType Function0 (kotlin.Function0) + * @subtypes: + * [foo0_Unit], + * [fun0_Unit_generic] + */ + fun foo0_Unit() {} + + /** + * @kotlinType Function0 (kotlin.Function0) + * @subtypes: no subtypes + */ + fun foo0_Double(): Double = 0.0 + + /** + * @kotlinType Function1 (kotlin.Function1) + * @subtypes: + * [MyClassReceiver.foo1_MyClassReceiver_String], + * [foo1_Any_Any], + * [foo1_Any_Any_nested], + * [foo1_Any_Any_nested_nested], + * [foo1_Any_Unit], + * [foo1_MyClass_CharSequence] + */ + fun foo1_MyClassReceiver_Any(myClass: MyClassReceiver): Any = 0 + + /** + * @kotlinType [@kotlin.ExtensionFunctionType] Function1 (kotlin.Function1) + * @subtypes: + * [foo1_Int_Number], + * [foo1_MyAlias_Number] + */ + fun Int.foo1_Int_Number(): Number = 0 + + /** + * @kotlinType Function1, Unit> (kotlin.Function1) + * @subtypes: + * [MyClassReceiver.foo1_Functional_Unit], + * [foo1_Any_Unit] + */ + fun foo1_Functional_Unit(f: () -> Int) {} +} + + +/** + * @kotlinType [@kotlin.ExtensionFunctionType] Function1 (kotlin.Function1) + * @subtypes: + * [foo1_Any_Unit], + * [foo1_CharSequence_Unit] + */ +fun String.foo1_String_Unit() {} + +/** + * @kotlinType [@kotlin.ExtensionFunctionType] Function1, Unit> (kotlin.Function1) + * @subtypes: + * [foo1_Any_Unit], + * [foo1_ListAny_Unit] + */ +fun List.foo1_ListNumber_Unit() {} + +/** + * @kotlinType [@kotlin.ExtensionFunctionType] Function1 (kotlin.Function1) + * @subtypes: + * [MyClassReceiver.foo1_MyClassReceiver_String] + */ +fun MyClassReceiver.foo1_MyClass_CharSequence(): CharSequence = "hello" + +/** + * @kotlinType [@kotlin.ExtensionFunctionType] Function2 (kotlin.Function2) + * @subtypes: no subtypes + */ +fun Number.foo2_Number_Int_Int(int: Int): Int = 0 + +/** + * @kotlinType [@kotlin.ExtensionFunctionType] Function2, Unit> (kotlin.Function2) + * @subtypes: + * [MyClassReceiver.foo2_Any_Any_Unit], + * [foo2_MyInterface_ArrayOutNumber_Unit] + */ +fun MyInterface.foo2_MyInterface_ArrayOutInt_Unit(array: Array) {} + +/** + * @kotlinType [@kotlin.ExtensionFunctionType] Function2, Unit> (kotlin.Function2) + * @subtypes: + * [MyClassReceiver.foo2_Any_Any_Unit] + */ +fun MyInterface.foo2_MyInterface_ArrayOutNumber_Unit(array: Array) {} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/parameterizedtype/functions/GenericFunctions.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/parameterizedtype/functions/GenericFunctions.kt new file mode 100644 index 00000000..afb56e99 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/parameterizedtype/functions/GenericFunctions.kt @@ -0,0 +1,74 @@ +package io.reflekt.plugin.analysis.parameterizedtype.functions + + +class MyGenericClass : MyInterface { + + /** + * @kotlinType [@kotlin.ExtensionFunctionType] Function2, T, Unit> (kotlin.Function2) + * @subtypes: + * [MyClassReceiver.foo2_Any_Any_Unit] + */ + fun foo2_MyGenericClass_TNumber_Unit(t: T) {} + + /** + * @kotlinType [@kotlin.ExtensionFunctionType] Function2, S, Unit> (kotlin.Function2) + * @subtypes: + * [MyClassReceiver.foo2_Any_Any_Unit] + */ + fun foo2_MyGenericClass_SCharSequence_Unit(s: S) {} + + companion object { + /** + * @kotlinType Function0> (kotlin.Function0) + * @subtypes: no subtypes + */ + fun foo0_MyGenericClass() = MyGenericClass() + } +} + +object MyObject { + /** + * @kotlinType Function2 (kotlin.Function2) + * @subtypes: no subtypes + */ + fun foo2_S_T_Unit(s: S, t: T) {} +} + + +/** + * @kotlinType Function0 (kotlin.Function0) + * @subtypes: + * [MyObjectReceiver.foo0_Unit], + * [foo0_Unit] + */ +fun fun0_Unit_generic() {} + +/** + * @kotlinType Function1 (kotlin.Function1) + * @subtypes: no subtypes + */ +fun foo1_TNumber_Number(n: T): Number = 0 + +/** + * @kotlinType Function1 (kotlin.Function1) + * @subtypes: no subtypes + */ +fun foo1_T_Unit(t: T) {} + +/** + * @kotlinType [@kotlin.ExtensionFunctionType] Function5 (kotlin.Function5) + * @subtypes: no subtypes + */ +fun T.foo5_T_N_A_C_S_Unit(n: N, a: A, c: C, s: S) {} + +/** + * @kotlinType Function5 (kotlin.Function5) + * @subtypes: no subtypes + */ +fun foo5_Any_Number_Any_CharSequence_Any_Unit(a1: Any, n: Number, a2: Any, c: CharSequence, s: Any) {} + +/** + * @kotlinType Function0 (kotlin.Function0) + * @subtypes: no subtypes + */ +inline fun foo0_T(): T = TODO() diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/parameterizedtype/functions/NestedFunctions.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/parameterizedtype/functions/NestedFunctions.kt new file mode 100644 index 00000000..53658e6d --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/parameterizedtype/functions/NestedFunctions.kt @@ -0,0 +1,35 @@ +package io.reflekt.plugin.analysis.parameterizedtype.functions + +/** + * @kotlinType Function1 (kotlin.Function1) + * @subtypes: + * [foo1_Any_Any_nested], + * [foo1_Any_Any_nested_nested], + * [foo1_Any_Unit] + */ +fun foo1_Any_Any(any: Any): Any { + + /** + * @kotlinType Function1 (kotlin.Function1) + * @subtypes: + * [foo1_Any_Any], + * [foo1_Any_Any_nested_nested], + * [foo1_Any_Unit] + */ + fun foo1_Any_Any_nested(any: Any): Any { + + /** + * @kotlinType [@kotlin.ExtensionFunctionType] Function1 (kotlin.Function1) + * @subtypes: + * [foo1_Any_Any], + * [foo1_Any_Any_nested], + * [foo1_Any_Unit] + */ + fun Any.foo1_Any_Any_nested_nested(): Any = 0 + + return 0 + } + + return 0 +} + diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/parameterizedtype/functions/SimpleFunctions.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/parameterizedtype/functions/SimpleFunctions.kt new file mode 100644 index 00000000..d886cfe4 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/parameterizedtype/functions/SimpleFunctions.kt @@ -0,0 +1,153 @@ +package io.reflekt.plugin.analysis.parameterizedtype.functions + +typealias MyAlias = Int +interface MyInterface +class MyClass : MyInterface +enum class MyEnum : MyInterface { MY_ENUM } + + +/** + * test #11 + * @kotlinType Function0 (kotlin.Function0) + * @subtypes: + * [MyObjectReceiver.foo0_Unit] + * [fun0_Unit_generic] + */ +fun foo0_Unit() {} + +/** + * @kotlinType Function0 (kotlin.Function0) + * @subtypes: + * [MyObjectReceiver.foo0_Unit] + * [MyObjectReceiver.foo0_Double], + * [MyClassReceiver.foo0_Number], + * [MyGenericClass.foo0_MyGenericClass], + * [foo0_Functional], + * [foo0_Int], + * [foo0_List], + * [foo0_MyAlias], + * [foo0_MyClass], + * [foo0_MyEnum] + * [foo0_MyInterface], + * [foo0_Number], + * [foo0_String], + * [foo0_T], + * [foo0_Unit], + * [fun0_Unit_generic] + */ +fun foo0_Any(): Any = 0 + +/** + * @kotlinType Function0 (kotlin.Function0) + * @subtypes: no subtypes + */ +fun foo0_String(): String = "hello" + +/** + * @kotlinType Function0> (kotlin.Function0) + * @subtypes: no subtypes + */ +fun foo0_List(): List = listOf() + +/** + * @kotlinType Function0 (kotlin.Function0) + * @subtypes: + * [foo0_MyAlias] + */ +fun foo0_Int(): Int = 0 + +/** + * @kotlinType Function0 (kotlin.Function0) + * @subtypes: + * [MyClassReceiver.foo0_Number], + * [MyObjectReceiver.foo0_Double], + * [foo0_Int], + * [foo0_MyAlias] + */ +fun foo0_Number(): Number = 0 + +/** + * @kotlinType Function0 (kotlin.Function0) + * @subtypes: + * [foo0_Int] + */ +fun foo0_MyAlias(): MyAlias = 0 + +/** + * @kotlinType Function0 (kotlin.Function0) + * @subtypes: + * [MyGenericClass.foo0_MyGenericClass], + * [foo0_MyClass], + * [foo0_MyEnum] + * [foo0_T] + */ +fun foo0_MyInterface(): MyInterface = object : MyInterface {} + +/** + * @kotlinType Function0 (kotlin.Function0) + * @subtypes: no subtypes + */ +fun foo0_MyClass(): MyClass = MyClass() + +/** + * @kotlinType Function0 (kotlin.Function0) + * @subtypes: no subtypes + */ +fun foo0_MyEnum(): MyEnum = MyEnum.MY_ENUM + +/** + * @kotlinType Function0> (kotlin.Function0) + * @subtypes: no subtypes + */ +fun foo0_Functional(): () -> Unit = { } + +/** + * @kotlinType Function1 (kotlin.Function1) + * @subtypes: + * [foo1_Any_Unit] + */ +fun foo1_CharSequence_Unit(charSequence: CharSequence) {} + +/** + * @kotlinType Function1 (kotlin.Function1) + * @subtypes: + * [MyObjectReceiver.foo1_Int_Number], + * [foo1_MyAlias_Number] + */ +fun foo1_Int_Number(int: Int): Number = 0 + +/** + * @kotlinType Function1 (kotlin.Function1) + * @subtypes: + * [MyObjectReceiver.foo1_Int_Number], + * [foo1_Int_Number] + */ +fun foo1_MyAlias_Number(alias: MyAlias): Number = 0 + +/** + * @kotlinType Function1, Unit> (kotlin.Function1) + * @subtypes: + * [foo1_Any_Unit] + */ +fun foo1_ListAny_Unit(list: List) {} + +/** + * @kotlinType Function1>, Unit> (kotlin.Function1) + * @subtypes: + * [foo1_Any_Unit], + * [foo1_ListAny_Unit] + */ +fun foo1_ListListAny_Unit(list: List>) {} + +/** + * @kotlinType Function1 (kotlin.Function1) + * @subtypes: no subtypes + */ +fun foo1_Any_Unit(any: Any) {} + +/** + * @kotlinType Function2 (kotlin.Function2) + * @subtypes: + * [foo2_Number_Int_Int] + */ +fun foo2_Int_Int_Int(i1: Int, i2: Int): Int = 0 diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/parameterizedtype/types/FunctionTypes.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/parameterizedtype/types/FunctionTypes.kt new file mode 100644 index 00000000..bf69db69 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/parameterizedtype/types/FunctionTypes.kt @@ -0,0 +1,19 @@ +package io.reflekt.plugin.analysis.parameterizedtype.types + +fun main() { + fooWithType<() -> Unit>("Function0 (kotlin.Function0)") + + fooWithType<(String, Any) -> Nothing>("Function2 (kotlin.Function2)") + + fooWithType<(MyType) -> MyType>("Function1 (kotlin.Function1)") + + fooWithType<(MyTypeAlias) -> MyGenericType<*>>("Function1, MyGenericType<*>> (kotlin.Function1)") + + fooWithType<() -> MutableCollection>>>("Function0>>> (kotlin.Function0)") + + fooWithType<(MyInterfaceType) -> String>("Function1 (kotlin.Function1)") + + fooWithType<(MyInheritedType) -> MyGenericType>("Function1> (kotlin.Function1)") + + fooWithType<(MyObject) -> Number>("Function1 (kotlin.Function1)") +} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/parameterizedtype/types/NullableTypes.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/parameterizedtype/types/NullableTypes.kt new file mode 100644 index 00000000..e34d979c --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/parameterizedtype/types/NullableTypes.kt @@ -0,0 +1,18 @@ +package io.reflekt.plugin.analysis.parameterizedtype.types + +import java.util.ArrayList + +fun main() { + fooWithType("Any (kotlin.Any)") + fooWithType("Any? (kotlin.Any)") + + fooWithType("Unit (kotlin.Unit)") + fooWithType("Unit? (kotlin.Unit)") + + fooWithType("String (kotlin.String)") + fooWithType("String? (kotlin.String)") + + fooWithType Unit>?>("ArrayList>? (java.util.ArrayList)") + + fooWithType("MyObject? (io.reflekt.plugin.analysis.parameterizedtype.types.MyObject)") +} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/parameterizedtype/types/UserTypes.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/parameterizedtype/types/UserTypes.kt new file mode 100644 index 00000000..4d8bc82a --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/parameterizedtype/types/UserTypes.kt @@ -0,0 +1,15 @@ +package io.reflekt.plugin.analysis.parameterizedtype.types + +fun main() { + fooWithType>("List (kotlin.collections.List)") + + fooWithType("MyType (io.reflekt.plugin.analysis.parameterizedtype.types.MyType)") + + fooWithType>("List (kotlin.collections.List)") + + fooWithType>>("Array> (kotlin.Array)") + + fooWithType("MyObject (io.reflekt.plugin.analysis.parameterizedtype.types.MyObject)") + + fooWithType("MyEnumType (io.reflekt.plugin.analysis.parameterizedtype.types.MyEnumType)") +} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/parameterizedtype/types/Util.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/parameterizedtype/types/Util.kt new file mode 100644 index 00000000..5951307c --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/parameterizedtype/types/Util.kt @@ -0,0 +1,21 @@ +package io.reflekt.plugin.analysis.parameterizedtype.types + + +/** + * Function to test IrType or AstNode -> KotlinType, expected KotlinType is passed as argument + */ +fun fooWithType(kotlinType: String) { } + +typealias MyTypeAlias = List + +interface MyInterfaceType + +class MyType + +class MyInheritedType : MyInterfaceType + +class MyGenericType + +object MyObject + +enum class MyEnumType : MyInterfaceType { MY_ENUM } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/base_test/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/base_test/description.md index 6f790427..6e66ba58 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/base_test/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/base_test/description.md @@ -1,4 +1,4 @@ ### No SmartReflekt invocations -This project does not contain `SmartReflekt` invokes. It means the set of SubTypesToFilters +This project does not contain `SmartReflekt` invokes. It means the set of SupertypesToFilters should be empty. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/base_test/subTypesToFilters.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/base_test/subTypesToFilters.json deleted file mode 100644 index 12e778fc..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/base_test/subTypesToFilters.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "subTypesToFilters": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/base_test/supertypesToFilters.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/base_test/supertypesToFilters.txt new file mode 100644 index 00000000..fe51488c --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/base_test/supertypesToFilters.txt @@ -0,0 +1 @@ +[] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/base_test_no_reflekt/description.md b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/base_test_no_reflekt/description.md index dcd83acd..eec1611e 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/base_test_no_reflekt/description.md +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/base_test_no_reflekt/description.md @@ -1,4 +1,4 @@ ### No SmartReflekt invocations This project does not contain `SmartReflekt` invokes, but has `Reflekt` invokes. -It means the set of SubTypesToFilters should be empty. +It means the set of SupertypesToFilters should be empty. diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/base_test_no_reflekt/project/test/Main.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/base_test_no_reflekt/project/test/Main.kt index 38c0764a..40d82cef 100644 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/base_test_no_reflekt/project/test/Main.kt +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/base_test_no_reflekt/project/test/Main.kt @@ -3,5 +3,5 @@ package io.reflekt.test import io.reflekt.Reflekt fun main() { - val classes = Reflekt.classes().withSubType().withAnnotations(FirstAnnotationTest::class, SecondAnnotationTest::class) + val classes = Reflekt.classes().withSupertype().withAnnotations(FirstAnnotationTest::class, SecondAnnotationTest::class) } diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/base_test_no_reflekt/subTypesToFilters.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/base_test_no_reflekt/subTypesToFilters.json deleted file mode 100644 index 12e778fc..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/base_test_no_reflekt/subTypesToFilters.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "subTypesToFilters": [] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/base_test_no_reflekt/supertypesToFilters.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/base_test_no_reflekt/supertypesToFilters.txt new file mode 100644 index 00000000..fe51488c --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/base_test_no_reflekt/supertypesToFilters.txt @@ -0,0 +1 @@ +[] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/one_filter_test/subTypesToFilters.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/one_filter_test/subTypesToFilters.json deleted file mode 100644 index fa8ac46d..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/one_filter_test/subTypesToFilters.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "subTypesToFilters": [ - { - "subType": { - "fqName": "io.reflekt.test.AInterface1Test", - "parameters": [] - }, - "filters": [ - { - "body": "it.isInterface()", - "parameters": [ - "it" - ] - } - ], - "imports": [ - { - "fqName": "io.reflekt.SmartReflekt", - "text": "import io.reflekt.SmartReflekt" - } - ] - } - ] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/one_filter_test/supertypesToFilters.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/one_filter_test/supertypesToFilters.txt new file mode 100644 index 00000000..3fe77fec --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/one_filter_test/supertypesToFilters.txt @@ -0,0 +1,9 @@ +[ + supertype: AInterface1Test (io.reflekt.test.AInterface1Test), + filters: [ + Lambda(body=it.isInterface(), parameters=[it]) + ], + imports: [ + Import(fqName=io.reflekt.SmartReflekt, text=import io.reflekt.SmartReflekt) + ] +] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/one_filter_with_parameter_and_type_test/subTypesToFilters.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/one_filter_with_parameter_and_type_test/subTypesToFilters.json deleted file mode 100644 index ee187738..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/one_filter_with_parameter_and_type_test/subTypesToFilters.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "subTypesToFilters": [ - { - "subType": { - "fqName": "io.reflekt.test.AInterface1Test", - "parameters": [] - }, - "filters": [ - { - "body": "klass.isInterface()", - "parameters": [ - "klass" - ] - } - ], - "imports": [ - { - "fqName": "io.reflekt.SmartReflekt", - "text": "import io.reflekt.SmartReflekt" - }, - { - "fqName": "org.jetbrains.kotlin.psi.KtClass", - "text": "import org.jetbrains.kotlin.psi.KtClass" - } - ] - } - ] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/one_filter_with_parameter_and_type_test/supertypesToFilters.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/one_filter_with_parameter_and_type_test/supertypesToFilters.txt new file mode 100644 index 00000000..4c7d8f8a --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/one_filter_with_parameter_and_type_test/supertypesToFilters.txt @@ -0,0 +1,10 @@ +[ + supertype: AInterface1Test (io.reflekt.test.AInterface1Test), + filters: [ + Lambda(body=klass.isInterface(), parameters=[klass]) + ], + imports: [ + Import(fqName=io.reflekt.SmartReflekt, text=import io.reflekt.SmartReflekt), + Import(fqName=org.jetbrains.kotlin.psi.KtClass, text=import org.jetbrains.kotlin.psi.KtClass) + ] +] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/one_filter_with_parameter_test/subTypesToFilters.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/one_filter_with_parameter_test/subTypesToFilters.json deleted file mode 100644 index 210497c0..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/one_filter_with_parameter_test/subTypesToFilters.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "subTypesToFilters": [ - { - "subType": { - "fqName": "io.reflekt.test.AInterface1Test", - "parameters": [] - }, - "filters": [ - { - "body": "klass.isInterface()", - "parameters": [ - "klass" - ] - } - ], - "imports": [ - { - "fqName": "io.reflekt.SmartReflekt", - "text": "import io.reflekt.SmartReflekt" - } - ] - } - ] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/one_filter_with_parameter_test/supertypesToFilters.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/one_filter_with_parameter_test/supertypesToFilters.txt new file mode 100644 index 00000000..be3ce29e --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/one_filter_with_parameter_test/supertypesToFilters.txt @@ -0,0 +1,9 @@ +[ + supertype: AInterface1Test (io.reflekt.test.AInterface1Test), + filters: [ + Lambda(body=klass.isInterface(), parameters=[klass]) + ], + imports: [ + Import(fqName=io.reflekt.SmartReflekt, text=import io.reflekt.SmartReflekt) + ] +] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/several_filters_test/subTypesToFilters.json b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/several_filters_test/subTypesToFilters.json deleted file mode 100644 index 4262539f..00000000 --- a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/several_filters_test/subTypesToFilters.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "subTypesToFilters": [ - { - "subType": { - "fqName": "io.reflekt.test.AInterface1Test", - "parameters": [] - }, - "filters": [ - { - "body": "klass.isInterface()", - "parameters": [ - "klass" - ] - }, - { - "body": "klass.isInterface()", - "parameters": [ - "klass" - ] - }, - { - "body": "true", - "parameters": [ - "it" - ] - }, - { - "body": "it.isInterface()", - "parameters": [ - "it" - ] - } - ], - "imports": [ - { - "fqName": "io.reflekt.SmartReflekt", - "text": "import io.reflekt.SmartReflekt" - }, - { - "fqName": "org.jetbrains.kotlin.psi.KtClass", - "text": "import org.jetbrains.kotlin.psi.KtClass" - } - ] - } - ] -} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/several_filters_test/supertypesToFilters.txt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/several_filters_test/supertypesToFilters.txt new file mode 100644 index 00000000..4ecb7706 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/analysis/util/data/several_filters_test/supertypesToFilters.txt @@ -0,0 +1,13 @@ +[ + supertype: AInterface1Test (io.reflekt.test.AInterface1Test), + filters: [ + Lambda(body=it.isInterface(), parameters=[it]), + Lambda(body=klass.isInterface(), parameters=[klass]), + Lambda(body=klass.isInterface(), parameters=[klass]), + Lambda(body=true, parameters=[it]) + ], + imports: [ + Import(fqName=io.reflekt.SmartReflekt, text=import io.reflekt.SmartReflekt), + Import(fqName=org.jetbrains.kotlin.psi.KtClass, text=import org.jetbrains.kotlin.psi.KtClass) + ] +] diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/ir/commonTestFiles/test/Annotations.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/ir/commonTestFiles/test/Annotations.kt new file mode 100644 index 00000000..5a06ea88 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/ir/commonTestFiles/test/Annotations.kt @@ -0,0 +1,3 @@ +package io.reflekt.test.ir + +annotation class IrTestAnnotation diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/ir/commonTestFiles/test/Classes.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/ir/commonTestFiles/test/Classes.kt new file mode 100644 index 00000000..384032d3 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/ir/commonTestFiles/test/Classes.kt @@ -0,0 +1,11 @@ +package io.reflekt.test.ir + +interface CInterface + +open class C1 : CInterface + +open class C2 : C1() + +open class C3 : C2() { + class C5 : CInterface +} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/ir/commonTestFiles/test/Functions.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/ir/commonTestFiles/test/Functions.kt new file mode 100644 index 00000000..e1f527a1 --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/ir/commonTestFiles/test/Functions.kt @@ -0,0 +1,60 @@ +package io.reflekt.test.ir + +@IrTestAnnotation +fun fun1() {} + +@IrTestAnnotation +fun fun2(): Int = 3 + +@IrTestAnnotation +fun fun3(): List = listOf(3) + +@IrTestAnnotation +fun fun4(a: Int, b: Float?, c: Set): List = listOf(a.toString(), b.toString(), c.toString()) + +fun fooBoolean(): Boolean { + println("public second example foo") + return true +} + +class FunctionTestClass { + @IrTestAnnotation + fun fun1() {} + + @IrTestAnnotation + fun fun2(): Int = 3 + + @IrTestAnnotation + fun fun3(): List = listOf(3) + + @IrTestAnnotation + fun fun4(a: Int, b: Float?, c: Set): List = listOf(a.toString(), b.toString(), c.toString()) + + companion object { + @IrTestAnnotation + fun fun1() {} + + @IrTestAnnotation + fun fun2(): Int = 3 + + @IrTestAnnotation + fun fun3(): List = listOf(3) + + @IrTestAnnotation + fun fun4(a: Int, b: Float?, c: Set): List = listOf(a.toString(), b.toString(), c.toString()) + } +} + +object FunctionTestObject { + @IrTestAnnotation + fun fun1() {} + + @IrTestAnnotation + fun fun2(): Int = 3 + + @IrTestAnnotation + fun fun3(): List = listOf(3) + + @IrTestAnnotation + fun fun4(a: Int, b: Float?, c: Set): List = listOf(a.toString(), b.toString(), c.toString()) +} diff --git a/reflekt-plugin/src/test/resources/io/reflekt/plugin/ir/commonTestFiles/test/Objects.kt b/reflekt-plugin/src/test/resources/io/reflekt/plugin/ir/commonTestFiles/test/Objects.kt new file mode 100644 index 00000000..9fa44f4a --- /dev/null +++ b/reflekt-plugin/src/test/resources/io/reflekt/plugin/ir/commonTestFiles/test/Objects.kt @@ -0,0 +1,7 @@ +package io.reflekt.test.ir + +interface OInterface + +object O1 : OInterface { + object O2 : OInterface +}