1 instantiation of ForEachStatementSyntax
Microsoft.CodeAnalysis.CSharp (1)
_generated\1\Syntax.xml.Internal.Generated.cs (1)
12638internal override SyntaxNode CreateRed(SyntaxNode? parent, int position) => new CSharp.Syntax.ForEachStatementSyntax(this, parent, position);
199 references to ForEachStatementSyntax
ILLink.CodeFixProvider (1)
RequiresUnsafeCodeFixProvider.cs (1)
126|| statement.Parent is ForEachStatementSyntax
Microsoft.CodeAnalysis.CSharp (49)
_generated\0\Syntax.xml.Main.Generated.cs (8)
410public virtual TResult? VisitForEachStatement(ForEachStatementSyntax node) => this.DefaultVisit(node); 1162public virtual void VisitForEachStatement(ForEachStatementSyntax node) => this.DefaultVisit(node); 1913public override SyntaxNode? VisitForEachStatement(ForEachStatementSyntax node) 4388public static ForEachStatementSyntax ForEachStatement(SyntaxList<AttributeListSyntax> attributeLists, SyntaxToken awaitKeyword, SyntaxToken forEachKeyword, SyntaxToken openParenToken, TypeSyntax type, SyntaxToken identifier, SyntaxToken inKeyword, ExpressionSyntax expression, SyntaxToken closeParenToken, StatementSyntax statement) 4404return (ForEachStatementSyntax)Syntax.InternalSyntax.SyntaxFactory.ForEachStatement(attributeLists.Node.ToGreenList<Syntax.InternalSyntax.AttributeListSyntax>(), (Syntax.InternalSyntax.SyntaxToken?)awaitKeyword.Node, (Syntax.InternalSyntax.SyntaxToken)forEachKeyword.Node!, (Syntax.InternalSyntax.SyntaxToken)openParenToken.Node!, (Syntax.InternalSyntax.TypeSyntax)type.Green, (Syntax.InternalSyntax.SyntaxToken)identifier.Node!, (Syntax.InternalSyntax.SyntaxToken)inKeyword.Node!, (Syntax.InternalSyntax.ExpressionSyntax)expression.Green, (Syntax.InternalSyntax.SyntaxToken)closeParenToken.Node!, (Syntax.InternalSyntax.StatementSyntax)statement.Green).CreateRed(); 4408public static ForEachStatementSyntax ForEachStatement(SyntaxList<AttributeListSyntax> attributeLists, TypeSyntax type, SyntaxToken identifier, ExpressionSyntax expression, StatementSyntax statement) 4412public static ForEachStatementSyntax ForEachStatement(TypeSyntax type, SyntaxToken identifier, ExpressionSyntax expression, StatementSyntax statement) 4416public static ForEachStatementSyntax ForEachStatement(TypeSyntax type, string identifier, ExpressionSyntax expression, StatementSyntax statement)
_generated\2\Syntax.xml.Syntax.Generated.cs (13)
7832public ForEachStatementSyntax Update(SyntaxList<AttributeListSyntax> attributeLists, SyntaxToken awaitKeyword, SyntaxToken forEachKeyword, SyntaxToken openParenToken, TypeSyntax type, SyntaxToken identifier, SyntaxToken inKeyword, ExpressionSyntax expression, SyntaxToken closeParenToken, StatementSyntax statement) 7836var newNode = SyntaxFactory.ForEachStatement(attributeLists, awaitKeyword, forEachKeyword, openParenToken, type, identifier, inKeyword, expression, closeParenToken, statement); 7845public new ForEachStatementSyntax WithAttributeLists(SyntaxList<AttributeListSyntax> attributeLists) => Update(attributeLists, this.AwaitKeyword, this.ForEachKeyword, this.OpenParenToken, this.Type, this.Identifier, this.InKeyword, this.Expression, this.CloseParenToken, this.Statement); 7847public new ForEachStatementSyntax WithAwaitKeyword(SyntaxToken awaitKeyword) => Update(this.AttributeLists, awaitKeyword, this.ForEachKeyword, this.OpenParenToken, this.Type, this.Identifier, this.InKeyword, this.Expression, this.CloseParenToken, this.Statement); 7849public new ForEachStatementSyntax WithForEachKeyword(SyntaxToken forEachKeyword) => Update(this.AttributeLists, this.AwaitKeyword, forEachKeyword, this.OpenParenToken, this.Type, this.Identifier, this.InKeyword, this.Expression, this.CloseParenToken, this.Statement); 7851public new ForEachStatementSyntax WithOpenParenToken(SyntaxToken openParenToken) => Update(this.AttributeLists, this.AwaitKeyword, this.ForEachKeyword, openParenToken, this.Type, this.Identifier, this.InKeyword, this.Expression, this.CloseParenToken, this.Statement); 7852public ForEachStatementSyntax WithType(TypeSyntax type) => Update(this.AttributeLists, this.AwaitKeyword, this.ForEachKeyword, this.OpenParenToken, type, this.Identifier, this.InKeyword, this.Expression, this.CloseParenToken, this.Statement); 7853public ForEachStatementSyntax WithIdentifier(SyntaxToken identifier) => Update(this.AttributeLists, this.AwaitKeyword, this.ForEachKeyword, this.OpenParenToken, this.Type, identifier, this.InKeyword, this.Expression, this.CloseParenToken, this.Statement); 7855public new ForEachStatementSyntax WithInKeyword(SyntaxToken inKeyword) => Update(this.AttributeLists, this.AwaitKeyword, this.ForEachKeyword, this.OpenParenToken, this.Type, this.Identifier, inKeyword, this.Expression, this.CloseParenToken, this.Statement); 7857public new ForEachStatementSyntax WithExpression(ExpressionSyntax expression) => Update(this.AttributeLists, this.AwaitKeyword, this.ForEachKeyword, this.OpenParenToken, this.Type, this.Identifier, this.InKeyword, expression, this.CloseParenToken, this.Statement); 7859public new ForEachStatementSyntax WithCloseParenToken(SyntaxToken closeParenToken) => Update(this.AttributeLists, this.AwaitKeyword, this.ForEachKeyword, this.OpenParenToken, this.Type, this.Identifier, this.InKeyword, this.Expression, closeParenToken, this.Statement); 7861public new ForEachStatementSyntax WithStatement(StatementSyntax statement) => Update(this.AttributeLists, this.AwaitKeyword, this.ForEachKeyword, this.OpenParenToken, this.Type, this.Identifier, this.InKeyword, this.Expression, this.CloseParenToken, statement); 7864public new ForEachStatementSyntax AddAttributeLists(params AttributeListSyntax[] items) => WithAttributeLists(this.AttributeLists.AddRange(items));
Binder\Binder.cs (1)
766if (node.AsNode() is ForEachStatementSyntax foreachSyntax)
Binder\ForEachLoopBinder.cs (5)
87var syntax = (ForEachStatementSyntax)_syntax; 282var node = (ForEachStatementSyntax)_syntax; 1306((syntax as ForEachStatementSyntax)?.Type.IsVar == true) ?
Binder\LocalBinderFactory.cs (1)
660public override void VisitForEachStatement(ForEachStatementSyntax node)
Compilation\CSharpSemanticModel.cs (3)
3275public ILocalSymbol GetDeclaredSymbol(ForEachStatementSyntax forEachStatement) 4835public abstract ForEachStatementInfo GetForEachStatementInfo(ForEachStatementSyntax node); 5193return this.GetDeclaredSymbol((ForEachStatementSyntax)node);
Compilation\MemberSemanticModel.cs (1)
969public override ForEachStatementInfo GetForEachStatementInfo(ForEachStatementSyntax node)
Compilation\SpeculativeSemanticModelWithMemberModel.cs (1)
410public override ForEachStatementInfo GetForEachStatementInfo(ForEachStatementSyntax node)
Compilation\SyntaxTreeSemanticModel.cs (1)
2426public override ForEachStatementInfo GetForEachStatementInfo(ForEachStatementSyntax node)
CSharpExtensions.cs (2)
891public static ForEachStatementInfo GetForEachStatementInfo(this SemanticModel? semanticModel, ForEachStatementSyntax forEachStatement) 1605public static ILocalSymbol? GetDeclaredSymbol(this SemanticModel? semanticModel, ForEachStatementSyntax forEachStatement, CancellationToken cancellationToken = default(CancellationToken))
FlowAnalysis\NullableWalker.cs (4)
7634ForEachStatementSyntax { Expression: var expression } => expression, 12575ForEachStatementSyntax statement => statement.Identifier.GetLocation(), 12608var foreachSyntax = (ForEachStatementSyntax)node.Syntax;
Lowering\Instrumentation\DebugInfoInjector.cs (2)
318var forEachSyntax = (ForEachStatementSyntax)original.Syntax;
Symbols\LocalDeclarationKind.cs (1)
48/// User defined local variable declared by <see cref="ForEachStatementSyntax"/> or <see cref="ForEachVariableStatementSyntax"/>.
Symbols\Source\SourceLocalSymbol.cs (1)
541Debug.Assert(node is ForEachStatementSyntax || node is SingleVariableDesignationSyntax);
Syntax\ForEachStatementSyntax.cs (4)
11public ForEachStatementSyntax Update(SyntaxToken forEachKeyword, SyntaxToken openParenToken, TypeSyntax type, SyntaxToken identifier, SyntaxToken inKeyword, ExpressionSyntax expression, SyntaxToken closeParenToken, StatementSyntax statement) 14public ForEachStatementSyntax Update(SyntaxToken awaitKeyword, SyntaxToken forEachKeyword, SyntaxToken openParenToken, TypeSyntax type, SyntaxToken identifier, SyntaxToken inKeyword, ExpressionSyntax expression, SyntaxToken closeParenToken, StatementSyntax statement) 23public static ForEachStatementSyntax ForEachStatement(SyntaxToken forEachKeyword, SyntaxToken openParenToken, TypeSyntax type, SyntaxToken identifier, SyntaxToken inKeyword, ExpressionSyntax expression, SyntaxToken closeParenToken, StatementSyntax statement) 26public static ForEachStatementSyntax ForEachStatement(SyntaxToken awaitKeyword, SyntaxToken forEachKeyword, SyntaxToken openParenToken, TypeSyntax type, SyntaxToken identifier, SyntaxToken inKeyword, ExpressionSyntax expression, SyntaxToken closeParenToken, StatementSyntax statement)
Syntax\SyntaxFacts.cs (1)
132return ((ForEachStatementSyntax)parent).Type == node;
Microsoft.CodeAnalysis.CSharp.CodeStyle (20)
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnusedParametersAndValues\CSharpRemoveUnusedParametersAndValuesDiagnosticAnalyzer.cs (1)
103if (unusedDefinition.Syntax.Parent is ForEachStatementSyntax forEachStatement &&
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionInitializer\CSharpUpdateExpressionSyntaxHelper.cs (2)
24var foreachStatement = (ForEachStatementSyntax)statement;
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionInitializer\CSharpUseCollectionInitializerAnalyzer.cs (1)
182case ForEachStatementSyntax foreachStatement:
src\roslyn\src\Analyzers\CSharp\Analyzers\UseDeconstruction\CSharpUseDeconstructionDiagnosticAnalyzer.cs (3)
53case ForEachStatementSyntax forEachStatement: 75SyntaxNodeAnalysisContext context, ForEachStatementSyntax forEachStatement, NotificationOption2 notificationOption) 121ForEachStatementSyntax forEachStatement,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SemanticModelExtensions.cs (1)
380if (current.Parent is ForEachStatementSyntax foreachStatement &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpHeaderFacts.cs (2)
97var node = TryGetAncestorForLocation<ForEachStatementSyntax>(root, position, out foreachStatement);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpSyntaxFacts.cs (1)
1266=> node?.Parent is ForEachStatementSyntax foreachStatement && foreachStatement.Expression == node;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\SpeculationAnalyzer.cs (2)
657ForEachStatementSyntax foreachStatement => foreachStatement.Type.IsTypeInferred(semanticModel), 896if (forEach is ForEachStatementSyntax foreachStatement)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpTypeStyleHelper.cs (2)
68ForEachStatementSyntax forEachStatement => ShouldAnalyzeForEachStatement(forEachStatement, semanticModel, cancellationToken) 92protected virtual bool ShouldAnalyzeForEachStatement(ForEachStatementSyntax forEachStatement, SemanticModel semanticModel, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpTypeStyleHelper.State.cs (1)
159ForEachStatementSyntax forEach => forEach.Type,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpUseExplicitTypeHelper.cs (2)
47protected override bool ShouldAnalyzeForEachStatement(ForEachStatementSyntax forEachStatement, SemanticModel semanticModel, CancellationToken cancellationToken) 96else if (typeName.Parent is ForEachStatementSyntax foreachStatement &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpUseImplicitTypeHelper.cs (2)
58protected override bool ShouldAnalyzeForEachStatement(ForEachStatementSyntax forEachStatement, SemanticModel semanticModel, CancellationToken cancellationToken) 130else if (typeName.Parent is ForEachStatementSyntax foreachStatement &&
Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes (14)
src\roslyn\src\Analyzers\CSharp\CodeFixes\MakeStatementAsynchronous\CSharpMakeStatementAsynchronousCodeFixProvider.cs (1)
67case ForEachStatementSyntax forEach:
src\roslyn\src\Analyzers\CSharp\CodeFixes\RemoveUnusedParametersAndValues\CSharpRemoveUnusedValuesCodeFixProvider.cs (2)
30ForEachStatementSyntax, SwitchSectionSyntax, SwitchLabelSyntax, CatchClauseSyntax, CatchClauseSyntax> 38protected override SyntaxToken GetForEachStatementIdentifier(ForEachStatementSyntax node)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCollectionExpression\CSharpCollectionExpressionRewriter.cs (2)
536else if (node is ForEachStatementSyntax foreachStatement) 845else if (node is ForEachStatementSyntax foreachStatement)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseDeconstruction\CSharpUseDeconstructionCodeFixProvider.cs (3)
86else if (node is ForEachStatementSyntax forEachStatement) 95(current, _) => CreateForEachVariableStatement(tupleType, (ForEachStatementSyntax)current)); 113private ForEachVariableStatementSyntax CreateForEachVariableStatement(INamedTypeSymbol tupleType, ForEachStatementSyntax forEachStatement)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseImplicitOrExplicitType\UseExplicitTypeCodeFixProvider.cs (2)
76else if (declarationContext is ForEachStatementSyntax forEach) 118private static Task HandleForEachStatementAsync(Document document, SyntaxEditor editor, ForEachStatementSyntax forEach, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTreeExtensions.cs (1)
1660if (outer.Parent is ForEachStatementSyntax @foreach)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (3)
161ForEachStatementSyntax forEachStatement => InferTypeInForEachStatement(forEachStatement, expression), 231ForEachStatementSyntax forEachStatement => InferTypeInForEachStatement(forEachStatement, previousToken: token), 1321private IEnumerable<TypeInferenceInfo> InferTypeInForEachStatement(ForEachStatementSyntax forEachStatementSyntax, ExpressionSyntax expressionOpt = null, SyntaxToken? previousToken = null)
Microsoft.CodeAnalysis.CSharp.Features (76)
CodeRefactorings\UseExplicitOrImplicitType\AbstractUseTypeCodeRefactoringProvider.cs (3)
102var foreachStatement1 = await context.TryGetRelevantNodeAsync<ForEachStatementSyntax>().ConfigureAwait(false); 109if (type?.Parent is ForEachStatementSyntax foreachStatement2 &&
Completion\CompletionProviders\DeclarationName\DeclarationNameInfo.cs (1)
485f is ForEachStatementSyntax forEachStatement ? forEachStatement.Type :
Completion\KeywordRecommenders\InKeywordRecommender.cs (1)
61if (token.Parent is ForEachStatementSyntax statement && token == statement.Identifier)
ConvertForEachToFor\CSharpConvertForEachToForCodeRefactoringProvider.cs (6)
24AbstractConvertForEachToForCodeRefactoringProvider<StatementSyntax, ForEachStatementSyntax> 35protected override bool IsValid(ForEachStatementSyntax foreachStatement) 53protected override (SyntaxNode start, SyntaxNode end) GetForEachBody(ForEachStatementSyntax foreachStatement) 62var foreachStatement = foreachInfo.ForEachStatement; 119var foreachStatement = foreachInfo.ForEachStatement; 152protected override bool IsSupported(ILocalSymbol foreachVariable, IForEachLoopOperation forEachOperation, ForEachStatementSyntax foreachStatement)
ConvertLinq\ConvertForEachToLinqQuery\AbstractConverter.cs (12)
24internal abstract class AbstractConverter(ForEachInfo<ForEachStatementSyntax, StatementSyntax> forEachInfo) : IConverter<ForEachStatementSyntax, StatementSyntax> 26public ForEachInfo<ForEachStatementSyntax, StatementSyntax> ForEachInfo { get; } = forEachInfo; 81return CreateFromClause((ForEachStatementSyntax)node.Node, node.ExtraLeadingComments, node.ExtraTrailingComments); 96ForEachStatementSyntax forEachStatement, 127var foreachStatement = ForEachInfo.ForEachStatement; 142ForEachStatementSyntax forEachStatement, 218/// <param name="hasForEachChild">Flag indicating if any of the processed <see cref="ForEachInfo{ForEachStatementSyntax, StatementSyntax}.ConvertingExtendedNodes"/> is a <see cref="ForEachStatementSyntax"/>.</param> 248var foreachStatement = (ForEachStatementSyntax)node.Node; 270var parentForEachStatement = ifStatement.GetAncestor<ForEachStatementSyntax>();
ConvertLinq\ConvertForEachToLinqQuery\AbstractToMethodConverter.cs (1)
24ForEachInfo<ForEachStatementSyntax, StatementSyntax> forEachInfo,
ConvertLinq\ConvertForEachToLinqQuery\CSharpConvertForEachToLinqQueryProvider.cs (11)
26: AbstractConvertForEachToLinqQueryProvider<ForEachStatementSyntax, StatementSyntax> 28protected override IConverter<ForEachStatementSyntax, StatementSyntax> CreateDefaultConverter( 29ForEachInfo<ForEachStatementSyntax, StatementSyntax> forEachInfo) 32protected override ForEachInfo<ForEachStatementSyntax, StatementSyntax> CreateForEachInfo( 33ForEachStatementSyntax forEachStatement, 96var currentForEachStatement = (ForEachStatementSyntax)current; 158return new ForEachInfo<ForEachStatementSyntax, StatementSyntax>( 206ForEachInfo<ForEachStatementSyntax, StatementSyntax> forEachInfo, 210[NotNullWhen(true)] out IConverter<ForEachStatementSyntax, StatementSyntax>? converter) 334IConverter<ForEachStatementSyntax, StatementSyntax> converter,
ConvertLinq\ConvertForEachToLinqQuery\DefaultConverter.cs (1)
18internal sealed class DefaultConverter(ForEachInfo<ForEachStatementSyntax, StatementSyntax> forEachInfo) : AbstractConverter(forEachInfo)
ConvertLinq\ConvertForEachToLinqQuery\ToCountConverter.cs (1)
18ForEachInfo<ForEachStatementSyntax, StatementSyntax> forEachInfo,
ConvertLinq\ConvertForEachToLinqQuery\ToToListConverter.cs (1)
19ForEachInfo<ForEachStatementSyntax, StatementSyntax> forEachInfo,
ConvertLinq\ConvertForEachToLinqQuery\YieldReturnConverter.cs (1)
16ForEachInfo<ForEachStatementSyntax, StatementSyntax> forEachInfo,
ConvertLinq\CSharpConvertLinqQueryToForEachProvider.cs (4)
232return TryConvertIfInForEach((ForEachStatementSyntax)parent, queryExpressionProcessingInfo, out documentUpdateInfo); 611ForEachStatementSyntax forEachStatement, 681ForEachStatementSyntax forEachStatement, 705ForEachStatementSyntax forEachStatement,
Debugging\CSharpProximityExpressionsService.RelevantExpressionsCollector.cs (1)
62public override void VisitForEachStatement(ForEachStatementSyntax node)
EditAndContinue\BreakpointSpans.cs (2)
677var simpleForEachStatement = (ForEachStatementSyntax)statement;
EditAndContinue\CSharpEditAndContinueAnalyzer.cs (4)
323private static TextSpan GetActiveSpan(ForEachStatementSyntax node, ForEachPart part) 594span = GetActiveSpan((ForEachStatementSyntax)node, (ForEachPart)statementPart); 882case SyntaxKind.ForEachStatement: return AreEquivalentIgnoringLambdaBodies(((ForEachStatementSyntax)oldNode).Type, ((ForEachStatementSyntax)newNode).Type);
EditAndContinue\SyntaxComparer.cs (1)
1314GetLocalNames(((ForEachStatementSyntax)commonForEach).Identifier, ref result);
ExtractMethod\CSharpMethodExtractor.CSharpCodeGenerator.CallSiteContainerRewriter.cs (1)
212public override SyntaxNode VisitForEachStatement(ForEachStatementSyntax node)
InlineHints\CSharpInlineTypeHintsService.cs (1)
62else if (node is ForEachStatementSyntax { Type.IsVar: true } forEachStatement)
Snippets\CSharpForEachLoopSnippetProvider.cs (6)
33internal sealed class CSharpForEachLoopSnippetProvider() : AbstractForEachLoopSnippetProvider<ForEachStatementSyntax> 59protected override ForEachStatementSyntax GenerateStatement( 82ForEachStatementSyntax forEachStatement; 115Document document, ForEachStatementSyntax node, ISyntaxFacts syntaxFacts, CancellationToken cancellationToken) 126protected override int GetTargetCaretPosition(ForEachStatementSyntax forEachStatement, SourceText sourceText) 132protected override Task<Document> AddIndentationToDocumentAsync(Document document, ForEachStatementSyntax forEachStatement, CancellationToken cancellationToken)
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnusedParametersAndValues\CSharpRemoveUnusedParametersAndValuesDiagnosticAnalyzer.cs (1)
103if (unusedDefinition.Syntax.Parent is ForEachStatementSyntax forEachStatement &&
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionInitializer\CSharpUpdateExpressionSyntaxHelper.cs (2)
24var foreachStatement = (ForEachStatementSyntax)statement;
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionInitializer\CSharpUseCollectionInitializerAnalyzer.cs (1)
182case ForEachStatementSyntax foreachStatement:
src\roslyn\src\Analyzers\CSharp\Analyzers\UseDeconstruction\CSharpUseDeconstructionDiagnosticAnalyzer.cs (3)
53case ForEachStatementSyntax forEachStatement: 75SyntaxNodeAnalysisContext context, ForEachStatementSyntax forEachStatement, NotificationOption2 notificationOption) 121ForEachStatementSyntax forEachStatement,
src\roslyn\src\Analyzers\CSharp\CodeFixes\MakeStatementAsynchronous\CSharpMakeStatementAsynchronousCodeFixProvider.cs (1)
67case ForEachStatementSyntax forEach:
src\roslyn\src\Analyzers\CSharp\CodeFixes\RemoveUnusedParametersAndValues\CSharpRemoveUnusedValuesCodeFixProvider.cs (2)
30ForEachStatementSyntax, SwitchSectionSyntax, SwitchLabelSyntax, CatchClauseSyntax, CatchClauseSyntax> 38protected override SyntaxToken GetForEachStatementIdentifier(ForEachStatementSyntax node)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCollectionExpression\CSharpCollectionExpressionRewriter.cs (2)
536else if (node is ForEachStatementSyntax foreachStatement) 845else if (node is ForEachStatementSyntax foreachStatement)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseDeconstruction\CSharpUseDeconstructionCodeFixProvider.cs (3)
86else if (node is ForEachStatementSyntax forEachStatement) 95(current, _) => CreateForEachVariableStatement(tupleType, (ForEachStatementSyntax)current)); 113private ForEachVariableStatementSyntax CreateForEachVariableStatement(INamedTypeSymbol tupleType, ForEachStatementSyntax forEachStatement)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseImplicitOrExplicitType\UseExplicitTypeCodeFixProvider.cs (2)
76else if (declarationContext is ForEachStatementSyntax forEach) 118private static Task HandleForEachStatementAsync(Document document, SyntaxEditor editor, ForEachStatementSyntax forEach, CancellationToken cancellationToken)
Microsoft.CodeAnalysis.CSharp.NetAnalyzers (2)
Microsoft.CodeQuality.Analyzers\QualityGuidelines\CSharpAvoidMultipleEnumerationsAnalyzer.cs (1)
14=> syntax.Parent is ForEachStatementSyntax forEachStatementSyntax && forEachStatementSyntax.Expression.Equals(syntax);
Microsoft.NetCore.Analyzers\Runtime\CSharpAvoidRedundantRegexIsMatchBeforeMatch.Fixer.cs (1)
523if (descendant is ForEachStatementSyntax forEach &&
Microsoft.CodeAnalysis.CSharp.Workspaces (20)
Classification\ClassificationHelpers.cs (1)
261else if (token.Parent is ForEachStatementSyntax forEachStatementSyntax && forEachStatementSyntax.Identifier == token)
Classification\SyntaxClassification\NameSyntaxClassifier.cs (1)
277name.CheckParent<ForEachStatementSyntax>(f => f.Type == name) ||
Rename\LocalConflictVisitor.cs (1)
72public override void VisitForEachStatement(ForEachStatementSyntax node)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SemanticModelExtensions.cs (1)
380if (current.Parent is ForEachStatementSyntax foreachStatement &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpHeaderFacts.cs (2)
97var node = TryGetAncestorForLocation<ForEachStatementSyntax>(root, position, out foreachStatement);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpSyntaxFacts.cs (1)
1266=> node?.Parent is ForEachStatementSyntax foreachStatement && foreachStatement.Expression == node;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\SpeculationAnalyzer.cs (2)
657ForEachStatementSyntax foreachStatement => foreachStatement.Type.IsTypeInferred(semanticModel), 896if (forEach is ForEachStatementSyntax foreachStatement)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpTypeStyleHelper.cs (2)
68ForEachStatementSyntax forEachStatement => ShouldAnalyzeForEachStatement(forEachStatement, semanticModel, cancellationToken) 92protected virtual bool ShouldAnalyzeForEachStatement(ForEachStatementSyntax forEachStatement, SemanticModel semanticModel, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpTypeStyleHelper.State.cs (1)
159ForEachStatementSyntax forEach => forEach.Type,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpUseExplicitTypeHelper.cs (2)
47protected override bool ShouldAnalyzeForEachStatement(ForEachStatementSyntax forEachStatement, SemanticModel semanticModel, CancellationToken cancellationToken) 96else if (typeName.Parent is ForEachStatementSyntax foreachStatement &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpUseImplicitTypeHelper.cs (2)
58protected override bool ShouldAnalyzeForEachStatement(ForEachStatementSyntax forEachStatement, SemanticModel semanticModel, CancellationToken cancellationToken) 130else if (typeName.Parent is ForEachStatementSyntax foreachStatement &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTreeExtensions.cs (1)
1660if (outer.Parent is ForEachStatementSyntax @foreach)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (3)
161ForEachStatementSyntax forEachStatement => InferTypeInForEachStatement(forEachStatement, expression), 231ForEachStatementSyntax forEachStatement => InferTypeInForEachStatement(forEachStatement, previousToken: token), 1321private IEnumerable<TypeInferenceInfo> InferTypeInForEachStatement(ForEachStatementSyntax forEachStatementSyntax, ExpressionSyntax expressionOpt = null, SyntaxToken? previousToken = null)
Roslyn.Diagnostics.CSharp.Analyzers (17)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SemanticModelExtensions.cs (1)
380if (current.Parent is ForEachStatementSyntax foreachStatement &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpHeaderFacts.cs (2)
97var node = TryGetAncestorForLocation<ForEachStatementSyntax>(root, position, out foreachStatement);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpSyntaxFacts.cs (1)
1266=> node?.Parent is ForEachStatementSyntax foreachStatement && foreachStatement.Expression == node;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\SpeculationAnalyzer.cs (2)
657ForEachStatementSyntax foreachStatement => foreachStatement.Type.IsTypeInferred(semanticModel), 896if (forEach is ForEachStatementSyntax foreachStatement)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpTypeStyleHelper.cs (2)
68ForEachStatementSyntax forEachStatement => ShouldAnalyzeForEachStatement(forEachStatement, semanticModel, cancellationToken) 92protected virtual bool ShouldAnalyzeForEachStatement(ForEachStatementSyntax forEachStatement, SemanticModel semanticModel, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpTypeStyleHelper.State.cs (1)
159ForEachStatementSyntax forEach => forEach.Type,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpUseExplicitTypeHelper.cs (2)
47protected override bool ShouldAnalyzeForEachStatement(ForEachStatementSyntax forEachStatement, SemanticModel semanticModel, CancellationToken cancellationToken) 96else if (typeName.Parent is ForEachStatementSyntax foreachStatement &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpUseImplicitTypeHelper.cs (2)
58protected override bool ShouldAnalyzeForEachStatement(ForEachStatementSyntax forEachStatement, SemanticModel semanticModel, CancellationToken cancellationToken) 130else if (typeName.Parent is ForEachStatementSyntax foreachStatement &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTreeExtensions.cs (1)
1660if (outer.Parent is ForEachStatementSyntax @foreach)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (3)
161ForEachStatementSyntax forEachStatement => InferTypeInForEachStatement(forEachStatement, expression), 231ForEachStatementSyntax forEachStatement => InferTypeInForEachStatement(forEachStatement, previousToken: token), 1321private IEnumerable<TypeInferenceInfo> InferTypeInForEachStatement(ForEachStatementSyntax forEachStatementSyntax, ExpressionSyntax expressionOpt = null, SyntaxToken? previousToken = null)