[FIR] Ignore anonymous functions during annotation argument phase
Anonymous functions (lambdas) are not allowed as annotation arguments. However, because it is still possible to parse code written this way, it must be handled without exception. So ignore these expressions when processing annotation arguments. #KT-59565 Fixed
This commit is contained in:
+18
@@ -0,0 +1,18 @@
|
||||
// ISSUE: KT-59565
|
||||
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class Ann(val x: Int)
|
||||
|
||||
class A<T: @Ann(<!ARGUMENT_TYPE_MISMATCH!>{
|
||||
fun local() = 1
|
||||
var result = local()
|
||||
result += 1
|
||||
result
|
||||
}<!>) Any>
|
||||
|
||||
fun f(x: @Ann(<!ARGUMENT_TYPE_MISMATCH!>{
|
||||
fun local() = 1
|
||||
var result = local()
|
||||
result += 1
|
||||
result
|
||||
}<!>) Int) = x
|
||||
compiler/testData/diagnostics/tests/annotations/annotationParameterMustBeConstant/lambdaParameter.kt
Vendored
+18
@@ -0,0 +1,18 @@
|
||||
// ISSUE: KT-59565
|
||||
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class Ann(val x: Int)
|
||||
|
||||
class A<T: @Ann(<!ANNOTATION_ARGUMENT_MUST_BE_CONST, TYPE_MISMATCH!>{
|
||||
fun local() = 1
|
||||
var result = local()
|
||||
result += 1
|
||||
result
|
||||
}<!>) Any>
|
||||
|
||||
fun f(x: @Ann(<!ANNOTATION_ARGUMENT_MUST_BE_CONST, TYPE_MISMATCH!>{
|
||||
fun local() = 1
|
||||
var result = local()
|
||||
result += 1
|
||||
result
|
||||
}<!>) Int) = x
|
||||
Reference in New Issue
Block a user