public BasicBlock(int number, IEnumerable <ExpressionStatement> expressionStatements, BlockTerminatorStatement terminator) { Number = number; ExpressionStatements = expressionStatements.ToFixedList(); Terminator = terminator; Statements = ExpressionStatements.Append <Statement>(terminator).ToFixedList(); foreach (var(statement, i) in Statements.Enumerate()) { statement.BlockNumber = number; statement.Number = i; } }