Uast: KotlinUNestedAnnotation with light annotation (IDEA-185890)

This commit is contained in:
Nicolay Mitropolsky
2018-02-01 17:15:30 +03:00
committed by xiexed
parent cb05baa02b
commit 91a4bbed2e
2 changed files with 6 additions and 1 deletions
@@ -122,11 +122,12 @@ class KotlinUNestedAnnotation(
givenParent: UElement?,
private val classDescriptor: ClassDescriptor?
) : KotlinUAnnotationBase(original, givenParent) {
override val javaPsi: PsiAnnotation? = null
override val javaPsi: PsiAnnotation? by lazy { original.toLightAnnotation() }
override val annotationClassDescriptor: ClassDescriptor?
get() = classDescriptor
override fun annotationUseSiteTarget(): AnnotationUseSiteTarget? = null
}
@@ -1,5 +1,6 @@
package org.jetbrains.uast.test.kotlin
import com.intellij.psi.PsiAnnotation
import com.intellij.psi.PsiModifier
import com.intellij.testFramework.UsefulTestCase
import org.jetbrains.kotlin.asJava.toLightAnnotation
@@ -288,6 +289,9 @@ class KotlinUastApiTest : AbstractKotlinUastTest() {
?: throw AssertionError("haven't got annotation from $referenceExpression(${referenceExpression?.javaClass})")
assertEquals("Annotation", convertedUAnnotation.qualifiedName)
val lightAnnotation = convertedUAnnotation.getAsJavaPsiElement(PsiAnnotation::class.java)
?: throw AssertionError("can't get lightAnnotation from $convertedUAnnotation")
assertEquals("Annotation", lightAnnotation.qualifiedName)
}
}