152 references to Label
Microsoft.CodeAnalysis.CSharp.Features (152)
EditAndContinue\SyntaxComparer.cs (152)
45
/// - If <see cref="TiedToAncestor(
Label
)"/> is true for a label then all its possible parent labels must precede the label.
168
private static int TiedToAncestor(
Label
label)
173
case
Label
.ExternAliasDirective:
174
case
Label
.UsingDirective:
175
case
Label
.FieldDeclaration:
176
case
Label
.FieldVariableDeclaration:
177
case
Label
.FieldVariableDeclarator:
178
case
Label
.MethodDeclaration:
179
case
Label
.OperatorDeclaration:
180
case
Label
.ConversionOperatorDeclaration:
181
case
Label
.ConstructorDeclaration:
182
case
Label
.DestructorDeclaration:
183
case
Label
.PropertyDeclaration:
184
case
Label
.ArrowExpressionClause:
185
case
Label
.IndexerDeclaration:
186
case
Label
.EventDeclaration:
187
case
Label
.EnumMemberDeclaration:
188
case
Label
.BaseList:
189
case
Label
.AccessorDeclaration:
190
case
Label
.AccessorList:
191
case
Label
.TypeParameterList:
192
case
Label
.TypeParameter:
193
case
Label
.TypeParameterConstraintClause:
194
case
Label
.ParameterList:
195
case
Label
.BracketedParameterList:
196
case
Label
.Parameter:
197
case
Label
.AttributeList:
198
case
Label
.Attribute:
199
case
Label
.ExtensionBlockDeclaration:
203
case
Label
.LocalDeclarationStatement:
204
case
Label
.LocalVariableDeclaration:
205
case
Label
.LocalVariableDeclarator:
206
case
Label
.GotoCaseStatement:
207
case
Label
.BreakContinueStatement:
208
case
Label
.ElseClause:
209
case
Label
.CatchClause:
210
case
Label
.CatchDeclaration:
211
case
Label
.CatchFilterClause:
212
case
Label
.FinallyClause:
213
case
Label
.ForStatementPart:
214
case
Label
.YieldReturnStatement:
215
case
Label
.YieldBreakStatement:
216
case
Label
.FromClauseLambda:
217
case
Label
.LetClauseLambda:
218
case
Label
.WhereClauseLambda:
219
case
Label
.OrderByClause:
220
case
Label
.OrderingLambda:
221
case
Label
.SelectClauseLambda:
222
case
Label
.JoinClauseLambda:
223
case
Label
.JoinIntoClause:
224
case
Label
.GroupClauseLambda:
225
case
Label
.QueryContinuation:
226
case
Label
.CasePatternSwitchLabel:
227
case
Label
.WhenClause:
228
case
Label
.SwitchExpressionArm:
239
internal
Label
Classify(SyntaxKind kind, SyntaxNode? node, out bool isLeaf)
249
return
Label
.ForStatementPart;
261
return
Label
.CompilationUnit;
264
return
Label
.TypeParameterList;
267
return
Label
.TypeParameterConstraintClause;
271
return
Label
.TypeParameter;
274
return
Label
.BracketedParameterList;
277
return
Label
.ParameterList;
280
return
Label
.Parameter;
284
return
Label
.ConstructorDeclaration;
295
private static
Label
ClassifyStatementSyntax(SyntaxKind kind, SyntaxNode? node, out bool isLeaf)
332
return
Label
.Ignored;
335
return
Label
.LocalDeclarationStatement;
338
return
Label
.SingleVariableDesignation;
341
return
Label
.LabeledStatement;
345
return
Label
.ExpressionStatement;
349
return
Label
.GotoStatement;
354
return
Label
.GotoCaseStatement;
359
return
Label
.BreakContinueStatement;
363
return
Label
.ReturnThrowStatement;
366
return
Label
.ExpressionStatement;
370
return
Label
.YieldBreakStatement;
373
return
Label
.YieldReturnStatement;
376
return
Label
.DoStatement;
379
return
Label
.WhileStatement;
382
return
Label
.ForStatement;
386
return
Label
.ForEachStatement;
396
return node is UsingStatementSyntax { Declaration: not null } ?
Label
.UsingStatementWithDeclarations :
Label
.UsingStatementWithExpression;
399
return
Label
.FixedStatement;
403
return
Label
.CheckedStatement;
406
return
Label
.UnsafeStatement;
409
return
Label
.LockStatement;
412
return
Label
.IfStatement;
415
return
Label
.ElseClause;
418
return
Label
.SwitchStatement;
421
return
Label
.SwitchSection;
428
return
Label
.Ignored;
431
return
Label
.WhenClause;
434
return
Label
.CasePatternSwitchLabel;
437
return
Label
.SwitchExpression;
440
return
Label
.SwitchExpressionArm;
443
return
Label
.TryStatement;
446
return
Label
.CatchClause;
450
return
Label
.CatchDeclaration;
453
return
Label
.CatchFilterClause;
456
return
Label
.FinallyClause;
471
return
Label
.FromClause;
474
return
Label
.FromClauseLambda;
477
return
Label
.QueryBody;
480
return
Label
.QueryContinuation;
483
return
Label
.LetClauseLambda;
486
return
Label
.WhereClauseLambda;
489
return
Label
.OrderByClause;
493
return
Label
.OrderingLambda;
496
return
Label
.SelectClauseLambda;
499
return
Label
.JoinClauseLambda;
502
return
Label
.JoinIntoClause;
505
return
Label
.GroupClauseLambda;
536
return
Label
.Ignored;
539
return
Label
.AwaitExpression;
545
return
Label
.NestedFunction;
548
return
Label
.LocalVariableDeclaration;
551
return
Label
.LocalVariableDeclarator;
554
return
Label
.Block;
559
return
Label
.Ignored;
562
private static
Label
ClassifyTopSyntax(SyntaxKind kind, SyntaxNode? node, out bool isLeaf)
576
return
Label
.GlobalStatement;
580
return
Label
.ExternAliasDirective;
584
return
Label
.UsingDirective;
588
return
Label
.NamespaceDeclaration;
595
return
Label
.TypeDeclaration;
598
return
Label
.BaseList;
603
return
Label
.PrimaryConstructorBase;
606
return
Label
.MethodDeclaration;
609
return
Label
.EnumDeclaration;
612
return
Label
.DelegateDeclaration;
616
return
Label
.FieldDeclaration;
619
return
Label
.ConversionOperatorDeclaration;
622
return
Label
.OperatorDeclaration;
626
return
Label
.DestructorDeclaration;
629
return
Label
.PropertyDeclaration;
632
return
Label
.IndexerDeclaration;
636
return
Label
.ArrowExpressionClause;
641
return
Label
.EventDeclaration;
645
return
Label
.EnumMemberDeclaration;
648
return
Label
.AccessorList;
656
return
Label
.AccessorDeclaration;
661
return
Label
.FieldVariableDeclaration;
666
return
Label
.FieldVariableDeclarator;
672
return
Label
.AttributeList;
682
return
Label
.Attribute;
688
return
Label
.ExtensionBlockDeclaration;
694
return
Label
.Ignored;
699
=> Classify(kind, node: null, out _) !=
Label
.Ignored;
702
=> (int)
Label
.Count;
705
=> TiedToAncestor((
Label
)label);