New tests for TYPE_USE annotations in enums and inner classes

Main test data  (testName.txt) a not totally valid cause of IDEA-205039.
 Javac test data (testName.javac.txt) a not valid
 cause of type annotations support absence.
 Runtime tests are disabled cause reflection support absence.
This commit is contained in:
Mikhael Bogdanov
2019-01-07 10:41:45 +01:00
parent 57489febf0
commit 8ce7112123
24 changed files with 432 additions and 0 deletions
@@ -0,0 +1,12 @@
package test;
class AnnotatedParameterInInnerClassConstructor {
public @interface Anno {
String value();
}
class JavaEnum {
JavaEnum(@Anno("a") String a , @Anno("b") String b) {}
}
}
@@ -0,0 +1,14 @@
package test
public/*package*/ open class AnnotatedParameterInInnerClassConstructor {
public/*package*/ constructor AnnotatedParameterInInnerClassConstructor()
public final annotation class Anno : kotlin.Annotation {
public constructor Anno(/*0*/ value: kotlin.String)
public final val value: kotlin.String
}
public/*package*/ open inner class JavaEnum {
public/*package*/ constructor JavaEnum(/*0*/ @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "a") p0: kotlin.String!, /*1*/ @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "b") p1: kotlin.String!)
}
}
@@ -0,0 +1,14 @@
package test
public/*package*/ open class AnnotatedParameterInInnerClassConstructor {
public/*package*/ constructor AnnotatedParameterInInnerClassConstructor()
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public final annotation class Anno : kotlin.Annotation {
public constructor Anno(/*0*/ value: kotlin.String)
public final val value: kotlin.String
}
public/*package*/ open inner class JavaEnum {
public/*package*/ constructor JavaEnum(/*0*/ p0: @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "a") kotlin.String!, /*1*/ p1: @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "b") kotlin.String!)
}
}
@@ -0,0 +1,17 @@
// SKIP_IN_RUNTIME_TEST
package test;
import java.lang.annotation.ElementType;
import java.lang.annotation.Target;
class AnnotatedParameterInInnerClassConstructor {
@Target(ElementType.TYPE_USE)
public @interface Anno {
String value();
}
class JavaEnum {
JavaEnum(@Anno("a") String a , @Anno("b") String b) {}
}
}
@@ -0,0 +1,14 @@
package test
public/*package*/ open class AnnotatedParameterInInnerClassConstructor {
public/*package*/ constructor AnnotatedParameterInInnerClassConstructor()
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public final annotation class Anno : kotlin.Annotation {
public constructor Anno(/*0*/ value: kotlin.String)
public final val value: kotlin.String
}
public/*package*/ open inner class JavaEnum {
public/*package*/ constructor JavaEnum(/*0*/ p0: kotlin.String!, /*1*/ p1: kotlin.String!)
}
}
@@ -0,0 +1,14 @@
package test
public/*package*/ open class AnnotatedParameterInInnerClassConstructor {
public/*package*/ constructor AnnotatedParameterInInnerClassConstructor()
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public final annotation class Anno : kotlin.Annotation {
public constructor Anno(/*0*/ value: kotlin.String)
public final val value: kotlin.String
}
public/*package*/ open inner class JavaEnum {
public/*package*/ constructor JavaEnum(/*0*/ @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "a") p0: @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "a") kotlin.String!, /*1*/ @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "b") p1: @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "b") kotlin.String!)
}
}
@@ -0,0 +1,17 @@
// SKIP_IN_RUNTIME_TEST
package test;
import java.lang.annotation.ElementType;
import java.lang.annotation.Target;
class AnnotatedParameterInInnerClassConstructor {
@Target({ElementType.TYPE_USE, ElementType.PARAMETER})
public @interface Anno {
String value();
}
class JavaEnum {
JavaEnum(@Anno("a") String a , @Anno("b") String b) {}
}
}
@@ -0,0 +1,14 @@
package test
public/*package*/ open class AnnotatedParameterInInnerClassConstructor {
public/*package*/ constructor AnnotatedParameterInInnerClassConstructor()
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE, AnnotationTarget.VALUE_PARAMETER}) public final annotation class Anno : kotlin.Annotation {
public constructor Anno(/*0*/ value: kotlin.String)
public final val value: kotlin.String
}
public/*package*/ open inner class JavaEnum {
public/*package*/ constructor JavaEnum(/*0*/ @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "a") p0: kotlin.String!, /*1*/ @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "b") p1: kotlin.String!)
}
}
@@ -0,0 +1,14 @@
package test
public/*package*/ open class AnnotatedParameterInInnerClassConstructor {
public/*package*/ constructor AnnotatedParameterInInnerClassConstructor()
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE, AnnotationTarget.VALUE_PARAMETER}) public final annotation class Anno : kotlin.Annotation {
public constructor Anno(/*0*/ value: kotlin.String)
public final val value: kotlin.String
}
public/*package*/ open inner class JavaEnum {
public/*package*/ constructor JavaEnum(/*0*/ @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "a") p0: @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "a") kotlin.String!, /*1*/ @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "b") p1: @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "b") kotlin.String!)
}
}
@@ -0,0 +1,11 @@
package test
public/*package*/ open class AnnotatedTypeInFun {
public/*package*/ constructor AnnotatedTypeInFun()
public/*package*/ open fun foo(/*0*/ p0: @test.AnnotatedTypeInFun.Anno(value = "a") kotlin.String!, /*1*/ p1: @test.AnnotatedTypeInFun.Anno(value = "b") kotlin.String!): kotlin.Unit
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public final annotation class Anno : kotlin.Annotation {
public constructor Anno(/*0*/ value: kotlin.String)
public final val value: kotlin.String
}
}
@@ -0,0 +1,17 @@
// SKIP_IN_RUNTIME_TEST
package test;
import java.lang.annotation.ElementType;
import java.lang.annotation.Target;
class AnnotatedTypeInFun {
@Target(ElementType.TYPE_USE)
public @interface Anno {
String value();
}
void foo(@Anno("a") String a, @Anno("b") String b) {
}
}
@@ -0,0 +1,11 @@
package test
public/*package*/ open class AnnotatedTypeInFun {
public/*package*/ constructor AnnotatedTypeInFun()
public/*package*/ open fun foo(/*0*/ p0: kotlin.String!, /*1*/ p1: kotlin.String!): kotlin.Unit
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public final annotation class Anno : kotlin.Annotation {
public constructor Anno(/*0*/ value: kotlin.String)
public final val value: kotlin.String
}
}
@@ -0,0 +1,11 @@
package test
public/*package*/ open class AnnotatedTypeInFun {
public/*package*/ constructor AnnotatedTypeInFun()
public/*package*/ open fun foo(/*0*/ @test.AnnotatedTypeInFun.Anno(value = "a") p0: @test.AnnotatedTypeInFun.Anno(value = "a") kotlin.String!, /*1*/ @test.AnnotatedTypeInFun.Anno(value = "b") p1: @test.AnnotatedTypeInFun.Anno(value = "b") kotlin.String!): kotlin.Unit
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public final annotation class Anno : kotlin.Annotation {
public constructor Anno(/*0*/ value: kotlin.String)
public final val value: kotlin.String
}
}
@@ -0,0 +1,18 @@
package test
public/*package*/ open class AnnotatedParameterInInnerClassConstructor {
public/*package*/ constructor AnnotatedParameterInInnerClassConstructor()
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public final annotation class Anno : kotlin.Annotation {
public constructor Anno(/*0*/ value: kotlin.String)
public final val value: kotlin.String
}
public/*package*/ open inner class Inner {
public/*package*/ constructor Inner(/*0*/ p0: @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "a") kotlin.String!, /*1*/ p1: @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "b") kotlin.String!)
}
public/*package*/ open inner class InnerGeneric</*0*/ T : kotlin.Any!> {
public/*package*/ constructor InnerGeneric</*0*/ T : kotlin.Any!>(/*0*/ p0: @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "a") kotlin.String!, /*1*/ p1: @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "b") kotlin.String!)
}
}
@@ -0,0 +1,21 @@
// SKIP_IN_RUNTIME_TEST
package test;
import java.lang.annotation.ElementType;
import java.lang.annotation.Target;
class AnnotatedParameterInInnerClassConstructor {
@Target(ElementType.TYPE_USE)
public @interface Anno {
String value();
}
class Inner {
Inner(@Anno("a") String a , @Anno("b") String b) {}
}
class InnerGeneric<T> {
InnerGeneric(@Anno("a") String a , @Anno("b") String b) {}
}
}
@@ -0,0 +1,18 @@
package test
public/*package*/ open class AnnotatedParameterInInnerClassConstructor {
public/*package*/ constructor AnnotatedParameterInInnerClassConstructor()
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public final annotation class Anno : kotlin.Annotation {
public constructor Anno(/*0*/ value: kotlin.String)
public final val value: kotlin.String
}
public/*package*/ open inner class Inner {
public/*package*/ constructor Inner(/*0*/ p0: kotlin.String!, /*1*/ p1: kotlin.String!)
}
public/*package*/ open inner class InnerGeneric</*0*/ T : kotlin.Any!> {
public/*package*/ constructor InnerGeneric</*0*/ T : kotlin.Any!>(/*0*/ p0: kotlin.String!, /*1*/ p1: kotlin.String!)
}
}
@@ -0,0 +1,18 @@
package test
public/*package*/ open class AnnotatedParameterInInnerClassConstructor {
public/*package*/ constructor AnnotatedParameterInInnerClassConstructor()
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public final annotation class Anno : kotlin.Annotation {
public constructor Anno(/*0*/ value: kotlin.String)
public final val value: kotlin.String
}
public/*package*/ open inner class Inner {
public/*package*/ constructor Inner(/*0*/ @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "a") p0: @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "a") kotlin.String!, /*1*/ @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "b") p1: @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "b") kotlin.String!)
}
public/*package*/ open inner class InnerGeneric</*0*/ T : kotlin.Any!> {
public/*package*/ constructor InnerGeneric</*0*/ T : kotlin.Any!>(/*0*/ @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "a") p0: @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "a") kotlin.String!, /*1*/ @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "b") p1: @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "b") kotlin.String!)
}
}
@@ -0,0 +1,21 @@
// SKIP_IN_RUNTIME_TEST
package test;
import java.lang.annotation.ElementType;
import java.lang.annotation.Target;
class AnnotatedParameterInInnerClassConstructor {
@Target({ElementType.TYPE_USE, ElementType.PARAMETER})
public @interface Anno {
String value();
}
class Inner {
Inner(@Anno("a") String a , @Anno("b") String b) {}
}
class InnerGeneric<T> {
InnerGeneric(@Anno("a") String a , @Anno("b") String b) {}
}
}
@@ -0,0 +1,18 @@
package test
public/*package*/ open class AnnotatedParameterInInnerClassConstructor {
public/*package*/ constructor AnnotatedParameterInInnerClassConstructor()
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE, AnnotationTarget.VALUE_PARAMETER}) public final annotation class Anno : kotlin.Annotation {
public constructor Anno(/*0*/ value: kotlin.String)
public final val value: kotlin.String
}
public/*package*/ open inner class Inner {
public/*package*/ constructor Inner(/*0*/ @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "a") p0: kotlin.String!, /*1*/ @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "b") p1: kotlin.String!)
}
public/*package*/ open inner class InnerGeneric</*0*/ T : kotlin.Any!> {
public/*package*/ constructor InnerGeneric</*0*/ T : kotlin.Any!>(/*0*/ @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "a") p0: kotlin.String!, /*1*/ @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "b") p1: kotlin.String!)
}
}
@@ -0,0 +1,18 @@
package test
public/*package*/ open class AnnotatedParameterInInnerClassConstructor {
public/*package*/ constructor AnnotatedParameterInInnerClassConstructor()
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE, AnnotationTarget.VALUE_PARAMETER}) public final annotation class Anno : kotlin.Annotation {
public constructor Anno(/*0*/ value: kotlin.String)
public final val value: kotlin.String
}
public/*package*/ open inner class Inner {
public/*package*/ constructor Inner(/*0*/ @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "a") p0: @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "a") kotlin.String!, /*1*/ @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "b") p1: @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "b") kotlin.String!)
}
public/*package*/ open inner class InnerGeneric</*0*/ T : kotlin.Any!> {
public/*package*/ constructor InnerGeneric</*0*/ T : kotlin.Any!>(/*0*/ @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "a") p0: @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "a") kotlin.String!, /*1*/ @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "b") p1: @test.AnnotatedParameterInInnerClassConstructor.Anno(value = "b") kotlin.String!)
}
}