Tests: check errors from code fragment resolution
This commit is contained in:
committed by
Space Team
parent
b7d1298f20
commit
1714fb71c8
+10
@@ -5,12 +5,15 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.analysis.low.level.api.fir
|
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.getFirResolveSession
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.getOrBuildFirFile
|
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.compile.CodeFragmentCapturedValueAnalyzer
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.codeFragment
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.codeFragment
|
||||||
import org.jetbrains.kotlin.analysis.project.structure.ProjectStructureProvider
|
import org.jetbrains.kotlin.analysis.project.structure.ProjectStructureProvider
|
||||||
import org.jetbrains.kotlin.analysis.test.framework.utils.indented
|
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.declarations.FirResolvePhase
|
||||||
import org.jetbrains.kotlin.fir.render
|
import org.jetbrains.kotlin.fir.render
|
||||||
import org.jetbrains.kotlin.fir.renderer.FirRenderer
|
import org.jetbrains.kotlin.fir.renderer.FirRenderer
|
||||||
@@ -33,6 +36,13 @@ abstract class AbstractCodeFragmentCapturingTest : AbstractLowLevelApiCodeFragme
|
|||||||
val firCodeFragment = firFile.codeFragment
|
val firCodeFragment = firFile.codeFragment
|
||||||
firCodeFragment.lazyResolveToPhase(FirResolvePhase.BODY_RESOLVE)
|
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 capturedSymbols = CodeFragmentCapturedValueAnalyzer.analyze(resolveSession, firCodeFragment).symbols
|
||||||
|
|
||||||
val actualText = capturedSymbols.joinToString("\n") { capturedSymbol ->
|
val actualText = capturedSymbols.joinToString("\n") { capturedSymbol ->
|
||||||
|
|||||||
Reference in New Issue
Block a user