Allow calling valueOf() on nullable UAST expressions

This commit is contained in:
Dmitry Jemerov
2017-04-18 14:01:55 +02:00
parent 03895edada
commit 96a2eac2eb
@@ -38,14 +38,15 @@ fun UFile.analyzeAll(context: UastContext = getUastContext(), extensions: List<U
MapBasedEvaluationContext(context, extensions).analyzeAll(this)
@JvmOverloads
fun UExpression.uValueOf(extensions: List<UEvaluatorExtension> = emptyList()): UValue? {
fun UExpression?.uValueOf(extensions: List<UEvaluatorExtension> = emptyList()): UValue? {
if (this == null) return null
val declaration = getContainingDeclaration() ?: return null
val context = declaration.getEvaluationContextWithCaching(extensions)
context.analyze(declaration)
return context.valueOf(this)
}
fun UExpression.uValueOf(vararg extensions: UEvaluatorExtension): UValue? = uValueOf(extensions.asList())
fun UExpression?.uValueOf(vararg extensions: UEvaluatorExtension): UValue? = uValueOf(extensions.asList())
fun UDeclaration.getEvaluationContextWithCaching(extensions: List<UEvaluatorExtension> = emptyList()): UEvaluationContext {
return containingFile?.let { file ->