internal static ReachabilityAnalysis Create(StatementSyntax statement, SemanticModel typeResolveContext, CancellationToken cancellationToken)
        {
            var cfgBuilder = new ControlFlowGraphBuilder();
            var cfg        = cfgBuilder.BuildControlFlowGraph(statement, typeResolveContext, cancellationToken);

            return(Create(cfg, null, cancellationToken));
        }
        public static ReachabilityAnalysis Create(StatementSyntax statement, SemanticModel resolver = null, RecursiveDetectorVisitor recursiveDetectorVisitor = null, CancellationToken cancellationToken = default(CancellationToken))
        {
            var cfgBuilder = new ControlFlowGraphBuilder();
            var cfg        = cfgBuilder.BuildControlFlowGraph(statement, resolver, cancellationToken);

            return(Create(cfg, recursiveDetectorVisitor, cancellationToken));
        }