Add more detailed exception message in KtExpression.isUsedAsExpression

This commit is contained in:
Mikhail Glukhikh
2020-06-10 14:56:11 +03:00
parent f64f9c2144
commit d385a9b29e
@@ -56,7 +56,13 @@ fun KtReturnExpression.getTargetFunction(context: BindingContext): KtCallableDec
return getTargetFunctionDescriptor(context)?.let { DescriptorToSourceUtils.descriptorToDeclaration(it) as? KtCallableDeclaration }
}
fun KtExpression.isUsedAsExpression(context: BindingContext): Boolean = context[USED_AS_EXPRESSION, this]!!
fun KtExpression.isUsedAsExpression(context: BindingContext): Boolean =
context[USED_AS_EXPRESSION, this]
?: throw AssertionError(
"BindingContext returned null for Boolean slice: " +
if (context == EMPTY) "BindingContext.EMPTY" else context.javaClass.toString()
)
fun KtExpression.isUsedAsResultOfLambda(context: BindingContext): Boolean = context[USED_AS_RESULT_OF_LAMBDA, this]!!
fun KtExpression.isUsedAsStatement(context: BindingContext): Boolean = !isUsedAsExpression(context)