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 ->