[K2] isUsedAsExpression analysis
This commit is contained in:
committed by
teamcity
parent
d9701c71b7
commit
f765457e51
+7
-4
@@ -15,11 +15,9 @@ import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
|
||||
import org.jetbrains.kotlin.analysis.utils.printer.parentOfType
|
||||
import org.jetbrains.kotlin.cfg.WhenChecker
|
||||
import org.jetbrains.kotlin.diagnostics.WhenMissingCase
|
||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
||||
import org.jetbrains.kotlin.psi.KtNamedFunction
|
||||
import org.jetbrains.kotlin.psi.KtReturnExpression
|
||||
import org.jetbrains.kotlin.psi.KtWhenExpression
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.resolve.BindingContext
|
||||
import org.jetbrains.kotlin.resolve.bindingContextUtil.isUsedAsExpression
|
||||
|
||||
internal class KtFe10ExpressionInfoProvider(
|
||||
override val analysisSession: KtFe10AnalysisSession
|
||||
@@ -40,4 +38,9 @@ internal class KtFe10ExpressionInfoProvider(
|
||||
val bindingContext = analysisContext.analyze(whenExpression)
|
||||
return WhenChecker.getMissingCases(whenExpression, bindingContext)
|
||||
}
|
||||
|
||||
override fun isUsedAsExpression(expression: KtExpression): Boolean {
|
||||
val bindingContext = analysisContext.analyze(expression)
|
||||
return expression.isUsedAsExpression(bindingContext)
|
||||
}
|
||||
}
|
||||
+2004
File diff suppressed because it is too large
Load Diff
+6
@@ -184,6 +184,12 @@ public class Fe10IdeNormalAnalysisSourceModuleHLExpressionTypeTestGenerated exte
|
||||
runTest("analysis/analysis-api/testData/components/expressionTypeProvider/expressionType/returnExpression.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("singleExpressionLambdaBody.kt")
|
||||
public void testSingleExpressionLambdaBody() throws Exception {
|
||||
runTest("analysis/analysis-api/testData/components/expressionTypeProvider/expressionType/singleExpressionLambdaBody.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("smartcast_asCallArg.kt")
|
||||
public void testSmartcast_asCallArg() throws Exception {
|
||||
|
||||
Reference in New Issue
Block a user