public override void Initialize(AnalysisContext context)
 {
     context.RegisterSyntaxNodeAction(
         c =>
     {
         BreakStatementSyntax breakNode = (BreakStatementSyntax)c.Node;
         if (!IsInSwitch(breakNode))
         {
             c.ReportDiagnostic(Diagnostic.Create(Rule, breakNode.GetLocation()));
         }
     },
         SyntaxKind.BreakStatement);
 }
Beispiel #2
0
 public override void VisitBreakStatement(BreakStatementSyntax node)
 {
     if (entryNode is AnonymousFunctionExpressionSyntax && embeddedNode is AnonymousFunctionExpressionSyntax)
     {
         return;
     }
     if (_weComeFromMethod && _weInAnonymousMethod)
     {
         return;
     }
     InsertLLOCMap(node.GetLocation());
     base.VisitBreakStatement(node);
 }
Beispiel #3
0
 internal bool HasNonTrailingBreaks(SyntaxNode node, BreakStatementSyntax trailing)
 {
     //if our trailing 'break' is actually return, then /any/ break is non-trailing
     if (node is BreakStatementSyntax && (trailing == null || !node.GetLocation().Equals(trailing.GetLocation())))
     {
         return(true);
     }
     return(node.DescendantNodes().Any(n => HasNonTrailingBreaks(n, trailing)));
 }
 internal bool HasNonTrailingBreaks(SyntaxNode node, BreakStatementSyntax trailing)
 {
     //if our trailing 'break' is actually return, then /any/ break is non-trailing
     if (node is BreakStatementSyntax && (trailing == null || !node.GetLocation().Equals(trailing.GetLocation())))
         return true;
     return node.DescendantNodes().Any(n => HasNonTrailingBreaks(n, trailing));
 }