[kotlin] Provide CFG facade for the extract function refactoring
This is the first implementation of a control flow graph facade for the extract function IDE refactoring. The exact contents of 'KtDataFlowExitPointSnapshot' will be refined later. ^KT-65762 Fixed
This commit is contained in:
+2
@@ -126,6 +126,8 @@ private constructor(
|
||||
|
||||
override val substitutorProviderImpl: KtSubstitutorProvider = KtFirSubstitutorProvider(this)
|
||||
|
||||
override val dataFlowInfoProviderImpl: KtDataFlowInfoProvider = KtFirDataFlowInfoProvider(this)
|
||||
|
||||
internal val useSiteSession: FirSession get() = firResolveSession.useSiteFirSession
|
||||
internal val firSymbolProvider: FirSymbolProvider get() = useSiteSession.symbolProvider
|
||||
internal val targetPlatform: TargetPlatform get() = useSiteSession.moduleData.platform
|
||||
|
||||
+376
@@ -0,0 +1,376 @@
|
||||
/*
|
||||
* Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.analysis.api.fir.components
|
||||
|
||||
import com.intellij.psi.util.PsiTreeUtil
|
||||
import org.jetbrains.kotlin.KtFakeSourceElementKind.*
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisNonPublicApi
|
||||
import org.jetbrains.kotlin.analysis.api.components.KtDataFlowExitPointSnapshot
|
||||
import org.jetbrains.kotlin.analysis.api.components.KtDataFlowExitPointSnapshot.VariableReassignment
|
||||
import org.jetbrains.kotlin.analysis.api.components.KtDataFlowInfoProvider
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtFirAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.fir.utils.unwrap
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtType
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.getOrBuildFir
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.getOrBuildFirOfType
|
||||
import org.jetbrains.kotlin.analysis.utils.errors.withKtModuleEntry
|
||||
import org.jetbrains.kotlin.analysis.utils.printer.parentsOfType
|
||||
import org.jetbrains.kotlin.fir.FirElement
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.declaration.isLocalMember
|
||||
import org.jetbrains.kotlin.fir.declarations.FirAnonymousFunction
|
||||
import org.jetbrains.kotlin.fir.declarations.FirConstructor
|
||||
import org.jetbrains.kotlin.fir.declarations.FirControlFlowGraphOwner
|
||||
import org.jetbrains.kotlin.fir.declarations.FirErrorFunction
|
||||
import org.jetbrains.kotlin.fir.declarations.FirErrorPrimaryConstructor
|
||||
import org.jetbrains.kotlin.fir.declarations.FirFunction
|
||||
import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
|
||||
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
|
||||
import org.jetbrains.kotlin.fir.expressions.FirBlock
|
||||
import org.jetbrains.kotlin.fir.expressions.FirBreakExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirContinueExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirErrorExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirJump
|
||||
import org.jetbrains.kotlin.fir.expressions.FirLoop
|
||||
import org.jetbrains.kotlin.fir.expressions.FirResolvedQualifier
|
||||
import org.jetbrains.kotlin.fir.expressions.FirReturnExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirThrowExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirVariableAssignment
|
||||
import org.jetbrains.kotlin.fir.expressions.impl.FirUnitExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.toResolvedCallableSymbol
|
||||
import org.jetbrains.kotlin.fir.psi
|
||||
import org.jetbrains.kotlin.fir.resolve.dfa.cfg.AnonymousObjectExpressionExitNode
|
||||
import org.jetbrains.kotlin.fir.resolve.dfa.cfg.CFGNode
|
||||
import org.jetbrains.kotlin.fir.resolve.dfa.cfg.CFGNodeWithSubgraphs
|
||||
import org.jetbrains.kotlin.fir.resolve.dfa.cfg.ControlFlowGraph
|
||||
import org.jetbrains.kotlin.fir.resolve.dfa.cfg.DelegateExpressionExitNode
|
||||
import org.jetbrains.kotlin.fir.resolve.dfa.cfg.ElvisExitNode
|
||||
import org.jetbrains.kotlin.fir.resolve.dfa.cfg.ElvisLhsExitNode
|
||||
import org.jetbrains.kotlin.fir.resolve.dfa.cfg.ExitNodeMarker
|
||||
import org.jetbrains.kotlin.fir.resolve.dfa.cfg.ExitSafeCallNode
|
||||
import org.jetbrains.kotlin.fir.resolve.dfa.cfg.ExitValueParameterNode
|
||||
import org.jetbrains.kotlin.fir.resolve.dfa.cfg.LocalClassExitNode
|
||||
import org.jetbrains.kotlin.fir.resolve.dfa.cfg.PostponedLambdaExitNode
|
||||
import org.jetbrains.kotlin.fir.resolve.dfa.cfg.SmartCastExpressionExitNode
|
||||
import org.jetbrains.kotlin.fir.resolve.dfa.cfg.StubNode
|
||||
import org.jetbrains.kotlin.fir.resolve.dfa.cfg.WhenBranchResultExitNode
|
||||
import org.jetbrains.kotlin.fir.resolve.dfa.cfg.WhenSubjectExpressionExitNode
|
||||
import org.jetbrains.kotlin.fir.resolve.dfa.controlFlowGraph
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
|
||||
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||
import org.jetbrains.kotlin.fir.types.commonSuperTypeOrNull
|
||||
import org.jetbrains.kotlin.fir.types.isNothing
|
||||
import org.jetbrains.kotlin.fir.types.isUnit
|
||||
import org.jetbrains.kotlin.fir.types.resolvedType
|
||||
import org.jetbrains.kotlin.fir.types.typeContext
|
||||
import org.jetbrains.kotlin.fir.utils.exceptions.withFirEntry
|
||||
import org.jetbrains.kotlin.fir.visitors.FirDefaultVisitorVoid
|
||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
||||
import org.jetbrains.kotlin.psi.KtElement
|
||||
import org.jetbrains.kotlin.psi.KtExpression
|
||||
import org.jetbrains.kotlin.psi.KtReturnExpression
|
||||
import org.jetbrains.kotlin.utils.exceptions.errorWithAttachment
|
||||
import org.jetbrains.kotlin.utils.exceptions.withPsiEntry
|
||||
import java.util.ArrayList
|
||||
import kotlin.math.sign
|
||||
|
||||
@OptIn(KtAnalysisNonPublicApi::class)
|
||||
internal class KtFirDataFlowInfoProvider(override val analysisSession: KtFirAnalysisSession) : KtDataFlowInfoProvider() {
|
||||
override fun getExitPointSnapshot(statements: List<KtExpression>): KtDataFlowExitPointSnapshot {
|
||||
require(statements.isNotEmpty())
|
||||
require(haveCommonParent(statements))
|
||||
|
||||
val firResolveSession = analysisSession.firResolveSession
|
||||
|
||||
val firStatements = statements.map { it.unwrap().getOrBuildFirOfType<FirElement>(firResolveSession) }
|
||||
|
||||
val collector = FirElementCollector()
|
||||
firStatements.forEach { it.accept(collector) }
|
||||
|
||||
val firValuedReturnExpressions = collector.firReturnExpressions.filter { !it.result.resolvedType.isUnit }
|
||||
|
||||
val firDefaultStatement = firStatements.last()
|
||||
val defaultExpressionInfo = computeDefaultExpression(statements, firDefaultStatement)
|
||||
|
||||
val firEscapingCandidates = buildSet<FirElement> {
|
||||
add(firDefaultStatement)
|
||||
addAll(collector.firReturnExpressions)
|
||||
addAll(collector.firBreakExpressions)
|
||||
addAll(collector.firContinueExpressions)
|
||||
}
|
||||
|
||||
val hasEscapingJumps = computeHasEscapingJumps(statements.first(), firStatements.first(), firEscapingCandidates)
|
||||
|
||||
val loopJumpExpressions = ArrayList<KtExpression>(collector.firBreakExpressions.size + collector.firContinueExpressions.size)
|
||||
collector.firBreakExpressions.mapNotNullTo(loopJumpExpressions) { it.psi as? KtExpression }
|
||||
collector.firContinueExpressions.mapNotNullTo(loopJumpExpressions) { it.psi as? KtExpression }
|
||||
|
||||
return KtDataFlowExitPointSnapshot(
|
||||
defaultExpressionInfo = defaultExpressionInfo,
|
||||
valuedReturnExpressions = firValuedReturnExpressions.mapNotNull { it.psi as? KtReturnExpression },
|
||||
returnValueType = computeReturnType(firValuedReturnExpressions),
|
||||
loopJumpExpressions = loopJumpExpressions,
|
||||
hasJumps = collector.hasJumps,
|
||||
hasEscapingJumps = hasEscapingJumps,
|
||||
hasMultipleJumpKinds = collector.hasMultipleJumpKinds,
|
||||
hasMultipleJumpTargets = collector.hasMultipleJumpTargets,
|
||||
variableReassignments = collector.variableReassignments
|
||||
)
|
||||
}
|
||||
|
||||
private fun haveCommonParent(statements: List<KtElement>): Boolean {
|
||||
if (statements.size < 2) {
|
||||
return true
|
||||
}
|
||||
|
||||
val parent = statements.first().parent
|
||||
return statements.all { it.parent == parent }
|
||||
}
|
||||
|
||||
private fun computeDefaultExpression(
|
||||
statements: List<KtExpression>,
|
||||
firDefaultStatement: FirElement
|
||||
): KtDataFlowExitPointSnapshot.DefaultExpressionInfo? {
|
||||
when (firDefaultStatement) {
|
||||
!is FirExpression,
|
||||
is FirJump<*>,
|
||||
is FirBlock,
|
||||
is FirThrowExpression,
|
||||
is FirResolvedQualifier,
|
||||
is FirUnitExpression,
|
||||
is FirErrorExpression -> {
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
@Suppress("USELESS_IS_CHECK") // K2 warning suppression, TODO: KT-62472
|
||||
require(firDefaultStatement is FirExpression)
|
||||
|
||||
val defaultExpressionFromPsi = statements.last()
|
||||
val defaultExpressionFromFir = firDefaultStatement.psi as? KtExpression ?: return null
|
||||
|
||||
if (!PsiTreeUtil.isAncestor(defaultExpressionFromFir, defaultExpressionFromPsi, false)) {
|
||||
// In certain cases, expressions might be different in PSI and FIR sources.
|
||||
// E.g., in 'foo.<expr>bar()</expr>', there is no FIR expression that corresponds to the 'bar()' KtCallExpression.
|
||||
return null
|
||||
}
|
||||
|
||||
val defaultConeType = firDefaultStatement.resolvedType
|
||||
if (defaultConeType.isNothing) {
|
||||
return null
|
||||
}
|
||||
|
||||
val defaultType = defaultConeType.toKtType()
|
||||
return KtDataFlowExitPointSnapshot.DefaultExpressionInfo(defaultExpressionFromPsi, defaultType)
|
||||
}
|
||||
|
||||
private fun computeReturnType(firReturnExpressions: List<FirReturnExpression>): KtType? {
|
||||
val coneTypes = ArrayList<ConeKotlinType>(firReturnExpressions.size)
|
||||
|
||||
for (firReturnExpression in firReturnExpressions) {
|
||||
val coneType = firReturnExpression.result.resolvedType
|
||||
if (coneType.isUnit) {
|
||||
return null
|
||||
}
|
||||
|
||||
coneTypes.add(coneType)
|
||||
}
|
||||
|
||||
return analysisSession.useSiteSession.typeContext.commonSuperTypeOrNull(coneTypes)?.toKtType()
|
||||
}
|
||||
|
||||
private fun computeHasEscapingJumps(anchor: KtElement, firAnchor: FirElement, firTargets: Set<FirElement>): Boolean {
|
||||
if (firTargets.size < 2) {
|
||||
// There should be both a default expression and some kind of jump
|
||||
return false
|
||||
}
|
||||
|
||||
val graph = findControlFlowGraph(anchor, firAnchor)
|
||||
?: errorWithAttachment("Cannot find a control flow graph for element") {
|
||||
withKtModuleEntry("module", analysisSession.useSiteModule)
|
||||
withPsiEntry("anchor", anchor)
|
||||
withFirEntry("firAnchor", firAnchor)
|
||||
}
|
||||
|
||||
val exitNodes = HashMap<FirElement, List<CFGNode<*>>>()
|
||||
graph.collectExitNodes(firTargets, exitNodes)
|
||||
|
||||
return exitNodes.values.distinct().size > 1
|
||||
}
|
||||
|
||||
private fun findControlFlowGraph(anchor: KtElement, firAnchor: FirElement): ControlFlowGraph? {
|
||||
val parentDeclarations = anchor.parentsOfType<KtDeclaration>(withSelf = false)
|
||||
for (parentDeclaration in parentDeclarations) {
|
||||
val parentFirDeclaration = parentDeclaration.getOrBuildFir(analysisSession.firResolveSession)
|
||||
if (parentFirDeclaration is FirControlFlowGraphOwner) {
|
||||
val graph = parentFirDeclaration.controlFlowGraphReference?.controlFlowGraph
|
||||
if (graph != null && firAnchor in graph) {
|
||||
return graph
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return null
|
||||
}
|
||||
|
||||
private fun ControlFlowGraph.collectExitNodes(firTargets: Set<FirElement>, exitNodes: MutableMap<FirElement, List<CFGNode<*>>>) {
|
||||
for (node in nodes) {
|
||||
val fir = node.fir
|
||||
if (fir in firTargets) {
|
||||
// This intentionally replaces existing values, in case if there are multiple nodes with the same FirElement.
|
||||
// Here we look for exits, so we are interested in the last matching node.
|
||||
exitNodes[fir] = node.followingNodes
|
||||
.filter { it !is StubNode }
|
||||
.map { it.unwrap() }
|
||||
.distinct()
|
||||
.sortedBy { it.id }
|
||||
}
|
||||
if (node is CFGNodeWithSubgraphs<*>) {
|
||||
for (subGraph in node.subGraphs) {
|
||||
subGraph.collectExitNodes(firTargets, exitNodes)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun CFGNode<*>.unwrap(): CFGNode<*> {
|
||||
var current = this
|
||||
|
||||
while (current.isExitNode()) {
|
||||
val following = current.followingNodes
|
||||
if (following.size == 1) {
|
||||
current = following.first()
|
||||
} else {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
return current
|
||||
}
|
||||
|
||||
private fun CFGNode<*>.isExitNode(): Boolean {
|
||||
return when (this) {
|
||||
is ExitNodeMarker, is ExitValueParameterNode, is WhenSubjectExpressionExitNode, is AnonymousObjectExpressionExitNode,
|
||||
is SmartCastExpressionExitNode, is PostponedLambdaExitNode, is DelegateExpressionExitNode, is WhenBranchResultExitNode,
|
||||
is ElvisExitNode, is ExitSafeCallNode, is LocalClassExitNode, is ElvisLhsExitNode -> {
|
||||
true
|
||||
}
|
||||
else -> {
|
||||
false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private operator fun ControlFlowGraph.contains(fir: FirElement): Boolean {
|
||||
for (node in nodes) {
|
||||
if (node.fir == fir) {
|
||||
return true
|
||||
}
|
||||
if (node is CFGNodeWithSubgraphs<*> && node.subGraphs.any { fir in it }) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
private inner class FirElementCollector : FirDefaultVisitorVoid() {
|
||||
val hasJumps: Boolean
|
||||
get() = firReturnTargets.isNotEmpty() || firLoopJumpTargets.isNotEmpty()
|
||||
|
||||
val hasMultipleJumpKinds: Boolean
|
||||
get() = (firReturnExpressions.size.sign + firBreakExpressions.size.sign + firContinueExpressions.size.sign) > 1
|
||||
|
||||
val hasMultipleJumpTargets: Boolean
|
||||
get() = (firReturnTargets.size + firLoopJumpTargets.size) > 1
|
||||
|
||||
val variableReassignments = mutableListOf<VariableReassignment>()
|
||||
|
||||
val firReturnExpressions = mutableListOf<FirReturnExpression>()
|
||||
val firBreakExpressions = mutableListOf<FirBreakExpression>()
|
||||
val firContinueExpressions = mutableListOf<FirContinueExpression>()
|
||||
|
||||
private val firReturnTargets = mutableSetOf<FirFunction>()
|
||||
private val firLoopJumpTargets = mutableSetOf<FirLoop>()
|
||||
|
||||
private val firFunctionDeclarations = mutableSetOf<FirFunction>()
|
||||
private val firLoopStatements = mutableSetOf<FirLoop>()
|
||||
|
||||
override fun visitElement(element: FirElement) {
|
||||
element.acceptChildren(this)
|
||||
}
|
||||
|
||||
override fun visitAnonymousFunction(anonymousFunction: FirAnonymousFunction) = visitFunction(anonymousFunction)
|
||||
override fun visitPropertyAccessor(propertyAccessor: FirPropertyAccessor) = visitFunction(propertyAccessor)
|
||||
override fun visitSimpleFunction(simpleFunction: FirSimpleFunction) = visitFunction(simpleFunction)
|
||||
override fun visitErrorFunction(errorFunction: FirErrorFunction) = visitFunction(errorFunction)
|
||||
override fun visitConstructor(constructor: FirConstructor) = visitFunction(constructor)
|
||||
override fun visitErrorPrimaryConstructor(errorPrimaryConstructor: FirErrorPrimaryConstructor) = visitFunction(errorPrimaryConstructor)
|
||||
|
||||
override fun visitFunction(function: FirFunction) {
|
||||
firFunctionDeclarations.add(function)
|
||||
super.visitFunction(function)
|
||||
}
|
||||
|
||||
override fun visitLoop(loop: FirLoop) {
|
||||
firLoopStatements.add(loop)
|
||||
super.visitLoop(loop)
|
||||
}
|
||||
|
||||
override fun visitReturnExpression(returnExpression: FirReturnExpression) {
|
||||
if (returnExpression.target.labeledElement !in firFunctionDeclarations) {
|
||||
firReturnExpressions.add(returnExpression)
|
||||
firReturnTargets.add(returnExpression.target.labeledElement)
|
||||
}
|
||||
super.visitReturnExpression(returnExpression)
|
||||
}
|
||||
|
||||
override fun visitBreakExpression(breakExpression: FirBreakExpression) {
|
||||
if (breakExpression.target.labeledElement !in firLoopStatements) {
|
||||
firBreakExpressions.add(breakExpression)
|
||||
firLoopJumpTargets.add(breakExpression.target.labeledElement)
|
||||
}
|
||||
super.visitBreakExpression(breakExpression)
|
||||
}
|
||||
|
||||
override fun visitContinueExpression(continueExpression: FirContinueExpression) {
|
||||
if (continueExpression.target.labeledElement !in firLoopStatements) {
|
||||
firContinueExpressions.add(continueExpression)
|
||||
firLoopJumpTargets.add(continueExpression.target.labeledElement)
|
||||
}
|
||||
super.visitContinueExpression(continueExpression)
|
||||
}
|
||||
|
||||
override fun visitVariableAssignment(variableAssignment: FirVariableAssignment) {
|
||||
val firVariableSymbol = variableAssignment.lValue.toResolvedCallableSymbol(analysisSession.useSiteSession)
|
||||
val expression = variableAssignment.psi as? KtExpression
|
||||
|
||||
if (firVariableSymbol is FirVariableSymbol<*> && firVariableSymbol.fir.isLocalMember && expression != null) {
|
||||
val variableSymbol = analysisSession.firSymbolBuilder.variableLikeBuilder.buildVariableLikeSymbol(firVariableSymbol)
|
||||
val reassignment = VariableReassignment(expression, variableSymbol, variableAssignment.isAugmented())
|
||||
variableReassignments.add(reassignment)
|
||||
}
|
||||
|
||||
super.visitVariableAssignment(variableAssignment)
|
||||
}
|
||||
|
||||
private fun FirVariableAssignment.isAugmented(): Boolean {
|
||||
val targetSource = lValue.source
|
||||
if (targetSource != null) {
|
||||
when (targetSource.kind) {
|
||||
is DesugaredCompoundAssignment, is DesugaredIncrementOrDecrement -> return true
|
||||
else -> {}
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
private fun ConeKotlinType.toKtType(): KtType {
|
||||
return analysisSession.firSymbolBuilder.typeBuilder.buildKtType(this)
|
||||
}
|
||||
}
|
||||
+138
@@ -0,0 +1,138 @@
|
||||
/*
|
||||
* Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.analysis.api.fir.test.cases.generated.cases.components.dataFlowInfoProvider;
|
||||
|
||||
import com.intellij.testFramework.TestDataPath;
|
||||
import org.jetbrains.kotlin.test.util.KtTestUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.kotlin.analysis.api.fir.test.configurators.AnalysisApiFirTestConfiguratorFactory;
|
||||
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfiguratorFactoryData;
|
||||
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfigurator;
|
||||
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.TestModuleKind;
|
||||
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.FrontendKind;
|
||||
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisSessionMode;
|
||||
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiMode;
|
||||
import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.dataFlowInfoProvider.AbstractExitPointSnapshotTest;
|
||||
import org.jetbrains.kotlin.test.TestMetadata;
|
||||
import org.junit.jupiter.api.Nested;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.analysis.api.GenerateAnalysisApiTestsKt}. DO NOT MODIFY MANUALLY */
|
||||
@SuppressWarnings("all")
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class FirIdeDependentAnalysisScriptSourceModuleExitPointSnapshotTestGenerated extends AbstractExitPointSnapshotTest {
|
||||
@NotNull
|
||||
@Override
|
||||
public AnalysisApiTestConfigurator getConfigurator() {
|
||||
return AnalysisApiFirTestConfiguratorFactory.INSTANCE.createConfigurator(
|
||||
new AnalysisApiTestConfiguratorFactoryData(
|
||||
FrontendKind.Fir,
|
||||
TestModuleKind.ScriptSource,
|
||||
AnalysisSessionMode.Dependent,
|
||||
AnalysisApiMode.Ide
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAllFilesPresentInExitPointSnapshot() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot"), Pattern.compile("^(.+)\\.kts$"), null, true);
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class ControlFlow {
|
||||
@Test
|
||||
public void testAllFilesPresentInControlFlow() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow"), Pattern.compile("^(.+)\\.kts$"), null, true);
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/conditionalJumps")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class ConditionalJumps {
|
||||
@Test
|
||||
public void testAllFilesPresentInConditionalJumps() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/conditionalJumps"), Pattern.compile("^(.+)\\.kts$"), null, true);
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/definiteJumps")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class DefiniteJumps {
|
||||
@Test
|
||||
public void testAllFilesPresentInDefiniteJumps() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/definiteJumps"), Pattern.compile("^(.+)\\.kts$"), null, true);
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/differentTargets")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class DifferentTargets {
|
||||
@Test
|
||||
public void testAllFilesPresentInDifferentTargets() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/differentTargets"), Pattern.compile("^(.+)\\.kts$"), null, true);
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/exitPointEquivalence")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class ExitPointEquivalence {
|
||||
@Test
|
||||
public void testAllFilesPresentInExitPointEquivalence() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/exitPointEquivalence"), Pattern.compile("^(.+)\\.kts$"), null, true);
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/unconditionalJumps")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class UnconditionalJumps {
|
||||
@Test
|
||||
public void testAllFilesPresentInUnconditionalJumps() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/unconditionalJumps"), Pattern.compile("^(.+)\\.kts$"), null, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class DefaultValues {
|
||||
@Test
|
||||
public void testAllFilesPresentInDefaultValues() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues"), Pattern.compile("^(.+)\\.kts$"), null, true);
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/languageConstructs")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class LanguageConstructs {
|
||||
@Test
|
||||
public void testAllFilesPresentInLanguageConstructs() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/languageConstructs"), Pattern.compile("^(.+)\\.kts$"), null, true);
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class Variables {
|
||||
@Test
|
||||
public void testAllFilesPresentInVariables() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables"), Pattern.compile("^(.+)\\.kts$"), null, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
+594
@@ -0,0 +1,594 @@
|
||||
/*
|
||||
* Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.analysis.api.fir.test.cases.generated.cases.components.dataFlowInfoProvider;
|
||||
|
||||
import com.intellij.testFramework.TestDataPath;
|
||||
import org.jetbrains.kotlin.test.util.KtTestUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.kotlin.analysis.api.fir.test.configurators.AnalysisApiFirTestConfiguratorFactory;
|
||||
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfiguratorFactoryData;
|
||||
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfigurator;
|
||||
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.TestModuleKind;
|
||||
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.FrontendKind;
|
||||
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisSessionMode;
|
||||
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiMode;
|
||||
import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.dataFlowInfoProvider.AbstractExitPointSnapshotTest;
|
||||
import org.jetbrains.kotlin.test.TestMetadata;
|
||||
import org.junit.jupiter.api.Nested;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.analysis.api.GenerateAnalysisApiTestsKt}. DO NOT MODIFY MANUALLY */
|
||||
@SuppressWarnings("all")
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class FirIdeDependentAnalysisSourceModuleExitPointSnapshotTestGenerated extends AbstractExitPointSnapshotTest {
|
||||
@NotNull
|
||||
@Override
|
||||
public AnalysisApiTestConfigurator getConfigurator() {
|
||||
return AnalysisApiFirTestConfiguratorFactory.INSTANCE.createConfigurator(
|
||||
new AnalysisApiTestConfiguratorFactoryData(
|
||||
FrontendKind.Fir,
|
||||
TestModuleKind.Source,
|
||||
AnalysisSessionMode.Dependent,
|
||||
AnalysisApiMode.Ide
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAllFilesPresentInExitPointSnapshot() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class ControlFlow {
|
||||
@Test
|
||||
public void testAllFilesPresentInControlFlow() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("breakContinue.kt")
|
||||
public void testBreakContinue() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/breakContinue.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("breakReturn.kt")
|
||||
public void testBreakReturn() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/breakReturn.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("breakReturn2.kt")
|
||||
public void testBreakReturn2() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/breakReturn2.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("continueReturn.kt")
|
||||
public void testContinueReturn() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/continueReturn.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("continueReturn2.kt")
|
||||
public void testContinueReturn2() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/continueReturn2.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("defaultTryCatch.kt")
|
||||
public void testDefaultTryCatch() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/defaultTryCatch.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("defaultTryCatch2.kt")
|
||||
public void testDefaultTryCatch2() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/defaultTryCatch2.kt");
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/conditionalJumps")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class ConditionalJumps {
|
||||
@Test
|
||||
public void testAllFilesPresentInConditionalJumps() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/conditionalJumps"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("break.kt")
|
||||
public void testBreak() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/conditionalJumps/break.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("break2.kt")
|
||||
public void testBreak2() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/conditionalJumps/break2.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("break3.kt")
|
||||
public void testBreak3() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/conditionalJumps/break3.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("break4.kt")
|
||||
public void testBreak4() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/conditionalJumps/break4.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("break5.kt")
|
||||
public void testBreak5() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/conditionalJumps/break5.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("return.kt")
|
||||
public void testReturn() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/conditionalJumps/return.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("return2.kt")
|
||||
public void testReturn2() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/conditionalJumps/return2.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("return3.kt")
|
||||
public void testReturn3() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/conditionalJumps/return3.kt");
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/definiteJumps")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class DefiniteJumps {
|
||||
@Test
|
||||
public void testAllFilesPresentInDefiniteJumps() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/definiteJumps"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("return.kt")
|
||||
public void testReturn() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/definiteJumps/return.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("return2.kt")
|
||||
public void testReturn2() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/definiteJumps/return2.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("return3.kt")
|
||||
public void testReturn3() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/definiteJumps/return3.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("return4.kt")
|
||||
public void testReturn4() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/definiteJumps/return4.kt");
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/differentTargets")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class DifferentTargets {
|
||||
@Test
|
||||
public void testAllFilesPresentInDifferentTargets() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/differentTargets"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("break.kt")
|
||||
public void testBreak() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/differentTargets/break.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("return.kt")
|
||||
public void testReturn() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/differentTargets/return.kt");
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/exitPointEquivalence")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class ExitPointEquivalence {
|
||||
@Test
|
||||
public void testAllFilesPresentInExitPointEquivalence() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/exitPointEquivalence"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("breakAndReturn.kt")
|
||||
public void testBreakAndReturn() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/exitPointEquivalence/breakAndReturn.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("breakContinueAndDefault.kt")
|
||||
public void testBreakContinueAndDefault() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/exitPointEquivalence/breakContinueAndDefault.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("continueAndReturn.kt")
|
||||
public void testContinueAndReturn() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/exitPointEquivalence/continueAndReturn.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("defaultAndBreak.kt")
|
||||
public void testDefaultAndBreak() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/exitPointEquivalence/defaultAndBreak.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("defaultAndContinue.kt")
|
||||
public void testDefaultAndContinue() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/exitPointEquivalence/defaultAndContinue.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("defaultAndReturn.kt")
|
||||
public void testDefaultAndReturn() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/exitPointEquivalence/defaultAndReturn.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("defaultAndReturnInWhen.kt")
|
||||
public void testDefaultAndReturnInWhen() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/exitPointEquivalence/defaultAndReturnInWhen.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("defaultAndReturnInWhen2.kt")
|
||||
public void testDefaultAndReturnInWhen2() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/exitPointEquivalence/defaultAndReturnInWhen2.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("multipleBreaks.kt")
|
||||
public void testMultipleBreaks() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/exitPointEquivalence/multipleBreaks.kt");
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/unconditionalJumps")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class UnconditionalJumps {
|
||||
@Test
|
||||
public void testAllFilesPresentInUnconditionalJumps() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/unconditionalJumps"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("break.kt")
|
||||
public void testBreak() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/unconditionalJumps/break.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("break2.kt")
|
||||
public void testBreak2() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/unconditionalJumps/break2.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("break3.kt")
|
||||
public void testBreak3() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/unconditionalJumps/break3.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("break4.kt")
|
||||
public void testBreak4() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/unconditionalJumps/break4.kt");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class DefaultValues {
|
||||
@Test
|
||||
public void testAllFilesPresentInDefaultValues() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("anonymousFunction.kt")
|
||||
public void testAnonymousFunction() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/anonymousFunction.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("anonymousObject.kt")
|
||||
public void testAnonymousObject() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/anonymousObject.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("assignmentTarget.kt")
|
||||
public void testAssignmentTarget() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/assignmentTarget.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("assignmentValue.kt")
|
||||
public void testAssignmentValue() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/assignmentValue.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("calleeExpression.kt")
|
||||
public void testCalleeExpression() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/calleeExpression.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("errorDefaultType.kt")
|
||||
public void testErrorDefaultType() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/errorDefaultType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("expressionBlock.kt")
|
||||
public void testExpressionBlock() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/expressionBlock.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("flexibleDefaultType.kt")
|
||||
public void testFlexibleDefaultType() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/flexibleDefaultType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("functionBodyBlock.kt")
|
||||
public void testFunctionBodyBlock() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/functionBodyBlock.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("functionCall.kt")
|
||||
public void testFunctionCall() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/functionCall.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("infixOperator.kt")
|
||||
public void testInfixOperator() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/infixOperator.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("lambdaExpression.kt")
|
||||
public void testLambdaExpression() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/lambdaExpression.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("nullableDefaultType.kt")
|
||||
public void testNullableDefaultType() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/nullableDefaultType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("packageQualifier.kt")
|
||||
public void testPackageQualifier() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/packageQualifier.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("singleTypedExpression.kt")
|
||||
public void testSingleTypedExpression() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/singleTypedExpression.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("suspendFunctionCall.kt")
|
||||
public void testSuspendFunctionCall() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/suspendFunctionCall.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("typeQualifier.kt")
|
||||
public void testTypeQualifier() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/typeQualifier.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("variableDeclaration.kt")
|
||||
public void testVariableDeclaration() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/variableDeclaration.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("while.kt")
|
||||
public void testWhile() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/while.kt");
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/languageConstructs")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class LanguageConstructs {
|
||||
@Test
|
||||
public void testAllFilesPresentInLanguageConstructs() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/languageConstructs"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("arrayLiteral.kt")
|
||||
public void testArrayLiteral() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/languageConstructs/arrayLiteral.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("labeledReturn.kt")
|
||||
public void testLabeledReturn() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/languageConstructs/labeledReturn.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("nonLocalReturn.kt")
|
||||
public void testNonLocalReturn() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/languageConstructs/nonLocalReturn.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("nonLocalReturn2.kt")
|
||||
public void testNonLocalReturn2() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/languageConstructs/nonLocalReturn2.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("parameter.kt")
|
||||
public void testParameter() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/languageConstructs/parameter.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("parameterDefaultValue.kt")
|
||||
public void testParameterDefaultValue() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/languageConstructs/parameterDefaultValue.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("return.kt")
|
||||
public void testReturn() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/languageConstructs/return.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("trailingSemicolon.kt")
|
||||
public void testTrailingSemicolon() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/languageConstructs/trailingSemicolon.kt");
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class Variables {
|
||||
@Test
|
||||
public void testAllFilesPresentInVariables() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("arrayElementAugmentedReassignment.kt")
|
||||
public void testArrayElementAugmentedReassignment() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables/arrayElementAugmentedReassignment.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("arrayElementIncrementPostfix.kt")
|
||||
public void testArrayElementIncrementPostfix() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables/arrayElementIncrementPostfix.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("arrayElementIncrementPrefix.kt")
|
||||
public void testArrayElementIncrementPrefix() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables/arrayElementIncrementPrefix.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("augmentedReassignment.kt")
|
||||
public void testAugmentedReassignment() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables/augmentedReassignment.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("classPropertyReassignment.kt")
|
||||
public void testClassPropertyReassignment() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables/classPropertyReassignment.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("conditionalReassignment.kt")
|
||||
public void testConditionalReassignment() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables/conditionalReassignment.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("destructuredReassignment.kt")
|
||||
public void testDestructuredReassignment() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables/destructuredReassignment.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("errorTargetReassignment.kt")
|
||||
public void testErrorTargetReassignment() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables/errorTargetReassignment.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("incrementPostfix.kt")
|
||||
public void testIncrementPostfix() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables/incrementPostfix.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("incrementPrefix.kt")
|
||||
public void testIncrementPrefix() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables/incrementPrefix.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("lambdaParameterReassignment.kt")
|
||||
public void testLambdaParameterReassignment() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables/lambdaParameterReassignment.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("localVariable.kt")
|
||||
public void testLocalVariable() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables/localVariable.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("parameterReassignment.kt")
|
||||
public void testParameterReassignment() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables/parameterReassignment.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("simpleReassignment.kt")
|
||||
public void testSimpleReassignment() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables/simpleReassignment.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("topLevelPropertyReassignment.kt")
|
||||
public void testTopLevelPropertyReassignment() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables/topLevelPropertyReassignment.kt");
|
||||
}
|
||||
}
|
||||
}
|
||||
+138
@@ -0,0 +1,138 @@
|
||||
/*
|
||||
* Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.analysis.api.fir.test.cases.generated.cases.components.dataFlowInfoProvider;
|
||||
|
||||
import com.intellij.testFramework.TestDataPath;
|
||||
import org.jetbrains.kotlin.test.util.KtTestUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.kotlin.analysis.api.fir.test.configurators.AnalysisApiFirTestConfiguratorFactory;
|
||||
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfiguratorFactoryData;
|
||||
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfigurator;
|
||||
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.TestModuleKind;
|
||||
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.FrontendKind;
|
||||
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisSessionMode;
|
||||
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiMode;
|
||||
import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.dataFlowInfoProvider.AbstractExitPointSnapshotTest;
|
||||
import org.jetbrains.kotlin.test.TestMetadata;
|
||||
import org.junit.jupiter.api.Nested;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.analysis.api.GenerateAnalysisApiTestsKt}. DO NOT MODIFY MANUALLY */
|
||||
@SuppressWarnings("all")
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class FirIdeNormalAnalysisScriptSourceModuleExitPointSnapshotTestGenerated extends AbstractExitPointSnapshotTest {
|
||||
@NotNull
|
||||
@Override
|
||||
public AnalysisApiTestConfigurator getConfigurator() {
|
||||
return AnalysisApiFirTestConfiguratorFactory.INSTANCE.createConfigurator(
|
||||
new AnalysisApiTestConfiguratorFactoryData(
|
||||
FrontendKind.Fir,
|
||||
TestModuleKind.ScriptSource,
|
||||
AnalysisSessionMode.Normal,
|
||||
AnalysisApiMode.Ide
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAllFilesPresentInExitPointSnapshot() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot"), Pattern.compile("^(.+)\\.kts$"), null, true);
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class ControlFlow {
|
||||
@Test
|
||||
public void testAllFilesPresentInControlFlow() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow"), Pattern.compile("^(.+)\\.kts$"), null, true);
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/conditionalJumps")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class ConditionalJumps {
|
||||
@Test
|
||||
public void testAllFilesPresentInConditionalJumps() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/conditionalJumps"), Pattern.compile("^(.+)\\.kts$"), null, true);
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/definiteJumps")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class DefiniteJumps {
|
||||
@Test
|
||||
public void testAllFilesPresentInDefiniteJumps() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/definiteJumps"), Pattern.compile("^(.+)\\.kts$"), null, true);
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/differentTargets")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class DifferentTargets {
|
||||
@Test
|
||||
public void testAllFilesPresentInDifferentTargets() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/differentTargets"), Pattern.compile("^(.+)\\.kts$"), null, true);
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/exitPointEquivalence")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class ExitPointEquivalence {
|
||||
@Test
|
||||
public void testAllFilesPresentInExitPointEquivalence() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/exitPointEquivalence"), Pattern.compile("^(.+)\\.kts$"), null, true);
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/unconditionalJumps")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class UnconditionalJumps {
|
||||
@Test
|
||||
public void testAllFilesPresentInUnconditionalJumps() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/unconditionalJumps"), Pattern.compile("^(.+)\\.kts$"), null, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class DefaultValues {
|
||||
@Test
|
||||
public void testAllFilesPresentInDefaultValues() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues"), Pattern.compile("^(.+)\\.kts$"), null, true);
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/languageConstructs")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class LanguageConstructs {
|
||||
@Test
|
||||
public void testAllFilesPresentInLanguageConstructs() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/languageConstructs"), Pattern.compile("^(.+)\\.kts$"), null, true);
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class Variables {
|
||||
@Test
|
||||
public void testAllFilesPresentInVariables() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables"), Pattern.compile("^(.+)\\.kts$"), null, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
+594
@@ -0,0 +1,594 @@
|
||||
/*
|
||||
* Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.analysis.api.fir.test.cases.generated.cases.components.dataFlowInfoProvider;
|
||||
|
||||
import com.intellij.testFramework.TestDataPath;
|
||||
import org.jetbrains.kotlin.test.util.KtTestUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.kotlin.analysis.api.fir.test.configurators.AnalysisApiFirTestConfiguratorFactory;
|
||||
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfiguratorFactoryData;
|
||||
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfigurator;
|
||||
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.TestModuleKind;
|
||||
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.FrontendKind;
|
||||
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisSessionMode;
|
||||
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiMode;
|
||||
import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.dataFlowInfoProvider.AbstractExitPointSnapshotTest;
|
||||
import org.jetbrains.kotlin.test.TestMetadata;
|
||||
import org.junit.jupiter.api.Nested;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.analysis.api.GenerateAnalysisApiTestsKt}. DO NOT MODIFY MANUALLY */
|
||||
@SuppressWarnings("all")
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class FirIdeNormalAnalysisSourceModuleExitPointSnapshotTestGenerated extends AbstractExitPointSnapshotTest {
|
||||
@NotNull
|
||||
@Override
|
||||
public AnalysisApiTestConfigurator getConfigurator() {
|
||||
return AnalysisApiFirTestConfiguratorFactory.INSTANCE.createConfigurator(
|
||||
new AnalysisApiTestConfiguratorFactoryData(
|
||||
FrontendKind.Fir,
|
||||
TestModuleKind.Source,
|
||||
AnalysisSessionMode.Normal,
|
||||
AnalysisApiMode.Ide
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAllFilesPresentInExitPointSnapshot() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class ControlFlow {
|
||||
@Test
|
||||
public void testAllFilesPresentInControlFlow() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("breakContinue.kt")
|
||||
public void testBreakContinue() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/breakContinue.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("breakReturn.kt")
|
||||
public void testBreakReturn() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/breakReturn.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("breakReturn2.kt")
|
||||
public void testBreakReturn2() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/breakReturn2.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("continueReturn.kt")
|
||||
public void testContinueReturn() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/continueReturn.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("continueReturn2.kt")
|
||||
public void testContinueReturn2() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/continueReturn2.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("defaultTryCatch.kt")
|
||||
public void testDefaultTryCatch() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/defaultTryCatch.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("defaultTryCatch2.kt")
|
||||
public void testDefaultTryCatch2() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/defaultTryCatch2.kt");
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/conditionalJumps")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class ConditionalJumps {
|
||||
@Test
|
||||
public void testAllFilesPresentInConditionalJumps() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/conditionalJumps"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("break.kt")
|
||||
public void testBreak() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/conditionalJumps/break.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("break2.kt")
|
||||
public void testBreak2() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/conditionalJumps/break2.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("break3.kt")
|
||||
public void testBreak3() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/conditionalJumps/break3.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("break4.kt")
|
||||
public void testBreak4() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/conditionalJumps/break4.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("break5.kt")
|
||||
public void testBreak5() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/conditionalJumps/break5.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("return.kt")
|
||||
public void testReturn() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/conditionalJumps/return.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("return2.kt")
|
||||
public void testReturn2() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/conditionalJumps/return2.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("return3.kt")
|
||||
public void testReturn3() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/conditionalJumps/return3.kt");
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/definiteJumps")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class DefiniteJumps {
|
||||
@Test
|
||||
public void testAllFilesPresentInDefiniteJumps() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/definiteJumps"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("return.kt")
|
||||
public void testReturn() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/definiteJumps/return.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("return2.kt")
|
||||
public void testReturn2() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/definiteJumps/return2.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("return3.kt")
|
||||
public void testReturn3() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/definiteJumps/return3.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("return4.kt")
|
||||
public void testReturn4() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/definiteJumps/return4.kt");
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/differentTargets")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class DifferentTargets {
|
||||
@Test
|
||||
public void testAllFilesPresentInDifferentTargets() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/differentTargets"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("break.kt")
|
||||
public void testBreak() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/differentTargets/break.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("return.kt")
|
||||
public void testReturn() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/differentTargets/return.kt");
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/exitPointEquivalence")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class ExitPointEquivalence {
|
||||
@Test
|
||||
public void testAllFilesPresentInExitPointEquivalence() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/exitPointEquivalence"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("breakAndReturn.kt")
|
||||
public void testBreakAndReturn() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/exitPointEquivalence/breakAndReturn.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("breakContinueAndDefault.kt")
|
||||
public void testBreakContinueAndDefault() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/exitPointEquivalence/breakContinueAndDefault.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("continueAndReturn.kt")
|
||||
public void testContinueAndReturn() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/exitPointEquivalence/continueAndReturn.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("defaultAndBreak.kt")
|
||||
public void testDefaultAndBreak() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/exitPointEquivalence/defaultAndBreak.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("defaultAndContinue.kt")
|
||||
public void testDefaultAndContinue() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/exitPointEquivalence/defaultAndContinue.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("defaultAndReturn.kt")
|
||||
public void testDefaultAndReturn() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/exitPointEquivalence/defaultAndReturn.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("defaultAndReturnInWhen.kt")
|
||||
public void testDefaultAndReturnInWhen() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/exitPointEquivalence/defaultAndReturnInWhen.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("defaultAndReturnInWhen2.kt")
|
||||
public void testDefaultAndReturnInWhen2() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/exitPointEquivalence/defaultAndReturnInWhen2.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("multipleBreaks.kt")
|
||||
public void testMultipleBreaks() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/exitPointEquivalence/multipleBreaks.kt");
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/unconditionalJumps")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class UnconditionalJumps {
|
||||
@Test
|
||||
public void testAllFilesPresentInUnconditionalJumps() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/unconditionalJumps"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("break.kt")
|
||||
public void testBreak() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/unconditionalJumps/break.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("break2.kt")
|
||||
public void testBreak2() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/unconditionalJumps/break2.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("break3.kt")
|
||||
public void testBreak3() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/unconditionalJumps/break3.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("break4.kt")
|
||||
public void testBreak4() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/controlFlow/unconditionalJumps/break4.kt");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class DefaultValues {
|
||||
@Test
|
||||
public void testAllFilesPresentInDefaultValues() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("anonymousFunction.kt")
|
||||
public void testAnonymousFunction() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/anonymousFunction.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("anonymousObject.kt")
|
||||
public void testAnonymousObject() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/anonymousObject.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("assignmentTarget.kt")
|
||||
public void testAssignmentTarget() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/assignmentTarget.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("assignmentValue.kt")
|
||||
public void testAssignmentValue() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/assignmentValue.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("calleeExpression.kt")
|
||||
public void testCalleeExpression() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/calleeExpression.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("errorDefaultType.kt")
|
||||
public void testErrorDefaultType() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/errorDefaultType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("expressionBlock.kt")
|
||||
public void testExpressionBlock() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/expressionBlock.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("flexibleDefaultType.kt")
|
||||
public void testFlexibleDefaultType() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/flexibleDefaultType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("functionBodyBlock.kt")
|
||||
public void testFunctionBodyBlock() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/functionBodyBlock.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("functionCall.kt")
|
||||
public void testFunctionCall() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/functionCall.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("infixOperator.kt")
|
||||
public void testInfixOperator() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/infixOperator.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("lambdaExpression.kt")
|
||||
public void testLambdaExpression() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/lambdaExpression.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("nullableDefaultType.kt")
|
||||
public void testNullableDefaultType() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/nullableDefaultType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("packageQualifier.kt")
|
||||
public void testPackageQualifier() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/packageQualifier.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("singleTypedExpression.kt")
|
||||
public void testSingleTypedExpression() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/singleTypedExpression.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("suspendFunctionCall.kt")
|
||||
public void testSuspendFunctionCall() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/suspendFunctionCall.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("typeQualifier.kt")
|
||||
public void testTypeQualifier() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/typeQualifier.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("variableDeclaration.kt")
|
||||
public void testVariableDeclaration() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/variableDeclaration.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("while.kt")
|
||||
public void testWhile() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/defaultValues/while.kt");
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/languageConstructs")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class LanguageConstructs {
|
||||
@Test
|
||||
public void testAllFilesPresentInLanguageConstructs() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/languageConstructs"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("arrayLiteral.kt")
|
||||
public void testArrayLiteral() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/languageConstructs/arrayLiteral.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("labeledReturn.kt")
|
||||
public void testLabeledReturn() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/languageConstructs/labeledReturn.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("nonLocalReturn.kt")
|
||||
public void testNonLocalReturn() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/languageConstructs/nonLocalReturn.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("nonLocalReturn2.kt")
|
||||
public void testNonLocalReturn2() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/languageConstructs/nonLocalReturn2.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("parameter.kt")
|
||||
public void testParameter() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/languageConstructs/parameter.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("parameterDefaultValue.kt")
|
||||
public void testParameterDefaultValue() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/languageConstructs/parameterDefaultValue.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("return.kt")
|
||||
public void testReturn() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/languageConstructs/return.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("trailingSemicolon.kt")
|
||||
public void testTrailingSemicolon() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/languageConstructs/trailingSemicolon.kt");
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class Variables {
|
||||
@Test
|
||||
public void testAllFilesPresentInVariables() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("arrayElementAugmentedReassignment.kt")
|
||||
public void testArrayElementAugmentedReassignment() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables/arrayElementAugmentedReassignment.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("arrayElementIncrementPostfix.kt")
|
||||
public void testArrayElementIncrementPostfix() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables/arrayElementIncrementPostfix.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("arrayElementIncrementPrefix.kt")
|
||||
public void testArrayElementIncrementPrefix() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables/arrayElementIncrementPrefix.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("augmentedReassignment.kt")
|
||||
public void testAugmentedReassignment() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables/augmentedReassignment.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("classPropertyReassignment.kt")
|
||||
public void testClassPropertyReassignment() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables/classPropertyReassignment.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("conditionalReassignment.kt")
|
||||
public void testConditionalReassignment() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables/conditionalReassignment.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("destructuredReassignment.kt")
|
||||
public void testDestructuredReassignment() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables/destructuredReassignment.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("errorTargetReassignment.kt")
|
||||
public void testErrorTargetReassignment() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables/errorTargetReassignment.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("incrementPostfix.kt")
|
||||
public void testIncrementPostfix() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables/incrementPostfix.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("incrementPrefix.kt")
|
||||
public void testIncrementPrefix() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables/incrementPrefix.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("lambdaParameterReassignment.kt")
|
||||
public void testLambdaParameterReassignment() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables/lambdaParameterReassignment.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("localVariable.kt")
|
||||
public void testLocalVariable() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables/localVariable.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("parameterReassignment.kt")
|
||||
public void testParameterReassignment() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables/parameterReassignment.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("simpleReassignment.kt")
|
||||
public void testSimpleReassignment() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables/simpleReassignment.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("topLevelPropertyReassignment.kt")
|
||||
public void testTopLevelPropertyReassignment() {
|
||||
runTest("analysis/analysis-api/testData/components/dataFlowInfoProvider/exitPointSnapshot/variables/topLevelPropertyReassignment.kt");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user