35 instantiations of BoundBlock
Microsoft.CodeAnalysis.CSharp (35)
Binder\Binder.cs (2)
880return new BoundBlock(statement.Syntax, locals, ImmutableArray.Create(statement)) 896return new BoundBlock(statement.Syntax, locals, localFunctions, hasUnsafeModifier: false, instrumentation: null,
Binder\Binder_Statements.cs (2)
1899return new BoundBlock( 3532return new BoundBlock(node, locals, ImmutableArray.Create(statement)) { WasCompilerGenerated = node.Kind() != SyntaxKind.ArrowExpressionClause };
Binder\ForLoopBinder.cs (1)
120increment = new BoundBlock(increment.Syntax, locals, ImmutableArray.Create(increment))
BoundTree\Constructors.cs (2)
662return new BoundBlock(syntax, ImmutableArray<LocalSymbol>.Empty, ImmutableArray.Create(statement)) 668return new BoundBlock(syntax, ImmutableArray<LocalSymbol>.Empty, statements) { WasCompilerGenerated = true };
Compiler\MethodBodySynthesizer.cs (2)
563return new BoundBlock( 571new BoundBlock(
Compiler\MethodCompiler.cs (4)
961body = new BoundBlock(methodSymbol.GetNonNullSyntaxNode(), ImmutableArray<LocalSymbol>.Empty, ImmutableArray<BoundStatement>.Empty) { WasCompilerGenerated = true }; 1004new BoundBlock(analyzedInitializers.Syntax, ImmutableArray<LocalSymbol>.Empty, analyzedInitializers.Statements), // The block is necessary to establish the right local scope for the analysis 1860body = new BoundBlock(constructor.Syntax, constructor.Locals, ImmutableArray.Create<BoundStatement>(constructor.Initializer)); 1864body = new BoundBlock(constructor.Syntax, constructor.Locals, ImmutableArray.Create<BoundStatement>(constructor.Initializer, body));
FlowAnalysis\FlowAnalysisPass.cs (1)
86block = new BoundBlock(block.Syntax, ImmutableArray<LocalSymbol>.Empty, newStatements) { WasCompilerGenerated = true };
Generated\BoundNodes.xml.Generated.cs (1)
3331var result = new BoundBlock(this.Syntax, locals, localFunctions, hasUnsafeModifier, instrumentation, statements, this.HasErrors);
Lowering\InitializerRewriter.cs (1)
112boundStatement = new BoundBlock(syntax, fieldInit.Locals, ImmutableArray.Create(boundStatement)) { WasCompilerGenerated = fieldInit.WasCompilerGenerated };
Lowering\LocalRewriter\LocalRewriter_Block.cs (1)
130? new BoundBlock(node.Syntax, ImmutableArray<LocalSymbol>.Empty, ImmutableArray<BoundStatement>.Empty)
Lowering\LocalRewriter\LocalRewriter_DoStatement.cs (1)
67new BoundBlock(syntax,
Lowering\LocalRewriter\LocalRewriter_ForEachStatement.cs (6)
260tryBlock: new BoundBlock(forEachSyntax, locals: ImmutableArray<LocalSymbol>.Empty, statements: ImmutableArray.Create(whileLoop)), 267result = new BoundBlock( 279result = new BoundBlock( 410return new BoundBlock(forEachSyntax, 465return new BoundBlock(forEachSyntax, 852return new BoundBlock(
Lowering\LocalRewriter\LocalRewriter_UsingStatement.cs (2)
80return new BoundBlock( 256return new BoundBlock(
Lowering\LocalRewriter\LocalRewriter_WhileStatement.cs (1)
148new BoundBlock(syntax,
Lowering\SpillSequenceSpiller.cs (1)
296var result = new BoundBlock(statement.Syntax, builder.GetLocals(), builder.GetStatements()) { WasCompilerGenerated = true };
Lowering\SyntheticBoundNodeFactory.cs (2)
465return new BoundBlock(Syntax, locals, statements) { WasCompilerGenerated = true }; 475return new BoundBlock(Syntax, locals, localFunctions, hasUnsafeModifier: false, instrumentation: null, statements) { WasCompilerGenerated = true };
Symbols\Synthesized\SynthesizedEntryPointSymbol.cs (5)
400return new BoundBlock( 423return new BoundBlock( 494return new BoundBlock( 501return new BoundBlock(syntax, 618return new BoundBlock(syntax,
362 references to BoundBlock
Microsoft.CodeAnalysis.CSharp (346)
Binder\Binder.QueryUnboundLambdaState.cs (4)
17private delegate BoundBlock LambdaBodyFactory(LambdaSymbol lambdaSymbol, Binder lambdaBodyBinder, BindingDiagnosticBag diagnostics); 73protected override BoundExpression GetLambdaExpressionBody(BoundBlock body) 78protected override BoundBlock CreateBlockFromLambdaExpressionBody(Binder lambdaBodyBinder, BoundExpression expression, BindingDiagnosticBag diagnostics) 83protected override BoundBlock BindLambdaBodyCore(LambdaSymbol lambdaSymbol, Binder lambdaBodyBinder, BindingDiagnosticBag diagnostics)
Binder\Binder_Query.cs (1)
768private BoundBlock CreateLambdaBlockForQueryClause(ExpressionSyntax expression, BoundExpression result, BindingDiagnosticBag diagnostics)
Binder\Binder_Statements.cs (19)
150BoundBlock block; 153(block = (BoundBlock)result).Statements.Length == 1 && 564BoundBlock blockBody = null; 565BoundBlock expressionBody = null; 608BoundBlock runAnalysis(BoundBlock block, BindingDiagnosticBag blockDiagnostics) 1861internal virtual BoundBlock BindEmbeddedBlock(BlockSyntax node, BindingDiagnosticBag diagnostics) 1866private BoundBlock BindBlock(BlockSyntax node, BindingDiagnosticBag diagnostics) 1879private BoundBlock BindBlockParts(BlockSyntax node, BindingDiagnosticBag diagnostics) 1895private BoundBlock FinishBindBlockParts(CSharpSyntaxNode node, ImmutableArray<BoundStatement> boundStatements) 3204var tryBlock = BindEmbeddedBlock(node.Block, diagnostics); 3345var block = BindEmbeddedBlock(node.Block, diagnostics); 3446internal BoundBlock CreateBlockFromExpression(CSharpSyntaxNode node, ImmutableArray<LocalSymbol> locals, RefKind refKind, BoundExpression expression, ExpressionSyntax expressionSyntax, BindingDiagnosticBag diagnostics) 3543internal virtual BoundBlock BindExpressionBodyAsBlock( 3571static BoundBlock bindExpressionBodyAsBlockInternal(ArrowExpressionClauseSyntax expressionBody, Binder bodyBinder, BindingDiagnosticBag diagnostics) 3584public BoundBlock BindLambdaExpressionAsBlock(ExpressionSyntax body, BindingDiagnosticBag diagnostics) 3596public BoundBlock CreateBlockFromExpression(ExpressionSyntax body, BoundExpression expression, BindingDiagnosticBag diagnostics) 3749constructor.Body == null ? null : (BoundBlock)bodyBinder.BindStatement(constructor.Body, diagnostics), 4028blockBody == null ? null : (BoundBlock)BindStatement(blockBody, diagnostics),
Binder\RefSafetyAnalysis.cs (1)
249public override BoundNode? VisitBlock(BoundBlock node)
BoundTree\BoundLocalFunctionStatement.cs (1)
13public BoundBlock? Body { get => BlockBody ?? ExpressionBody; }
BoundTree\BoundNode.cs (1)
554public override BoundNode? VisitBlock(BoundBlock node)
BoundTree\BoundNode_Source.cs (2)
66var finallyBlock = tryStatement.FinallyBlockOpt; 84case BoundBlock block:
BoundTree\BoundTreeVisitors.cs (1)
72return VisitBlock(node as BoundBlock, arg);
BoundTree\Constructors.cs (5)
660public static BoundBlock SynthesizedNoLocals(SyntaxNode syntax, BoundStatement statement) 666public static BoundBlock SynthesizedNoLocals(SyntaxNode syntax, ImmutableArray<BoundStatement> statements) 671public static BoundBlock SynthesizedNoLocals(SyntaxNode syntax, params BoundStatement[] statements) 687public BoundTryStatement(SyntaxNode syntax, BoundBlock tryBlock, ImmutableArray<BoundCatchBlock> catchBlocks, BoundBlock? finallyBlockOpt, LabelSymbol? finallyLabelOpt = null)
BoundTree\UnboundLambda.cs (17)
25BoundBlock? Body { get; } 35BoundBlock? IBoundLambdaOrFunction.Body { get => this.Body; } 82public BoundLambda(SyntaxNode syntax, UnboundLambda unboundLambda, BoundBlock body, ReadOnlyBindingDiagnostic<AssemblySymbol> diagnostics, Binder binder, TypeSymbol? delegateType, InferredLambdaReturnType inferredReturnType) 347public static void GetReturnTypes(ArrayBuilder<(BoundReturnStatement, TypeWithAnnotations)> builder, BoundBlock block) 567protected BoundBlock BindLambdaBody(LambdaSymbol lambdaSymbol, Binder lambdaBodyBinder, BindingDiagnosticBag diagnostics) 578protected abstract BoundBlock BindLambdaBodyCore(LambdaSymbol lambdaSymbol, Binder lambdaBodyBinder, BindingDiagnosticBag diagnostics); 584protected abstract BoundExpression? GetLambdaExpressionBody(BoundBlock body); 589protected abstract BoundBlock CreateBlockFromLambdaExpressionBody(Binder lambdaBodyBinder, BoundExpression expression, BindingDiagnosticBag diagnostics); 718var block = BindLambdaBody(lambdaSymbol, lambdaBodyBinder, BindingDiagnosticBag.Discarded); 783BoundBlock block; 936(var lambdaSymbol, var block, var lambdaBodyBinder, var diagnostics) = BindWithParameterAndReturnType(parameterTypes, parameterRefKinds, returnType, refKind); 988private (LambdaSymbol lambdaSymbol, BoundBlock block, ExecutableCodeBinder lambdaBodyBinder, BindingDiagnosticBag diagnostics) BindWithParameterAndReturnType( 1001var block = BindLambdaBody(lambdaSymbol, lambdaBodyBinder, diagnostics); 1219(var lambdaSymbol, var block, var lambdaBodyBinder, var diagnostics) = BindWithParameterAndReturnType(parameterTypes, parameterRefKinds, returnType, refKind); 1564protected override BoundExpression? GetLambdaExpressionBody(BoundBlock body) 1579protected override BoundBlock CreateBlockFromLambdaExpressionBody(Binder lambdaBodyBinder, BoundExpression expression, BindingDiagnosticBag diagnostics) 1584protected override BoundBlock BindLambdaBodyCore(LambdaSymbol lambdaSymbol, Binder lambdaBodyBinder, BindingDiagnosticBag diagnostics)
CodeGen\EmitStatement.cs (8)
32EmitBlock((BoundBlock)statement); 648private bool IsLastBlockInMethod(BoundBlock block) 666private void EmitBlock(BoundBlock block) 678private void EmitInstrumentedBlock(BoundBlockInstrumentation instrumentation, BoundBlock block) 739private void EmitUninstrumentedBlock(BoundBlock block) 988var finallyClone = FinallyCloner.MakeFinallyClone(statement); 1941public static BoundBlock MakeFinallyClone(BoundTryStatement node) 1944return (BoundBlock)cloner.Visit(node.FinallyBlockOpt);
CodeGen\Optimizer.cs (9)
613public override BoundNode VisitBlock(BoundBlock node) 1671var tryBlock = (BoundBlock)this.Visit(node.TryBlock); 1676var finallyBlock = (BoundBlock)this.Visit(node.FinallyBlockOpt); 1741var boundBlock = (BoundBlock)this.Visit(node.Body); 2292var body = node.Body; 2330body = (BoundBlock)this.Visit(body);
Compilation\MemberSemanticModel.cs (6)
2457internal override BoundBlock BindEmbeddedBlock(BlockSyntax node, BindingDiagnosticBag diagnostics) 2459BoundBlock block = (BoundBlock)TryGetBoundNodeFromMap(node); 2512internal override BoundBlock BindExpressionBodyAsBlock(ArrowExpressionClauseSyntax node, BindingDiagnosticBag diagnostics) 2514BoundBlock block = (BoundBlock)TryGetBoundNodeFromMap(node);
Compiler\MethodBodySynthesizer.cs (11)
174internal static BoundBlock ConstructAutoPropertyAccessorBody(SourceMemberMethodSymbol accessor) 209return BoundBlock.SynthesizedNoLocals(syntax, statement); 215internal static BoundBlock ConstructFieldLikeEventAccessorBody(SourceEventSymbol eventSymbol, bool isAddMethod, CSharpCompilation compilation, BindingDiagnosticBag diagnostics) 232internal static BoundBlock ConstructFieldLikeEventAccessorBody_WinRT(SourceEventSymbol eventSymbol, bool isAddMethod, CSharpCompilation compilation, BindingDiagnosticBag diagnostics) 312return BoundBlock.SynthesizedNoLocals(syntax, returnStatement); 322return BoundBlock.SynthesizedNoLocals(syntax, callStatement, returnStatement); 344internal static BoundBlock ConstructFieldLikeEventAccessorBody_Regular(SourceEventSymbol eventSymbol, bool isAddMethod, CSharpCompilation compilation, BindingDiagnosticBag diagnostics) 371return BoundBlock.SynthesizedNoLocals(syntax, @return); 415return BoundBlock.SynthesizedNoLocals(syntax, 528internal static BoundBlock ConstructDestructorBody(MethodSymbol method, BoundBlock block)
Compiler\MethodBodySynthesizer.Lowered.cs (4)
82var body = F.Block( 174var body = F.Block( 332BoundBlock body = MethodBodySynthesizer.ConstructSingleInvocationMethodBody(F, methodBeingWrapped, useBaseReference: true); 455internal static BoundBlock ConstructSingleInvocationMethodBody(SyntheticBoundNodeFactory F, MethodSymbol methodToInvoke, bool useBaseReference)
Compiler\MethodCompiler.cs (12)
948BoundBlock body; 971body = BoundBlock.SynthesizedNoLocals(initializerStatements.Syntax, initializerStatements.Statements); 1025body = (BoundBlock)body.WithHasErrors(); 1096BoundBlock flowAnalyzedBody = null; 1717internal static BoundBlock? BindSynthesizedMethodBody(MethodSymbol method, TypeCompilationState compilationState, BindingDiagnosticBag diagnostics) 1733private static BoundBlock? BindMethodBody( 1750BoundBlock? body; 1887body = (BoundBlock)methodBody; 1911body = BoundBlock.SynthesizedNoLocals(node, stmts.ToImmutableAndFree()); 1963return BoundBlock.SynthesizedNoLocals(method.GetNonNullSyntaxNode(), statements); 2328private static BoundBlock GetSynthesizedEmptyBody(Symbol symbol) 2330return BoundBlock.SynthesizedNoLocals(symbol.GetNonNullSyntaxNode());
FlowAnalysis\AbstractFlowPass.cs (3)
1305public override BoundNode VisitBlock(BoundBlock node) 3801private void VisitMethodBodies(BoundBlock blockBody, BoundBlock expressionBody)
FlowAnalysis\ControlFlowPass.cs (6)
23private readonly ArrayBuilder<(LocalSymbol symbol, BoundBlock block)> _usingDeclarations = ArrayBuilder<(LocalSymbol, BoundBlock)>.GetInstance(); 24private BoundBlock _currentBlock = null; 154public static bool Analyze(CSharpCompilation compilation, Symbol member, BoundBlock block, DiagnosticBag diagnostics) 398public override BoundNode VisitBlock(BoundBlock node) 400var parentBlock = _currentBlock;
FlowAnalysis\DefiniteAssignment.cs (2)
2123public override BoundNode? VisitBlock(BoundBlock node) 2160private void VisitStatementsWithLocalFunctions(BoundBlock block)
FlowAnalysis\FlowAnalysisPass.cs (10)
31public static BoundBlock Rewrite( 33BoundBlock block, 110private static BoundBlock PrependImplicitInitializations(BoundBlock body, MethodSymbol method, ImmutableArray<FieldSymbol> implicitlyInitializedFields, TypeCompilationState compilationState, BindingDiagnosticBag diagnostics) 165private static BoundBlock AppendImplicitReturn(BoundBlock body, MethodSymbol method, bool originalBodyNested) 174builder.Add(AppendImplicitReturn((BoundBlock)statements[n - 1], method)); 187internal static BoundBlock AppendImplicitReturn(BoundBlock body, MethodSymbol method) 210BoundBlock block,
FlowAnalysis\NullableWalker.cs (2)
3105public override BoundNode? VisitBlock(BoundBlock node) 3113private void VisitStatementsWithLocalFunctions(BoundBlock block)
Generated\BoundNodes.xml.Generated.cs (76)
1041public BoundExtractedFinallyBlock(SyntaxNode syntax, BoundBlock finallyBlock, bool hasErrors = false) 1050public BoundBlock FinallyBlock { get; } 1055public BoundExtractedFinallyBlock Update(BoundBlock finallyBlock) 3327public BoundBlock Update(ImmutableArray<LocalSymbol> locals, ImmutableArray<LocalFunctionSymbol> localFunctions, bool hasUnsafeModifier, BoundBlockInstrumentation? instrumentation, ImmutableArray<BoundStatement> statements) 3331var result = new BoundBlock(this.Syntax, locals, localFunctions, hasUnsafeModifier, instrumentation, statements, this.HasErrors); 3507public BoundLocalFunctionStatement(SyntaxNode syntax, LocalFunctionSymbol symbol, BoundBlock? blockBody, BoundBlock? expressionBody, bool hasErrors = false) 3519public BoundBlock? BlockBody { get; } 3520public BoundBlock? ExpressionBody { get; } 3525public BoundLocalFunctionStatement Update(LocalFunctionSymbol symbol, BoundBlock? blockBody, BoundBlock? expressionBody) 4223public BoundTryStatement(SyntaxNode syntax, BoundBlock tryBlock, ImmutableArray<BoundCatchBlock> catchBlocks, BoundBlock? finallyBlockOpt, LabelSymbol? finallyLabelOpt, bool preferFaultHandler, bool hasErrors = false) 4237public BoundBlock TryBlock { get; } 4239public BoundBlock? FinallyBlockOpt { get; } 4246public BoundTryStatement Update(BoundBlock tryBlock, ImmutableArray<BoundCatchBlock> catchBlocks, BoundBlock? finallyBlockOpt, LabelSymbol? finallyLabelOpt, bool preferFaultHandler) 4260public BoundCatchBlock(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundExpression? exceptionSourceOpt, TypeSymbol? exceptionTypeOpt, BoundStatementList? exceptionFilterPrologueOpt, BoundExpression? exceptionFilterOpt, BoundBlock body, bool isSynthesizedAsyncCatchAll, bool hasErrors = false) 4281public BoundBlock Body { get; } 4287public BoundCatchBlock Update(ImmutableArray<LocalSymbol> locals, BoundExpression? exceptionSourceOpt, TypeSymbol? exceptionTypeOpt, BoundStatementList? exceptionFilterPrologueOpt, BoundExpression? exceptionFilterOpt, BoundBlock body, bool isSynthesizedAsyncCatchAll) 7593public BoundLambda(SyntaxNode syntax, UnboundLambda unboundLambda, LambdaSymbol symbol, BoundBlock body, ReadOnlyBindingDiagnostic<AssemblySymbol> diagnostics, Binder binder, TypeSymbol? type, bool hasErrors = false) 7612public BoundBlock Body { get; } 7619public BoundLambda Update(UnboundLambda unboundLambda, LambdaSymbol symbol, BoundBlock body, ReadOnlyBindingDiagnostic<AssemblySymbol> diagnostics, Binder binder, TypeSymbol? type) 8731protected BoundMethodBodyBase(BoundKind kind, SyntaxNode syntax, BoundBlock? blockBody, BoundBlock? expressionBody, bool hasErrors = false) 8738public BoundBlock? BlockBody { get; } 8739public BoundBlock? ExpressionBody { get; } 8744public BoundNonConstructorMethodBody(SyntaxNode syntax, BoundBlock? blockBody, BoundBlock? expressionBody, bool hasErrors = false) 8753public BoundNonConstructorMethodBody Update(BoundBlock? blockBody, BoundBlock? expressionBody) 8767public BoundConstructorMethodBody(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundStatement? initializer, BoundBlock? blockBody, BoundBlock? expressionBody, bool hasErrors = false) 8783public BoundConstructorMethodBody Update(ImmutableArray<LocalSymbol> locals, BoundStatement? initializer, BoundBlock? blockBody, BoundBlock? expressionBody) 9036return VisitBlock((BoundBlock)node, arg); 9424public virtual R VisitBlock(BoundBlock node, A arg) => this.DefaultVisit(node, arg); 9660public virtual BoundNode? VisitBlock(BoundBlock node) => this.DefaultVisit(node); 10110public override BoundNode? VisitBlock(BoundBlock node) 10946BoundBlock finallyBlock = (BoundBlock)this.Visit(node.FinallyBlock); 11320public override BoundNode? VisitBlock(BoundBlock node) 11356BoundBlock? blockBody = (BoundBlock?)this.Visit(node.BlockBody); 11357BoundBlock? expressionBody = (BoundBlock?)this.Visit(node.ExpressionBody); 11464BoundBlock tryBlock = (BoundBlock)this.Visit(node.TryBlock); 11466BoundBlock? finallyBlockOpt = (BoundBlock?)this.Visit(node.FinallyBlockOpt); 11474BoundBlock body = (BoundBlock)this.Visit(node.Body); 12023BoundBlock body = (BoundBlock)this.Visit(node.Body); 12226BoundBlock? blockBody = (BoundBlock?)this.Visit(node.BlockBody); 12227BoundBlock? expressionBody = (BoundBlock?)this.Visit(node.ExpressionBody); 12233BoundBlock? blockBody = (BoundBlock?)this.Visit(node.BlockBody); 12234BoundBlock? expressionBody = (BoundBlock?)this.Visit(node.ExpressionBody); 13388public override BoundNode? VisitBlock(BoundBlock node) 13423BoundBlock? blockBody = (BoundBlock?)this.Visit(node.BlockBody); 13424BoundBlock? expressionBody = (BoundBlock?)this.Visit(node.ExpressionBody); 13505BoundBlock body = (BoundBlock)this.Visit(node.Body); 14581BoundBlock body = (BoundBlock)this.Visit(node.Body); 14953BoundBlock? blockBody = (BoundBlock?)this.Visit(node.BlockBody); 14954BoundBlock? expressionBody = (BoundBlock?)this.Visit(node.ExpressionBody); 15743public override TreeDumperNode VisitBlock(BoundBlock node, object? arg) => new TreeDumperNode("block", null, new TreeDumperNode[]
Lowering\AsyncRewriter\AsyncExceptionHandlerRewriter.cs (12)
153BoundBlock rewrittenFinally; 159rewrittenFinally = (BoundBlock)this.Visit(node.FinallyBlockOpt); 176return _F.Try((BoundBlock)finalizedRegion, ImmutableArray<BoundCatchBlock>.Empty, rewrittenFinally); 183rewrittenFinally = (BoundBlock)this.VisitBlock(node.FinallyBlockOpt); 202BoundBlock syntheticFinallyBlock = _F.Block( 238var completeTry = _F.Block( 246private BoundBlock PendBranches( 463var rewrittenTry = (BoundBlock)this.VisitBlock(node.TryBlock); 655var handler = _F.Block( 1029public readonly List<BoundBlock> handlers; 1047this.handlers = new List<BoundBlock>();
Lowering\AsyncRewriter\AsyncIteratorMethodToStateMachineRewriter.cs (3)
406protected override BoundBlock VisitFinally(BoundBlock finallyBlock) 411var result = base.VisitFinally(finallyBlock);
Lowering\AsyncRewriter\AsyncMethodToStateMachineRewriter.cs (4)
249protected virtual BoundStatement GenerateTopLevelTry(BoundBlock tryBlock, ImmutableArray<BoundCatchBlock> catchBlocks) 343private BoundBlock VisitAwaitExpression(BoundAwaitExpression node, BoundExpression resultPlace) 374var awaitIfIncomplete = F.Block( 461private BoundBlock GenerateAwaitForIncompleteTask(LocalSymbol awaiterTemp, BoundAwaitExpressionDebugInfo debugInfo)
Lowering\ClosureConversion\ClosureConversion.Analysis.Tree.cs (2)
416public override BoundNode VisitBlock(BoundBlock node) 569private BoundNode? VisitNestedFunction(MethodSymbol functionSymbol, BoundBlock? body)
Lowering\ClosureConversion\ClosureConversion.cs (9)
558var body = F.Block( 1150public override BoundNode VisitBlock(BoundBlock node) 1164private BoundBlock RewriteBlock(BoundBlock node, ArrayBuilder<BoundExpression> prologue, ArrayBuilder<LocalSymbol> newLocals) 1276var rewrittenBlock = (BoundBlock)this.Visit(node.Body); 1584if (node.Body is BoundBlock block) 1626var newBody = (BoundBlock)Visit(node.Body);
Lowering\ClosureConversion\ExpressionLambdaRewriter.cs (1)
131private BoundExpression TranslateLambdaBody(BoundBlock block)
Lowering\Instrumentation\CodeCoverageInstrumenter.cs (1)
237public override void InstrumentBlock(BoundBlock original, LocalRewriter rewriter, ref TemporaryArray<LocalSymbol> additionalLocals, out BoundStatement? prologue, out BoundStatement? epilogue, out BoundBlockInstrumentation? instrumentation)
Lowering\Instrumentation\CompoundInstrumenter.cs (3)
84public override void PreInstrumentBlock(BoundBlock original, LocalRewriter rewriter) 89public override void InstrumentBlock(BoundBlock original, LocalRewriter rewriter, ref TemporaryArray<LocalSymbol> additionalLocals, out BoundStatement? prologue, out BoundStatement? epilogue, out BoundBlockInstrumentation? instrumentation) 223ref BoundBlock rewrittenBody,
Lowering\Instrumentation\DebugInfoInjector.cs (4)
125var block = (BoundBlock)rewritten; 186public override void InstrumentBlock(BoundBlock original, LocalRewriter rewriter, ref TemporaryArray<LocalSymbol> additionalLocals, out BoundStatement? prologue, out BoundStatement? epilogue, out BoundBlockInstrumentation? instrumentation) 459ref BoundBlock rewrittenBody,
Lowering\Instrumentation\Instrumenter.cs (4)
62public virtual void PreInstrumentBlock(BoundBlock original, LocalRewriter rewriter) 71/// <param name="additionalLocals">Local symbols to be added to <see cref="BoundBlock.Locals"/> of the resulting block.</param> 74public virtual void InstrumentBlock(BoundBlock original, LocalRewriter rewriter, ref TemporaryArray<LocalSymbol> additionalLocals, out BoundStatement? prologue, out BoundStatement? epilogue, out BoundBlockInstrumentation? instrumentation) 298ref BoundBlock rewrittenBody,
Lowering\Instrumentation\LocalStateTracingInstrumenter.cs (5)
30/// This node is attached to a <see cref="BoundBlock"/> that represents the lowered body of an instrumented method, lambda or local function. 33/// <see cref="BoundBlock"/> with block instrumentation is eventually lowered to: 274public override void PreInstrumentBlock(BoundBlock original, LocalRewriter rewriter) 284public override void InstrumentBlock(BoundBlock original, LocalRewriter rewriter, ref TemporaryArray<LocalSymbol> additionalLocals, out BoundStatement? prologue, out BoundStatement? epilogue, out BoundBlockInstrumentation? instrumentation) 498ref BoundBlock rewrittenBody,
Lowering\Instrumentation\ModuleCancellationInstrumenter.cs (1)
67public override void InstrumentBlock(BoundBlock original, LocalRewriter rewriter, ref TemporaryArray<LocalSymbol> additionalLocals, out BoundStatement? prologue, out BoundStatement? epilogue, out BoundBlockInstrumentation? instrumentation)
Lowering\Instrumentation\StackOverflowProbingInstrumenter.cs (1)
57public override void InstrumentBlock(BoundBlock original, LocalRewriter rewriter, ref TemporaryArray<LocalSymbol> additionalLocals, out BoundStatement? prologue, out BoundStatement? epilogue, out BoundBlockInstrumentation? instrumentation)
Lowering\IteratorRewriter\IteratorMethodToStateMachineRewriter.cs (8)
147var faultBlock = F.Block(F.ExpressionStatement(F.Call(F.This(), disposeMethod))); 148newBody = F.Fault((BoundBlock)newBody, faultBlock); 164var disposeBody = F.Block( 176var disposeBody = F.Block( 188private BoundBlock HandleReturn(BoundStatement newBody) 279var tryBlock = body != null ? F.Block(body) : F.Block(); 373(BoundBlock)Visit(node.TryBlock), 375(BoundBlock)Visit(node.FinallyBlockOpt),
Lowering\LocalRewriter\LocalRewriter.cs (8)
45private BoundBlock? _currentLambdaBody; 180internal BoundBlock? CurrentLambdaBody 356var oldLambdaBody = _currentLambdaBody; 422var oldLambdaBody = _currentLambdaBody; 711var block = (BoundBlock)initializer; 882var block = (BoundBlock)initializer;
Lowering\LocalRewriter\LocalRewriter_Block.cs (1)
14public override BoundNode VisitBlock(BoundBlock node)
Lowering\LocalRewriter\LocalRewriter_ForEachStatement.cs (4)
216var rewrittenBodyBlock = CreateBlockDeclaringIterationVariables(iterationVariables, iterationVarDecl, rewrittenBody, forEachSyntax); 224var disposalFinallyBlock = GetDisposalFinallyBlock(forEachSyntax, enumeratorInfo, enumeratorType, boundEnumeratorVar, out var hasAsyncDisposal); 308private BoundBlock? GetDisposalFinallyBlock( 837private static BoundBlock CreateBlockDeclaringIterationVariables(
Lowering\LocalRewriter\LocalRewriter_LockStatement.cs (6)
53var tryBlock = rewrittenBody is BoundBlock block ? block : BoundBlock.SynthesizedNoLocals(lockSyntax, rewrittenBody); 176BoundBlock.SynthesizedNoLocals(lockSyntax, ImmutableArray.Create<BoundStatement>( 180BoundBlock.SynthesizedNoLocals(lockSyntax, 227BoundBlock.SynthesizedNoLocals(lockSyntax, rewrittenBody), 229BoundBlock.SynthesizedNoLocals(lockSyntax, exitCall))));
Lowering\LocalRewriter\LocalRewriter_TryStatement.cs (8)
16BoundBlock? tryBlock = (BoundBlock?)this.Visit(node.TryBlock); 27BoundBlock? finallyBlockOpt = (BoundBlock?)this.Visit(node.FinallyBlockOpt); 56var block = (BoundBlock)statement; 88BoundBlock? rewrittenBody = (BoundBlock?)this.Visit(node.Body);
Lowering\LocalRewriter\LocalRewriter_UsingStatement.cs (14)
40BoundBlock tryBlock = rewrittenBody.Kind == BoundKind.Block 41? (BoundBlock)rewrittenBody 42: BoundBlock.SynthesizedNoLocals(node.Syntax, rewrittenBody); 63BoundBlock body, 72BoundBlock result = body; 92BoundBlock body = new BoundBlock(syntax, ImmutableArray<LocalSymbol>.Empty, statements); 108private BoundBlock MakeExpressionUsingStatement(BoundUsingStatement node, BoundBlock tryBlock) 206private BoundBlock RewriteDeclarationUsingStatement( 209BoundBlock tryBlock, 233return BoundBlock.SynthesizedNoLocals(declarationSyntax, rewrittenDeclaration, tryBlock); 269return BoundBlock.SynthesizedNoLocals(declarationSyntax, rewrittenDeclaration, tryFinally); 282BoundBlock tryBlock, 423finallyBlockOpt: BoundBlock.SynthesizedNoLocals(resourceSyntax, finallyStatement));
Lowering\MethodToClassRewriter.cs (4)
141(BoundBlock?)this.Visit(node.Body)!, 148public override BoundNode VisitBlock(BoundBlock node) 151protected BoundBlock VisitBlock(BoundBlock node, bool removeInstrumentation)
Lowering\SpillSequenceSpiller.cs (3)
296var result = new BoundBlock(statement.Syntax, builder.GetLocals(), builder.GetStatements()) { WasCompilerGenerated = true }; 723BoundBlock body = (BoundBlock)this.Visit(node.Body);
Lowering\StateMachineRewriter\IteratorAndAsyncCaptureWalker.cs (1)
367public override BoundNode VisitBlock(BoundBlock node)
Lowering\StateMachineRewriter\MethodToStateMachineRewriter.cs (11)
403internal BoundBlock MakeStateMachineScope(ImmutableArray<StateMachineFieldSymbol> hoistedLocals, BoundStatement statement) 415var rewrittenBlock = (BoundBlock)statement; 446protected BoundBlock GenerateAllHoistedLocalsCleanup() 455var result = F.Block(variableCleanup.SelectAsArray((e, f) => (BoundStatement)f.ExpressionStatement(e), F)); 733public override BoundNode VisitBlock(BoundBlock node) 882BoundBlock tryBlock = F.Block((BoundStatement)this.Visit(node.TryBlock)); 901BoundBlock finallyBlockOpt = node.FinallyBlockOpt == null ? null : F.Block( 922protected virtual BoundBlock VisitFinally(BoundBlock finallyBlock) 924return (BoundBlock)this.Visit(finallyBlock);
Lowering\SyntheticBoundNodeFactory.cs (16)
443public BoundBlock Block() 448public BoundBlock Block(ImmutableArray<BoundStatement> statements) 453public BoundBlock Block(params BoundStatement[] statements) 458public BoundBlock Block(ImmutableArray<LocalSymbol> locals, params BoundStatement[] statements) 463public BoundBlock Block(ImmutableArray<LocalSymbol> locals, ImmutableArray<BoundStatement> statements) 468public BoundBlock Block(ImmutableArray<LocalSymbol> locals, ImmutableArray<LocalFunctionSymbol> localFunctions, params BoundStatement[] statements) 473public BoundBlock Block(ImmutableArray<LocalSymbol> locals, ImmutableArray<LocalFunctionSymbol> localFunctions, ImmutableArray<BoundStatement> statements) 478public BoundExtractedFinallyBlock ExtractedFinallyBlock(BoundBlock finallyBlock) 951var firstPart = this.Block(locals, statements.ToImmutable()); 965var firstPart = this.Block(locals, statements.ToImmutable()); 1576BoundBlock tryBlock, 1578BoundBlock? finallyBlock = null, 1592BoundBlock block) 1600BoundBlock block) 1605internal BoundTryStatement Fault(BoundBlock tryBlock, BoundBlock faultBlock)
Operations\CSharpOperationFactory.cs (2)
163return CreateBoundBlockOperation((BoundBlock)boundNode); 1751private IBlockOperation CreateBoundBlockOperation(BoundBlock boundBlock)
Symbols\Synthesized\ReadOnlyListType\SynthesizedReadOnlyListConstructor.cs (1)
33var block = f.Block(
Symbols\Synthesized\ReadOnlyListType\SynthesizedReadOnlyListEnumeratorConstructor.cs (1)
33var block = f.Block(
Symbols\Synthesized\SynthesizedEntryPointSymbol.cs (4)
60internal abstract BoundBlock CreateBody(BindingDiagnosticBag diagnostics); 394internal override BoundBlock CreateBody(BindingDiagnosticBag diagnostics) 465internal override BoundBlock CreateBody(BindingDiagnosticBag diagnostics) 563internal override BoundBlock CreateBody(BindingDiagnosticBag diagnostics)
Symbols\Synthesized\SynthesizedEventAccessorSymbol.cs (1)
130BoundBlock body = CSharp.MethodBodySynthesizer.ConstructFieldLikeEventAccessorBody(fieldLikeEvent, isAddMethod: MethodKind == MethodKind.EventAdd, compilationState.Compilation, diagnostics);
Symbols\Synthesized\SynthesizedHotReloadExceptionConstructorSymbol.cs (1)
55var block = factory.Block(
Symbols\Synthesized\SynthesizedInstanceConstructor.cs (1)
310var block = factory.Block(statements.ToImmutableAndFree());
Microsoft.CodeAnalysis.CSharp.Emit3.UnitTests (1)
FlowAnalysis\FlowTestBase.cs (1)
35var boundBody = MethodCompiler.BindSynthesizedMethodBody(sourceSymbol, compilationState, diagnostics);
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (14)
Semantics\ConstantTests.cs (1)
1453var block = ParseAndBindMethodBody(source);
Semantics\ImplicitlyTypeArraysTests.cs (1)
38var block = MethodCompiler.BindSynthesizedMethodBody(method, new TypeCompilationState(method.ContainingType, compilation, null), diagnostics);
Semantics\OperatorTests.cs (3)
3204var block = MethodCompiler.BindSynthesizedMethodBody(method, new TypeCompilationState(method.ContainingType, compilation, null), diagnostics); 7334var block = binder.BindEmbeddedBlock(methodBody, diagnostics); 8817var block = binder.BindEmbeddedBlock(methodBody, diagnostics);
Semantics\OverloadResolutionTestBase.cs (1)
37var block = MethodCompiler.BindSynthesizedMethodBody(method, new TypeCompilationState(method.ContainingType, compilation, null), diagnostics);
Semantics\SemanticAnalyzerTests.cs (7)
1318var block = ParseAndBindMethodBody(@" 1346var block = ParseAndBindMethodBody(@" 1374var block = ParseAndBindMethodBody(@" 1405var block = ParseAndBindMethodBody(@" 1439var block = ParseAndBindMethodBody(@" 1474var block = ParseAndBindMethodBody(@" 1509var block = ParseAndBindMethodBody(@"
Semantics\UnsafeTests.cs (1)
5206var block = binder.BindEmbeddedBlock(methodBody, unusedDiagnostics);
Microsoft.CodeAnalysis.CSharp.Test.Utilities (1)
CompilingTestBase.cs (1)
39var block = MethodCompiler.BindSynthesizedMethodBody(method, compilationState, diagnostics);