From 68e70769c8920df00ea894915ad3a2b2724b675d Mon Sep 17 00:00:00 2001 From: Tianyu Geng Date: Thu, 7 Oct 2021 11:47:30 -0700 Subject: [PATCH] FIR IDE: return error type for expressions if needed It seems unnatural to filter out error types, given that KtType does have a way to represent unresolved types. --- .../analysis/api/fir/components/KtFirExpressionTypeProvider.kt | 2 +- .../functionExpressionBodyWithoutExplicitType.txt | 2 +- .../propertyDeclarationWithoutExplicitType.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirExpressionTypeProvider.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirExpressionTypeProvider.kt index f5336ceb90f..aa9f017c98b 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirExpressionTypeProvider.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirExpressionTypeProvider.kt @@ -96,7 +96,7 @@ internal class KtFirExpressionTypeProvider( ?: getExpectedTypeByVariableAssignment(unwrapped) ?: getExpectedTypeByPropertyDeclaration(unwrapped) ?: getExpectedTypeByFunctionExpressionBody(unwrapped) - return expectedType.takeIf { it !is KtClassErrorType } + return expectedType } private fun getExpectedTypeByTypeCast(expression: PsiElement): KtType? { diff --git a/analysis/analysis-api/testData/components/expectedExpressionType/functionExpressionBodyWithoutExplicitType.txt b/analysis/analysis-api/testData/components/expectedExpressionType/functionExpressionBodyWithoutExplicitType.txt index 53684a9cf4e..dd5cf684203 100644 --- a/analysis/analysis-api/testData/components/expectedExpressionType/functionExpressionBodyWithoutExplicitType.txt +++ b/analysis/analysis-api/testData/components/expectedExpressionType/functionExpressionBodyWithoutExplicitType.txt @@ -1,2 +1,2 @@ expression: av -expected type: null +expected type: ERROR CLASS: Unresolved name: av diff --git a/analysis/analysis-api/testData/components/expectedExpressionType/propertyDeclarationWithoutExplicitType.txt b/analysis/analysis-api/testData/components/expectedExpressionType/propertyDeclarationWithoutExplicitType.txt index 53684a9cf4e..dd5cf684203 100644 --- a/analysis/analysis-api/testData/components/expectedExpressionType/propertyDeclarationWithoutExplicitType.txt +++ b/analysis/analysis-api/testData/components/expectedExpressionType/propertyDeclarationWithoutExplicitType.txt @@ -1,2 +1,2 @@ expression: av -expected type: null +expected type: ERROR CLASS: Unresolved name: av