From 1714fb71c869751491d753299d8b5a0827c3eb49 Mon Sep 17 00:00:00 2001 From: Alexey Merkulov Date: Wed, 2 Aug 2023 20:42:13 +0200 Subject: [PATCH] Tests: check errors from code fragment resolution --- .../level/api/fir/AbstractCodeFragmentCapturingTest.kt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractCodeFragmentCapturingTest.kt b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractCodeFragmentCapturingTest.kt index 120bae2bc39..0f3c4aa7520 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractCodeFragmentCapturingTest.kt +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractCodeFragmentCapturingTest.kt @@ -5,12 +5,15 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir +import org.jetbrains.kotlin.analysis.low.level.api.fir.api.DiagnosticCheckerFilter +import org.jetbrains.kotlin.analysis.low.level.api.fir.api.collectDiagnosticsForFile import org.jetbrains.kotlin.analysis.low.level.api.fir.api.getFirResolveSession import org.jetbrains.kotlin.analysis.low.level.api.fir.api.getOrBuildFirFile import org.jetbrains.kotlin.analysis.low.level.api.fir.compile.CodeFragmentCapturedValueAnalyzer import org.jetbrains.kotlin.analysis.low.level.api.fir.util.codeFragment import org.jetbrains.kotlin.analysis.project.structure.ProjectStructureProvider import org.jetbrains.kotlin.analysis.test.framework.utils.indented +import org.jetbrains.kotlin.diagnostics.Severity import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.render import org.jetbrains.kotlin.fir.renderer.FirRenderer @@ -33,6 +36,13 @@ abstract class AbstractCodeFragmentCapturingTest : AbstractLowLevelApiCodeFragme val firCodeFragment = firFile.codeFragment firCodeFragment.lazyResolveToPhase(FirResolvePhase.BODY_RESOLVE) + val frontendDiagnostics = ktCodeFragment.collectDiagnosticsForFile(resolveSession, DiagnosticCheckerFilter.ONLY_COMMON_CHECKERS) + val frontendErrors = frontendDiagnostics.filter { it.severity == Severity.ERROR } + + require(frontendErrors.isEmpty()) { + frontendErrors + } + val capturedSymbols = CodeFragmentCapturedValueAnalyzer.analyze(resolveSession, firCodeFragment).symbols val actualText = capturedSymbols.joinToString("\n") { capturedSymbol ->