Uast: AbstractKotlinUVariable annotations now are retrieved from Kotlin Psi, not from compiled (KT-21025)

and `KotlinNullabilityUAnnotation` now is created for every `AbstractKotlinUVariable`
This commit is contained in:
Nicolay Mitropolsky
2017-10-15 15:17:15 +03:00
committed by Nikolay Krasko
parent f0723a5c07
commit 260c549cd7
37 changed files with 228 additions and 77 deletions
@@ -217,4 +217,16 @@ class KotlinUastApiTest : AbstractKotlinUastTest() {
})
}
}
@Test
fun testSimpleAnnotated() {
doTest("SimpleAnnotated") { _, file ->
file.findElementByTextFromPsi<UField>("@SinceKotlin(\"1.0\")\n val property: String = \"Mary\"").let { field ->
val annotation = field.annotations.assertedFind("kotlin.SinceKotlin") { it.qualifiedName }
Assert.assertEquals(annotation.findDeclaredAttributeValue("version")?.evaluateString(), "1.0")
}
}
}
}
fun <T, R> Iterable<T>.assertedFind(value: R, transform: (T) -> R): T = find { transform(it) == value } ?: throw AssertionError("'$value' not found, only ${this.joinToString { transform(it).toString() }}")