From 96a2eac2ebb53f7b7a62e9dacfafc76127ce4c15 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Tue, 18 Apr 2017 14:01:03 +0200 Subject: [PATCH] Allow calling valueOf() on nullable UAST expressions --- .../src/org/jetbrains/uast/evaluation/UEvaluationContext.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/uast/uast-common/src/org/jetbrains/uast/evaluation/UEvaluationContext.kt b/uast/uast-common/src/org/jetbrains/uast/evaluation/UEvaluationContext.kt index daad664fcd0f..9967076d6efe 100644 --- a/uast/uast-common/src/org/jetbrains/uast/evaluation/UEvaluationContext.kt +++ b/uast/uast-common/src/org/jetbrains/uast/evaluation/UEvaluationContext.kt @@ -38,14 +38,15 @@ fun UFile.analyzeAll(context: UastContext = getUastContext(), extensions: List = emptyList()): UValue? { +fun UExpression?.uValueOf(extensions: List = 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 = emptyList()): UEvaluationContext { return containingFile?.let { file ->