KT-41456: Incremental KAPT - represent source and class file structure differently

When storing source information needed for type analysis, store
.java file and .class file information separately. This is because
for class files only declared typed is needed.

Tests: updating existing ones

^KT-41456 In Progress
This commit is contained in:
Ivan Gavrilovic
2022-02-19 14:40:17 +00:00
committed by teamcity
parent 570189e833
commit c7e73ce88d
6 changed files with 54 additions and 40 deletions
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.kapt.base.test.org.jetbrains.kotlin.kapt3.base.incr
import org.jetbrains.kotlin.kapt3.base.incremental.JavaClassCacheManager
import org.jetbrains.kotlin.kapt3.base.incremental.MentionedTypesTaskListener
import org.jetbrains.kotlin.kapt3.base.incremental.SourceFileStructure
import org.junit.Assert.assertEquals
import org.junit.BeforeClass
import org.junit.ClassRule
@@ -51,9 +52,9 @@ class TestInheritedAnnotation {
@Test
fun testAnnotationInherited() {
val shouldInheritAnnotation = cache.javaCache.getStructure(MY_TEST_DIR.resolve("ExtendsBase.java"))!!
val shouldInheritAnnotation = cache.javaCache.getStructure(MY_TEST_DIR.resolve("ExtendsBase.java"))!! as SourceFileStructure
assertEquals(setOf("test.ExtendsBase"), shouldInheritAnnotation.getDeclaredTypes())
assertEquals(setOf("test.ExtendsBase"), shouldInheritAnnotation.declaredTypes)
assertEquals(setOf("test.InheritableAnnotation"), shouldInheritAnnotation.getMentionedAnnotations())
assertEquals(emptySet<String>(), shouldInheritAnnotation.getPrivateTypes())
assertEquals(
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.kapt.base.test.org.jetbrains.kotlin.kapt3.base.incr
import org.jetbrains.kotlin.kapt3.base.incremental.JavaClassCacheManager
import org.jetbrains.kotlin.kapt3.base.incremental.MentionedTypesTaskListener
import org.jetbrains.kotlin.kapt3.base.incremental.SourceFileStructure
import org.junit.Assert.assertEquals
import org.junit.BeforeClass
import org.junit.ClassRule
@@ -54,9 +55,9 @@ class ReferencedConstantsTest {
@Test
fun testConstantInField() {
val klassA = cache.javaCache.getStructure(MY_TEST_DIR.resolve("A.java"))!!
val klassA = cache.javaCache.getStructure(MY_TEST_DIR.resolve("A.java"))!! as SourceFileStructure
assertEquals(setOf("test.A"), klassA.getDeclaredTypes())
assertEquals(setOf("test.A"), klassA.declaredTypes)
assertEquals(emptySet<String>(), klassA.getMentionedAnnotations())
assertEquals(emptySet<String>(), klassA.getPrivateTypes())
assertEquals(setOf("test.A"), klassA.getMentionedTypes())
@@ -70,9 +71,9 @@ class ReferencedConstantsTest {
@Test
fun testConstantInDefaultValue() {
val annotationA = cache.javaCache.getStructure(MY_TEST_DIR.resolve("AnnotationA.java"))!!
val annotationA = cache.javaCache.getStructure(MY_TEST_DIR.resolve("AnnotationA.java"))!! as SourceFileStructure
assertEquals(setOf("test.AnnotationA"), annotationA.getDeclaredTypes())
assertEquals(setOf("test.AnnotationA"), annotationA.declaredTypes)
assertEquals(emptySet<String>(), annotationA.getMentionedAnnotations())
assertEquals(emptySet<String>(), annotationA.getPrivateTypes())
assertEquals(setOf("test.AnnotationA"), annotationA.getMentionedTypes())
@@ -82,9 +83,9 @@ class ReferencedConstantsTest {
@Test
fun testConstantInAnnotationElementValue() {
val annotated = cache.javaCache.getStructure(MY_TEST_DIR.resolve("AnnotatedType.java"))!!
val annotated = cache.javaCache.getStructure(MY_TEST_DIR.resolve("AnnotatedType.java"))!! as SourceFileStructure
assertEquals(setOf("test.AnnotatedType"), annotated.getDeclaredTypes())
assertEquals(setOf("test.AnnotatedType"), annotated.declaredTypes)
assertEquals(setOf("test.AnnotationA"), annotated.getMentionedAnnotations())
assertEquals(emptySet<String>(), annotated.getPrivateTypes())
assertEquals(setOf("test.AnnotatedType", "test.AnnotationA"), annotated.getMentionedTypes())
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.kapt.base.test.org.jetbrains.kotlin.kapt3.base.incr
import org.jetbrains.kotlin.kapt3.base.incremental.JavaClassCacheManager
import org.jetbrains.kotlin.kapt3.base.incremental.MentionedTypesTaskListener
import org.jetbrains.kotlin.kapt3.base.incremental.SourceFileStructure
import org.junit.Assert.assertEquals
import org.junit.BeforeClass
import org.junit.ClassRule
@@ -53,9 +54,9 @@ class TestComplexIncrementalAptCache {
@Test
fun testEnum() {
val myEnum = cache.javaCache.getStructure(MY_TEST_DIR.resolve("MyEnum.java"))!!
val myEnum = cache.javaCache.getStructure(MY_TEST_DIR.resolve("MyEnum.java"))!! as SourceFileStructure
assertEquals(setOf("test.MyEnum"), myEnum.getDeclaredTypes())
assertEquals(setOf("test.MyEnum"), myEnum.declaredTypes)
assertEquals(emptySet<String>(), myEnum.getMentionedAnnotations())
assertEquals(emptySet<String>(), myEnum.getPrivateTypes())
assertEquals(setOf("test.MyEnum", "test.TypeGeneratedByApt"), myEnum.getMentionedTypes())
@@ -63,7 +64,7 @@ class TestComplexIncrementalAptCache {
@Test
fun testMyNumber() {
val myNumber = cache.javaCache.getStructure(MY_TEST_DIR.resolve("MyNumber.java"))!!
val myNumber = cache.javaCache.getStructure(MY_TEST_DIR.resolve("MyNumber.java"))!! as SourceFileStructure
assertEquals(
setOf(
@@ -74,7 +75,7 @@ class TestComplexIncrementalAptCache {
"test.TypeUseAnnotation",
"test.AnotherTypeUseAnnotation",
"test.ThrowTypeUseAnnotation"
), myNumber.getDeclaredTypes()
), myNumber.declaredTypes
)
assertEquals(
setOf(
@@ -116,9 +117,9 @@ class TestComplexIncrementalAptCache {
@Test
fun testAnnotation() {
val numberAnnotation = cache.javaCache.getStructure(MY_TEST_DIR.resolve("NumberAnnotation.java"))!!
val numberAnnotation = cache.javaCache.getStructure(MY_TEST_DIR.resolve("NumberAnnotation.java"))!! as SourceFileStructure
assertEquals(setOf("test.NumberAnnotation", "test.BaseAnnotation"), numberAnnotation.getDeclaredTypes())
assertEquals(setOf("test.NumberAnnotation", "test.BaseAnnotation"), numberAnnotation.declaredTypes)
assertEquals(setOf("test.BaseAnnotation"), numberAnnotation.getMentionedAnnotations())
assertEquals(emptySet<String>(), numberAnnotation.getPrivateTypes())
assertEquals(
@@ -134,9 +135,9 @@ class TestComplexIncrementalAptCache {
@Test
fun testNumberException() {
val numberException = cache.javaCache.getStructure(MY_TEST_DIR.resolve("NumberException.java"))!!
val numberException = cache.javaCache.getStructure(MY_TEST_DIR.resolve("NumberException.java"))!! as SourceFileStructure
assertEquals(setOf("test.NumberException"), numberException.getDeclaredTypes())
assertEquals(setOf("test.NumberException"), numberException.declaredTypes)
assertEquals(emptySet<String>(), numberException.getMentionedAnnotations())
assertEquals(emptySet<String>(), numberException.getPrivateTypes())
assertEquals(setOf("test.NumberException", "java.lang.RuntimeException"), numberException.getMentionedTypes())
@@ -144,9 +145,9 @@ class TestComplexIncrementalAptCache {
@Test
fun testNumberHolder() {
val numberHolder = cache.javaCache.getStructure(MY_TEST_DIR.resolve("NumberHolder.java"))!!
val numberHolder = cache.javaCache.getStructure(MY_TEST_DIR.resolve("NumberHolder.java"))!! as SourceFileStructure
assertEquals(setOf("test.NumberHolder", "test.NumberHolder.MyInnerClass"), numberHolder.getDeclaredTypes())
assertEquals(setOf("test.NumberHolder", "test.NumberHolder.MyInnerClass"), numberHolder.declaredTypes)
assertEquals(setOf("test.NumberAnnotation"), numberHolder.getMentionedAnnotations())
assertEquals(setOf("test.NumberManager"), numberHolder.getPrivateTypes())
assertEquals(
@@ -166,9 +167,9 @@ class TestComplexIncrementalAptCache {
@Test
fun testNumberManager() {
val numberManager = cache.javaCache.getStructure(MY_TEST_DIR.resolve("NumberManager.java"))!!
val numberManager = cache.javaCache.getStructure(MY_TEST_DIR.resolve("NumberManager.java"))!! as SourceFileStructure
assertEquals(setOf("test.NumberManager"), numberManager.getDeclaredTypes())
assertEquals(setOf("test.NumberManager"), numberManager.declaredTypes)
assertEquals(emptySet<String>(), numberManager.getMentionedAnnotations())
assertEquals(setOf("test.MyEnum"), numberManager.getPrivateTypes())
assertEquals(
@@ -182,9 +183,9 @@ class TestComplexIncrementalAptCache {
@Test
fun testGenericNumber() {
val genericNumber = cache.javaCache.getStructure(MY_TEST_DIR.resolve("GenericNumber.java"))!!
val genericNumber = cache.javaCache.getStructure(MY_TEST_DIR.resolve("GenericNumber.java"))!! as SourceFileStructure
assertEquals(setOf("test.GenericNumber"), genericNumber.getDeclaredTypes())
assertEquals(setOf("test.GenericNumber"), genericNumber.declaredTypes)
assertEquals(emptySet<String>(), genericNumber.getMentionedAnnotations())
assertEquals(emptySet<String>(), genericNumber.getPrivateTypes())
assertEquals(