Force resolve annotations in annotation checker
#KT-46173 Fixed
This commit is contained in:
committed by
TeamCityServer
parent
83bae89ed8
commit
7fb2bf00c5
-19
@@ -1,19 +0,0 @@
|
||||
/*
|
||||
* KOTLIN CODEGEN BOX NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: annotations, type-annotations
|
||||
* NUMBER: 1
|
||||
* DESCRIPTION: Type annotations on return type with unresolved reference in parameters.
|
||||
* ISSUES: KT-28424
|
||||
*/
|
||||
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class Ann
|
||||
|
||||
fun foo(x: String): @Ann(unresolved_reference) String {
|
||||
return x
|
||||
}
|
||||
|
||||
fun box(): String? {
|
||||
return "OK"
|
||||
}
|
||||
-35
@@ -1,35 +0,0 @@
|
||||
// WITH_RUNTIME
|
||||
|
||||
/*
|
||||
* KOTLIN CODEGEN BOX NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: annotations, type-annotations
|
||||
* NUMBER: 10
|
||||
* DESCRIPTION: Type annotations on a lambda type with unresolved reference in parameters.
|
||||
* ISSUES: KT-28424
|
||||
*/
|
||||
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class Ann(val x: Int)
|
||||
|
||||
fun case_1(): Any {
|
||||
val x: (Int) -> @Ann(unresolved_reference) Unit = {}
|
||||
|
||||
return x
|
||||
}
|
||||
|
||||
fun case_2(): Any {
|
||||
val x: (@Ann(unresolved_reference) Int) -> Unit = { a: Int -> println(a) }
|
||||
|
||||
return x
|
||||
}
|
||||
|
||||
fun box(): String? {
|
||||
val x = case_1()
|
||||
val y = case_2()
|
||||
|
||||
if (x == null) return null
|
||||
if (y == null) return null
|
||||
|
||||
return "OK"
|
||||
}
|
||||
-46
@@ -1,46 +0,0 @@
|
||||
/*
|
||||
* KOTLIN CODEGEN BOX NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: annotations, type-annotations
|
||||
* NUMBER: 11
|
||||
* DESCRIPTION: Type annotations with invalid target.
|
||||
* ISSUES: KT-28449
|
||||
*/
|
||||
|
||||
@Retention(AnnotationRetention.RUNTIME)
|
||||
@Target(AnnotationTarget.PROPERTY_GETTER)
|
||||
annotation class Ann(val x: Int)
|
||||
|
||||
class Foo : @Ann(10) Any()
|
||||
|
||||
class Bar<T : @Ann(10) Any>
|
||||
|
||||
fun case_3(a: Any): Int? {
|
||||
return if (a is @Ann(10) String) 10 else null
|
||||
}
|
||||
|
||||
open class TypeToken<T>
|
||||
|
||||
val case_4 = object : TypeToken<@Ann(10) String>() {}
|
||||
|
||||
fun case_5(a: Any): Any {
|
||||
a as @Ann(10) Int
|
||||
|
||||
return a
|
||||
}
|
||||
|
||||
fun box(): String? {
|
||||
val x1 = Foo()
|
||||
val x2 = Bar<Int>()
|
||||
val x3 = case_3(".")
|
||||
val x4 = case_4
|
||||
val x5 = case_5(10)
|
||||
|
||||
if (x1 == null) return null
|
||||
if (x2 == null) return null
|
||||
if (x3 == null) return null
|
||||
if (x4 == null) return null
|
||||
if (x5 == null) return null
|
||||
|
||||
return "OK"
|
||||
}
|
||||
-23
@@ -1,23 +0,0 @@
|
||||
/*
|
||||
* KOTLIN CODEGEN BOX NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: annotations, type-annotations
|
||||
* NUMBER: 2
|
||||
* DESCRIPTION: Type annotations on supertypes with unresolved reference in parameters.
|
||||
* ISSUES: KT-28424
|
||||
*/
|
||||
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class Ann(val x: Int)
|
||||
|
||||
abstract class Foo : @Ann(unresolved_reference) Any()
|
||||
|
||||
class Bar: Foo()
|
||||
|
||||
fun box(): String? {
|
||||
val x = Bar()
|
||||
|
||||
if (x == null) return null
|
||||
|
||||
return "OK"
|
||||
}
|
||||
-31
@@ -1,31 +0,0 @@
|
||||
/*
|
||||
* KOTLIN CODEGEN BOX NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: annotations, type-annotations
|
||||
* NUMBER: 3
|
||||
* DESCRIPTION: Type annotations on parameter types with unresolved reference in parameters.
|
||||
* ISSUES: KT-28424
|
||||
*/
|
||||
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class Ann(val x: Int)
|
||||
|
||||
class Inv<T>
|
||||
|
||||
fun foo(i: Inv<@Ann(unresolved_reference) String>) {}
|
||||
|
||||
fun bar(vararg a: @Ann(unresolved_reference) Any) {}
|
||||
|
||||
class A<T>(a: @Ann(unresolved_reference) T)
|
||||
|
||||
fun box(): String? {
|
||||
val x = foo(Inv<String>())
|
||||
val y = bar(1, 2, 3)
|
||||
val z = A<Int>(10)
|
||||
|
||||
if (x == null) return null
|
||||
if (y == null) return null
|
||||
if (z == null) return null
|
||||
|
||||
return "OK"
|
||||
}
|
||||
-24
@@ -1,24 +0,0 @@
|
||||
/*
|
||||
* KOTLIN CODEGEN BOX NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: annotations, type-annotations
|
||||
* NUMBER: 4
|
||||
* DESCRIPTION: Type annotations on type arguments for a containing type of return type, with unresolved reference in parameters.
|
||||
* ISSUES: KT-28424
|
||||
*/
|
||||
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class Ann(val x: Int)
|
||||
|
||||
class Inv<T>
|
||||
|
||||
fun case_1(): Inv<@Ann(unresolved_reference) String> = TODO()
|
||||
|
||||
fun box(): String? {
|
||||
try {
|
||||
val x = case_1()
|
||||
if (x == null) return null
|
||||
} catch (e: NotImplementedError) {}
|
||||
|
||||
return "OK"
|
||||
}
|
||||
-27
@@ -1,27 +0,0 @@
|
||||
/*
|
||||
* KOTLIN CODEGEN BOX NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: annotations, type-annotations
|
||||
* NUMBER: 5
|
||||
* DESCRIPTION: Type annotations on upper bounds with unresolved reference in parameters.
|
||||
* ISSUES: KT-28424
|
||||
*/
|
||||
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class Ann(val x: Int)
|
||||
|
||||
abstract class Bar<T : @Ann(unresolved_reference) Any>
|
||||
|
||||
class Foo<T : Any> : Bar<T>()
|
||||
|
||||
class B<T> where @Ann(unresolved_reference) T : Number
|
||||
|
||||
fun box(): String? {
|
||||
val x = Foo<Int>()
|
||||
val y = B<Float>()
|
||||
|
||||
if (x == null) return null
|
||||
if (y == null) return null
|
||||
|
||||
return "OK"
|
||||
}
|
||||
-37
@@ -1,37 +0,0 @@
|
||||
/*
|
||||
* KOTLIN CODEGEN BOX NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: annotations, type-annotations
|
||||
* NUMBER: 6
|
||||
* DESCRIPTION: Type annotations inside type check and cast expression with unresolved reference in parameters.
|
||||
* ISSUES: KT-28424
|
||||
*/
|
||||
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class Ann(val x: Int)
|
||||
|
||||
fun case_1(a: Any): Int? {
|
||||
return if (a is @Ann(unresolved_reference) String) 10 else null
|
||||
}
|
||||
|
||||
fun case_2(a: Any): Any {
|
||||
return a as @Ann(unresolved_reference) String
|
||||
}
|
||||
|
||||
fun case_3_1(a: Any) = 10
|
||||
|
||||
fun case_3(a: Any): Any {
|
||||
return case_3_1(a as @Ann(unresolved_reference) String)
|
||||
}
|
||||
|
||||
fun box(): String? {
|
||||
val x = case_1(".")
|
||||
val y = case_2(".")
|
||||
val z = case_3(".")
|
||||
|
||||
if (x == null) return null
|
||||
if (y == null) return null
|
||||
if (z == null) return null
|
||||
|
||||
return "OK"
|
||||
}
|
||||
-29
@@ -1,29 +0,0 @@
|
||||
/*
|
||||
* KOTLIN CODEGEN BOX NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: annotations, type-annotations
|
||||
* NUMBER: 7
|
||||
* DESCRIPTION: Type annotations on a type in an anonymous object expression, with unresolved reference in parameters.
|
||||
* ISSUES: KT-28424
|
||||
*/
|
||||
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class Ann
|
||||
|
||||
open class TypeToken<T>
|
||||
|
||||
val case_1 = object : TypeToken<@Ann(unresolved_reference) String>() {}
|
||||
|
||||
interface A
|
||||
|
||||
val case_2 = object: @Ann(unresolved_reference) A {}
|
||||
|
||||
fun box(): String? {
|
||||
val x = case_1
|
||||
val y = case_2
|
||||
|
||||
if (x == null) return null
|
||||
if (y == null) return null
|
||||
|
||||
return "OK"
|
||||
}
|
||||
-27
@@ -1,27 +0,0 @@
|
||||
/*
|
||||
* KOTLIN CODEGEN BOX NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: annotations, type-annotations
|
||||
* NUMBER: 8
|
||||
* DESCRIPTION: Type annotations on a receiver type (for an extension property only), with unresolved reference in parameters.
|
||||
* ISSUES: KT-28424
|
||||
*/
|
||||
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class Ann(val x: Int)
|
||||
|
||||
val <T> @Ann(unresolved_reference) T.test // OK, error only in IDE but not in the compiler
|
||||
get() = 10
|
||||
|
||||
val @Ann(unresolved_reference) Int.test
|
||||
get() = 10
|
||||
|
||||
fun box(): String? {
|
||||
val x = 10.test
|
||||
val y = '.'.test
|
||||
|
||||
if (x == null) return null
|
||||
if (y == null) return null
|
||||
|
||||
return "OK"
|
||||
}
|
||||
-26
@@ -1,26 +0,0 @@
|
||||
/*
|
||||
* KOTLIN CODEGEN BOX NOT LINKED SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SECTIONS: annotations, type-annotations
|
||||
* NUMBER: 9
|
||||
* DESCRIPTION: Type annotations on a setter argument type with unresolved reference in parameters.
|
||||
* ISSUES: KT-28424
|
||||
*/
|
||||
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class Ann
|
||||
|
||||
var <T> T.test
|
||||
get() = 11
|
||||
set(value: @Ann(unresolved_reference) Int) {}
|
||||
|
||||
fun box(): String? {
|
||||
val x = 10.test
|
||||
10.test = 11
|
||||
val y = 10.test
|
||||
|
||||
if (x == null) return null
|
||||
if (y == null) return null
|
||||
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user