Use module to resolve annotation classes in AnnotationDescriptorLoader

This commit is contained in:
Pavel V. Talanov
2014-06-16 15:00:57 +04:00
parent d961d17cd4
commit 245919d691
20 changed files with 209 additions and 68 deletions
@@ -111,15 +111,14 @@ public class InjectorForJavaDescriptorResolver {
deserializedDescriptorResolver.setContext(deserializationGlobalContextForJava);
deserializedDescriptorResolver.setErrorReporter(traceBasedErrorReporter);
annotationDescriptorLoader.setClassResolver(javaDescriptorResolver);
annotationDescriptorLoader.setErrorReporter(traceBasedErrorReporter);
annotationDescriptorLoader.setKotlinClassFinder(virtualFileFinder);
annotationDescriptorLoader.setModule(module);
annotationDescriptorLoader.setStorage(descriptorDeserializersStorage);
descriptorDeserializersStorage.setClassResolver(javaDescriptorResolver);
descriptorDeserializersStorage.setErrorReporter(traceBasedErrorReporter);
descriptorDeserializersStorage.setModule(module);
constantDescriptorLoader.setClassResolver(javaDescriptorResolver);
constantDescriptorLoader.setErrorReporter(traceBasedErrorReporter);
constantDescriptorLoader.setKotlinClassFinder(virtualFileFinder);
constantDescriptorLoader.setStorage(descriptorDeserializersStorage);
@@ -241,15 +241,14 @@ public class InjectorForLazyResolveWithJava {
deserializedDescriptorResolver.setContext(deserializationGlobalContextForJava);
deserializedDescriptorResolver.setErrorReporter(traceBasedErrorReporter);
annotationDescriptorLoader.setClassResolver(javaDescriptorResolver);
annotationDescriptorLoader.setErrorReporter(traceBasedErrorReporter);
annotationDescriptorLoader.setKotlinClassFinder(virtualFileFinder);
annotationDescriptorLoader.setModule(module);
annotationDescriptorLoader.setStorage(descriptorDeserializersStorage);
descriptorDeserializersStorage.setClassResolver(javaDescriptorResolver);
descriptorDeserializersStorage.setErrorReporter(traceBasedErrorReporter);
descriptorDeserializersStorage.setModule(module);
constantDescriptorLoader.setClassResolver(javaDescriptorResolver);
constantDescriptorLoader.setErrorReporter(traceBasedErrorReporter);
constantDescriptorLoader.setKotlinClassFinder(virtualFileFinder);
constantDescriptorLoader.setStorage(descriptorDeserializersStorage);
@@ -321,15 +321,14 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
deserializedDescriptorResolver.setContext(deserializationGlobalContextForJava);
deserializedDescriptorResolver.setErrorReporter(traceBasedErrorReporter);
annotationDescriptorLoader.setClassResolver(javaDescriptorResolver);
annotationDescriptorLoader.setErrorReporter(traceBasedErrorReporter);
annotationDescriptorLoader.setKotlinClassFinder(virtualFileFinder);
annotationDescriptorLoader.setModule(moduleDescriptor);
annotationDescriptorLoader.setStorage(descriptorDeserializersStorage);
descriptorDeserializersStorage.setClassResolver(javaDescriptorResolver);
descriptorDeserializersStorage.setErrorReporter(traceBasedErrorReporter);
descriptorDeserializersStorage.setModule(moduleDescriptor);
constantDescriptorLoader.setClassResolver(javaDescriptorResolver);
constantDescriptorLoader.setErrorReporter(traceBasedErrorReporter);
constantDescriptorLoader.setKotlinClassFinder(virtualFileFinder);
constantDescriptorLoader.setStorage(descriptorDeserializersStorage);
@@ -0,0 +1,13 @@
package test
class A {
class object {
annotation class Anno1
class B {
annotation class Anno2
}
}
}
A.Anno1 A.B.Anno2 class C
@@ -0,0 +1,25 @@
package test
internal final class A {
/*primary*/ public constructor A()
internal class object <class-object-for-A> {
/*primary*/ private constructor <class-object-for-A>()
internal final annotation class Anno1 : kotlin.Annotation {
/*primary*/ public constructor Anno1()
}
internal final class B {
/*primary*/ public constructor B()
internal final annotation class Anno2 : kotlin.Annotation {
/*primary*/ public constructor Anno2()
}
}
}
}
test.A.Anno1() test.A.B.Anno2() internal final class C {
/*primary*/ public constructor C()
}
@@ -0,0 +1,6 @@
package test
//this test relies on particular heuristic implemntation, can become irrelevant should implementation change
annotation class `$$$$$$`
`$$$$$$`class A
@@ -0,0 +1,9 @@
package test
internal final annotation class $$$$$$ : kotlin.Annotation {
/*primary*/ public constructor $$$$$$()
}
test.$$$$$$() internal final class A {
/*primary*/ public constructor A()
}
@@ -0,0 +1,9 @@
package test
class A {
annotation class Anno
}
A.Anno class B {
A.Anno fun f() {}
}
@@ -0,0 +1,14 @@
package test
internal final class A {
/*primary*/ public constructor A()
internal final annotation class Anno : kotlin.Annotation {
/*primary*/ public constructor Anno()
}
}
test.A.Anno() internal final class B {
/*primary*/ public constructor B()
test.A.Anno() internal final fun f(): kotlin.Unit
}
@@ -1627,6 +1627,11 @@ public class LoadJavaTestGenerated extends AbstractLoadJavaTest {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("compiler/testData/loadJava/compiledKotlin/annotations/classes"), Pattern.compile("^(.+)\\.kt$"), true);
}
@TestMetadata("AnnotationInClassObject.kt")
public void testAnnotationInClassObject() throws Exception {
doTestCompiledKotlin("compiler/testData/loadJava/compiledKotlin/annotations/classes/AnnotationInClassObject.kt");
}
@TestMetadata("ClassInClassObject.kt")
public void testClassInClassObject() throws Exception {
doTestCompiledKotlin("compiler/testData/loadJava/compiledKotlin/annotations/classes/ClassInClassObject.kt");
@@ -1647,6 +1652,11 @@ public class LoadJavaTestGenerated extends AbstractLoadJavaTest {
doTestCompiledKotlin("compiler/testData/loadJava/compiledKotlin/annotations/classes/Deprecated.kt");
}
@TestMetadata("DollarsInAnnotationName.kt")
public void testDollarsInAnnotationName() throws Exception {
doTestCompiledKotlin("compiler/testData/loadJava/compiledKotlin/annotations/classes/DollarsInAnnotationName.kt");
}
@TestMetadata("EnumArgument.kt")
public void testEnumArgument() throws Exception {
doTestCompiledKotlin("compiler/testData/loadJava/compiledKotlin/annotations/classes/EnumArgument.kt");
@@ -1657,6 +1667,11 @@ public class LoadJavaTestGenerated extends AbstractLoadJavaTest {
doTestCompiledKotlin("compiler/testData/loadJava/compiledKotlin/annotations/classes/MultipleAnnotations.kt");
}
@TestMetadata("NestedAnnotation.kt")
public void testNestedAnnotation() throws Exception {
doTestCompiledKotlin("compiler/testData/loadJava/compiledKotlin/annotations/classes/NestedAnnotation.kt");
}
@TestMetadata("NestedClass.kt")
public void testNestedClass() throws Exception {
doTestCompiledKotlin("compiler/testData/loadJava/compiledKotlin/annotations/classes/NestedClass.kt");
@@ -95,6 +95,11 @@ public class LazyResolveRecursiveComparingTestGenerated extends AbstractLazyReso
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("compiler/testData/loadJava/compiledKotlin/annotations/classes"), Pattern.compile("^(.+)\\.kt$"), true);
}
@TestMetadata("AnnotationInClassObject.kt")
public void testAnnotationInClassObject() throws Exception {
doTestCheckingPrimaryConstructorsAndAccessors("compiler/testData/loadJava/compiledKotlin/annotations/classes/AnnotationInClassObject.kt");
}
@TestMetadata("ClassInClassObject.kt")
public void testClassInClassObject() throws Exception {
doTestCheckingPrimaryConstructorsAndAccessors("compiler/testData/loadJava/compiledKotlin/annotations/classes/ClassInClassObject.kt");
@@ -115,6 +120,11 @@ public class LazyResolveRecursiveComparingTestGenerated extends AbstractLazyReso
doTestCheckingPrimaryConstructorsAndAccessors("compiler/testData/loadJava/compiledKotlin/annotations/classes/Deprecated.kt");
}
@TestMetadata("DollarsInAnnotationName.kt")
public void testDollarsInAnnotationName() throws Exception {
doTestCheckingPrimaryConstructorsAndAccessors("compiler/testData/loadJava/compiledKotlin/annotations/classes/DollarsInAnnotationName.kt");
}
@TestMetadata("EnumArgument.kt")
public void testEnumArgument() throws Exception {
doTestCheckingPrimaryConstructorsAndAccessors("compiler/testData/loadJava/compiledKotlin/annotations/classes/EnumArgument.kt");
@@ -125,6 +135,11 @@ public class LazyResolveRecursiveComparingTestGenerated extends AbstractLazyReso
doTestCheckingPrimaryConstructorsAndAccessors("compiler/testData/loadJava/compiledKotlin/annotations/classes/MultipleAnnotations.kt");
}
@TestMetadata("NestedAnnotation.kt")
public void testNestedAnnotation() throws Exception {
doTestCheckingPrimaryConstructorsAndAccessors("compiler/testData/loadJava/compiledKotlin/annotations/classes/NestedAnnotation.kt");
}
@TestMetadata("NestedClass.kt")
public void testNestedClass() throws Exception {
doTestCheckingPrimaryConstructorsAndAccessors("compiler/testData/loadJava/compiledKotlin/annotations/classes/NestedClass.kt");