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);
198 references to ForEachStatementSyntax
ILLink.CodeFixProvider (1)
RequiresUnsafeCodeFixProvider.cs (1)
123|| 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); 1158public virtual void VisitForEachStatement(ForEachStatementSyntax node) => this.DefaultVisit(node); 1905public override SyntaxNode? VisitForEachStatement(ForEachStatementSyntax node) 4376public static ForEachStatementSyntax ForEachStatement(SyntaxList<AttributeListSyntax> attributeLists, SyntaxToken awaitKeyword, SyntaxToken forEachKeyword, SyntaxToken openParenToken, TypeSyntax type, SyntaxToken identifier, SyntaxToken inKeyword, ExpressionSyntax expression, SyntaxToken closeParenToken, StatementSyntax statement) 4392return (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(); 4396public static ForEachStatementSyntax ForEachStatement(SyntaxList<AttributeListSyntax> attributeLists, TypeSyntax type, SyntaxToken identifier, ExpressionSyntax expression, StatementSyntax statement) 4400public static ForEachStatementSyntax ForEachStatement(TypeSyntax type, SyntaxToken identifier, ExpressionSyntax expression, StatementSyntax statement) 4404public static ForEachStatementSyntax ForEachStatement(TypeSyntax type, string identifier, ExpressionSyntax expression, StatementSyntax statement)
_generated\2\Syntax.xml.Syntax.Generated.cs (13)
7831public ForEachStatementSyntax Update(SyntaxList<AttributeListSyntax> attributeLists, SyntaxToken awaitKeyword, SyntaxToken forEachKeyword, SyntaxToken openParenToken, TypeSyntax type, SyntaxToken identifier, SyntaxToken inKeyword, ExpressionSyntax expression, SyntaxToken closeParenToken, StatementSyntax statement) 7835var newNode = SyntaxFactory.ForEachStatement(attributeLists, awaitKeyword, forEachKeyword, openParenToken, type, identifier, inKeyword, expression, closeParenToken, statement); 7844public 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); 7846public 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); 7848public 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); 7850public 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); 7851public ForEachStatementSyntax WithType(TypeSyntax type) => Update(this.AttributeLists, this.AwaitKeyword, this.ForEachKeyword, this.OpenParenToken, type, this.Identifier, this.InKeyword, this.Expression, this.CloseParenToken, this.Statement); 7852public ForEachStatementSyntax WithIdentifier(SyntaxToken identifier) => Update(this.AttributeLists, this.AwaitKeyword, this.ForEachKeyword, this.OpenParenToken, this.Type, identifier, this.InKeyword, this.Expression, this.CloseParenToken, this.Statement); 7854public 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); 7856public 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); 7858public 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); 7860public 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); 7863public 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; 1301((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) 4841public abstract ForEachStatementInfo GetForEachStatementInfo(ForEachStatementSyntax node); 5199return 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)
7588ForEachStatementSyntax { Expression: var expression } => expression, 12520ForEachStatementSyntax statement => statement.Identifier.GetLocation(), 12553var 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)
1653if (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 (1)
Microsoft.CodeQuality.Analyzers\QualityGuidelines\CSharpAvoidMultipleEnumerationsAnalyzer.cs (1)
14=> syntax.Parent is ForEachStatementSyntax forEachStatementSyntax && forEachStatementSyntax.Expression.Equals(syntax);
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)
1653if (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)
1653if (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)