public static bool HasModifier(this VBSyntax.MethodBaseSyntax d, VBasic.SyntaxKind modifierKind)
 {
     return(d.Modifiers.Any(m => SyntaxTokenExtensions.IsKind(m, modifierKind)));
 }
Ejemplo n.º 2
0
    private async Task <SyntaxList <StatementSyntax> > AddLocalVariablesAsync(VBasic.VisualBasicSyntaxNode node, VBasic.SyntaxKind exitableType = default, bool isBreakableInCs = false)
    {
        _additionalLocals.PushScope(exitableType, isBreakableInCs);
        try {
            var convertedStatements = await _wrappedVisitor.Visit(node);

            var withLocals = await _additionalLocals.CreateLocalsAsync(node, convertedStatements, _generatedNames, _semanticModel);

            var allStatements = _additionalLocals.CreateStatements(node, withLocals, _generatedNames, _semanticModel);

            if (isBreakableInCs && exitableType == VBasic.SyntaxKind.TryKeyword)
            {
                var doOnce = SyntaxFactory.DoStatement(SyntaxFactory.Block(allStatements), CommonConversions.Literal(false));
                allStatements = SyntaxFactory.SingletonList <StatementSyntax>(doOnce);
            }
            return(allStatements);
        } finally {
            _additionalLocals.PopScope();
        }
    }
Ejemplo n.º 3
0
 public record ScopeState(List <IHoistedNode> HoistedNodes, VBasic.SyntaxKind ExitableKind, bool IsBreakableInCs = false)
 {
Ejemplo n.º 4
0
 public static bool IsParentKind(this SyntaxNode node, VBasic.SyntaxKind kind)
 {
     return(node?.Parent.IsKind(kind) == true);
 }