Load some of the TYPE_USE annotations in fast class reading mode

Only top-level types on fields, methods' return types and
value parameters are supported to catch-up how class-files are loaded
in IntelliJ (see IDEA-153093)

NB: this commit also affects
ForeignJava8AnnotationsNoAnnotationInClasspathWithFastClassReadingTestGenerated
that were failing before

 #KT-20016 Fixed
This commit is contained in:
Denis Zharkov
2017-09-11 13:15:24 +03:00
parent 08f3dbce67
commit d6ee774243
10 changed files with 162 additions and 6 deletions

View File

@@ -0,0 +1,14 @@
package test
public open class InnerClassTypeAnnotation {
public constructor InnerClassTypeAnnotation()
@kotlin.annotation.Retention(value = AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public final annotation class Foo : kotlin.Annotation {
public constructor Foo()
}
public open inner class Inner {
public constructor Inner(/*0*/ p0: @test.InnerClassTypeAnnotation.Foo kotlin.String!)
public open fun bar(/*0*/ p0: kotlin.String!, /*1*/ p1: @test.InnerClassTypeAnnotation.Foo kotlin.String!): @test.InnerClassTypeAnnotation.Foo kotlin.String!
}
}

View File

@@ -13,6 +13,8 @@ public class InnerClassTypeAnnotation {
public class Inner {
public Inner(@Foo String foo) {
}
public @Foo String bar(String x, @Foo String y) { return null; }
}
@Retention(RetentionPolicy.CLASS)

View File

@@ -9,5 +9,6 @@ public open class InnerClassTypeAnnotation {
public open inner class Inner {
public constructor Inner(/*0*/ p0: kotlin.String!)
public open fun bar(/*0*/ p0: kotlin.String!, /*1*/ p1: kotlin.String!): kotlin.String!
}
}

View File

@@ -9,5 +9,6 @@ public open class InnerClassTypeAnnotation {
public open inner class Inner {
public constructor Inner(/*0*/ @test.InnerClassTypeAnnotation.Foo p0: @test.InnerClassTypeAnnotation.Foo kotlin.String!)
@test.InnerClassTypeAnnotation.Foo public open fun bar(/*0*/ p0: kotlin.String!, /*1*/ @test.InnerClassTypeAnnotation.Foo p1: @test.InnerClassTypeAnnotation.Foo kotlin.String!): @test.InnerClassTypeAnnotation.Foo kotlin.String!
}
}