diff --git a/compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantSingleExpressionStringTemplateChecker.fir.txt b/compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantSingleExpressionStringTemplateChecker.fir.txt index 1d9b40de8d6..2b3711d1315 100644 --- a/compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantSingleExpressionStringTemplateChecker.fir.txt +++ b/compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantSingleExpressionStringTemplateChecker.fir.txt @@ -3,6 +3,11 @@ FILE: RedundantSingleExpressionStringTemplateChecker.kt public get(): R|kotlin/String| public final val y: R|kotlin/String| = (R|/x|) public get(): R|kotlin/String| + public final typealias S = R|kotlin/String| + public final val x2: R|S| = String(Hello) + public get(): R|S| + public final val y2: R|kotlin/String| = (R|/x2|) + public get(): R|kotlin/String| public final val z: R|kotlin/String| = (R|/y|.R|kotlin/Any.hashCode|()) public get(): R|kotlin/String| public final fun toString(x: R|kotlin/String|): R|kotlin/String| { diff --git a/compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantSingleExpressionStringTemplateChecker.kt b/compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantSingleExpressionStringTemplateChecker.kt index 373bb48ad33..641640fe1db 100644 --- a/compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantSingleExpressionStringTemplateChecker.kt +++ b/compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantSingleExpressionStringTemplateChecker.kt @@ -2,6 +2,10 @@ val x = "Hello" val y = "$x" +typealias S = String +val x2: S = "Hello" +val y2 = "$x2" + val z = "${y.hashCode()}" fun toString(x: String) = "IC$x" diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/extended/RedundantSingleExpressionStringTemplateChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/extended/RedundantSingleExpressionStringTemplateChecker.kt index ab899cbfdc8..83f740e3e01 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/extended/RedundantSingleExpressionStringTemplateChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/extended/RedundantSingleExpressionStringTemplateChecker.kt @@ -19,7 +19,7 @@ import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.REDUNDANT_SINGLE_ import org.jetbrains.kotlin.fir.expressions.FirStatement import org.jetbrains.kotlin.fir.expressions.FirStringConcatenationCall import org.jetbrains.kotlin.fir.expressions.arguments -import org.jetbrains.kotlin.fir.types.classId +import org.jetbrains.kotlin.fir.analysis.checkers.fullyExpandedClassId import org.jetbrains.kotlin.fir.types.resolvedType import org.jetbrains.kotlin.name.StandardClassIds import org.jetbrains.kotlin.psi.KtStringTemplateExpression @@ -28,7 +28,7 @@ import org.jetbrains.kotlin.util.getChildren object RedundantSingleExpressionStringTemplateChecker : FirStringConcatenationCallChecker() { override fun check(expression: FirStringConcatenationCall, context: CheckerContext, reporter: DiagnosticReporter) { for (argumentExpression in expression.arguments) { - if (argumentExpression.resolvedType.classId == StandardClassIds.String && + if (argumentExpression.resolvedType.fullyExpandedClassId(context.session) == StandardClassIds.String && argumentExpression.stringParentChildrenCount() == 1 // there is no more children in original string template ) { reporter.reportOn(argumentExpression.source, REDUNDANT_SINGLE_EXPRESSION_STRING_TEMPLATE, context)