PSI2IR: ignore enum annotation arguments of error type

Similar to references to error type, this may happen if library A uses
an entity from library B annotated with an annotation from C, but A is
compiled without C on the classpath.
This commit is contained in:
pyos
2019-12-16 16:20:24 +01:00
committed by Dmitry Petrov
parent a9848305a3
commit e54ef3bdb8
6 changed files with 44 additions and 2 deletions
@@ -0,0 +1,9 @@
package a
enum class E { ENTRY }
@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.TYPE_PARAMETER)
annotation class Anno(val e: E)
@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.TYPE_PARAMETER)
annotation class Anno2(val e: Array<E>)
@@ -0,0 +1,11 @@
package b
import a.*
@Anno(E.ENTRY)
@Anno2(arrayOf(E.ENTRY))
open class B {
@Anno(E.ENTRY)
@Anno2(arrayOf(E.ENTRY))
fun <@Anno(E.ENTRY) @Anno2(arrayOf(E.ENTRY)) T> foo(t: T) = t
}
@@ -0,0 +1,7 @@
package c
import b.B
class C : B() {
fun bar() = foo("")
}