65244b4bea
Change the copyright from "JetBrains s.r.o." to "JetBrains s.r.o. and Kotlin Project contributors" Update only 2 lines copyright.
40 lines
1.6 KiB
Kotlin
40 lines
1.6 KiB
Kotlin
/*
|
|
* Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
|
*/
|
|
|
|
package org.jetbrains.uast.test.kotlin
|
|
|
|
import org.jetbrains.uast.UElement
|
|
import org.jetbrains.uast.UExpression
|
|
import org.jetbrains.uast.UFile
|
|
import org.jetbrains.uast.evaluation.uValueOf
|
|
import org.jetbrains.uast.visitor.UastVisitor
|
|
|
|
abstract class AbstractKotlinExpressionValueTest : AbstractKotlinUastTest() {
|
|
|
|
override fun check(testName: String, file: UFile) {
|
|
var valuesFound = 0
|
|
file.accept(object : UastVisitor {
|
|
override fun visitElement(node: UElement): Boolean {
|
|
for (comment in node.comments) {
|
|
val text = comment.text.removePrefix("/* ").removeSuffix(" */")
|
|
val parts = text.split(" = ")
|
|
if (parts.size != 2) continue
|
|
when (parts[0]) {
|
|
"constant" -> {
|
|
val expectedValue = parts[1]
|
|
val actualValue =
|
|
(node as? UExpression)?.uValueOf()?.toConstant()?.toString()
|
|
?: "cannot evaluate $node of ${node.javaClass}"
|
|
assertEquals(expectedValue, actualValue)
|
|
valuesFound++
|
|
}
|
|
}
|
|
}
|
|
return false
|
|
}
|
|
})
|
|
assertTrue("No values found, add some /* constant = ... */ to the input file", valuesFound > 0)
|
|
}
|
|
} |