Rename BlockBody to ListBody. (#9291)

Nobody knew what a Block was.
diff --git a/dev/benchmarks/complex_layout/lib/main.dart b/dev/benchmarks/complex_layout/lib/main.dart
index 10dd53f..3d3ca85 100644
--- a/dev/benchmarks/complex_layout/lib/main.dart
+++ b/dev/benchmarks/complex_layout/lib/main.dart
@@ -170,7 +170,7 @@
 
   @override
   Widget build(BuildContext context) {
-    return new BlockBody(
+    return new ListBody(
       children: <Widget>[
         new UserHeader('Ali Connors $index'),
         new ItemDescription(),
@@ -193,7 +193,7 @@
   final int index;
   @override
   Widget build(BuildContext context) {
-    return new BlockBody(
+    return new ListBody(
       children: <Widget>[
         new UserHeader('Ali Connors'),
         new ItemGalleryBox(index),
diff --git a/packages/flutter/lib/src/material/about.dart b/packages/flutter/lib/src/material/about.dart
index 5d1f13a..f8e5495 100644
--- a/packages/flutter/lib/src/material/about.dart
+++ b/packages/flutter/lib/src/material/about.dart
@@ -266,7 +266,7 @@
     body.add(new Expanded(
       child: new Padding(
         padding: const EdgeInsets.symmetric(horizontal: 24.0),
-        child: new BlockBody(
+        child: new ListBody(
           children: <Widget>[
             new Text(name, style: Theme.of(context).textTheme.headline),
             new Text(version, style: Theme.of(context).textTheme.body1),
@@ -286,7 +286,7 @@
       body.addAll(children);
     return new AlertDialog(
       content: new SingleChildScrollView(
-        child: new BlockBody(children: body),
+        child: new ListBody(children: body),
       ),
       actions: <Widget>[
         new FlatButton(
diff --git a/packages/flutter/lib/src/material/dialog.dart b/packages/flutter/lib/src/material/dialog.dart
index 277ed56..c8ea858 100644
--- a/packages/flutter/lib/src/material/dialog.dart
+++ b/packages/flutter/lib/src/material/dialog.dart
@@ -293,7 +293,7 @@
       body.add(new Flexible(
         child: new SingleChildScrollView(
           padding: contentPadding ?? const EdgeInsets.fromLTRB(0.0, 12.0, 0.0, 16.0),
-          child: new BlockBody(children: children),
+          child: new ListBody(children: children),
         )
       ));
     }
diff --git a/packages/flutter/lib/src/material/expansion_panel.dart b/packages/flutter/lib/src/material/expansion_panel.dart
index 2bfbb11..e55be3e 100644
--- a/packages/flutter/lib/src/material/expansion_panel.dart
+++ b/packages/flutter/lib/src/material/expansion_panel.dart
@@ -84,7 +84,7 @@
   }
 
   /// The children of the expansion panel list. They are layed in a similar
-  /// fashion to [BlockBody].
+  /// fashion to [ListBody].
   final List<ExpansionPanel> children;
 
   /// The callback that gets called whenever one of the expand/collapse buttons
diff --git a/packages/flutter/lib/src/material/mergeable_material.dart b/packages/flutter/lib/src/material/mergeable_material.dart
index 3b7bffc..026be04 100644
--- a/packages/flutter/lib/src/material/mergeable_material.dart
+++ b/packages/flutter/lib/src/material/mergeable_material.dart
@@ -74,7 +74,7 @@
 /// Displays a list of [MergeableMaterialItem] children. The list contains
 /// [MaterialSlice] items whose boundaries are either "merged" with adjacent
 /// items or separated by a [MaterialGap]. The [children] are distributed along
-/// the given [mainAxis] in the same way as the children of a [BlockBody]. When
+/// the given [mainAxis] in the same way as the children of a [ListBody]. When
 /// the list of children changes, gaps are automatically animated open or closed
 /// as needed.
 ///
@@ -522,7 +522,7 @@
               borderRadius: _borderRadius(i - 1, widgets.isEmpty, false),
               shape: BoxShape.rectangle
             ),
-            child: new BlockBody(
+            child: new ListBody(
               mainAxis: config.mainAxis,
               children: slices
             )
@@ -593,7 +593,7 @@
             borderRadius: _borderRadius(i - 1, widgets.isEmpty, true),
             shape: BoxShape.rectangle
           ),
-          child: new BlockBody(
+          child: new ListBody(
             mainAxis: config.mainAxis,
             children: slices
           )
@@ -602,7 +602,7 @@
       slices = <Widget>[];
     }
 
-    return new _MergeableMaterialBlockBody(
+    return new _MergeableMaterialListBody(
       mainAxis: config.mainAxis,
       boxShadows: kElevationToShadow[config.elevation],
       items: _children,
@@ -635,8 +635,8 @@
   }
 }
 
-class _MergeableMaterialBlockBody extends BlockBody {
-  _MergeableMaterialBlockBody({
+class _MergeableMaterialListBody extends ListBody {
+  _MergeableMaterialListBody({
     List<Widget> children,
     Axis mainAxis: Axis.vertical,
     this.items,
@@ -647,24 +647,24 @@
   List<BoxShadow> boxShadows;
 
   @override
-  RenderBlock createRenderObject(BuildContext context) {
-    return new _MergeableMaterialRenderBlock(
+  RenderListBody createRenderObject(BuildContext context) {
+    return new _RenderMergeableMaterialListBody(
       mainAxis: mainAxis,
       boxShadows: boxShadows
     );
   }
 
   @override
-  void updateRenderObject(BuildContext context, RenderBlock renderObject) {
-    final _MergeableMaterialRenderBlock materialRenderBlock = renderObject;
-    materialRenderBlock
+  void updateRenderObject(BuildContext context, RenderListBody renderObject) {
+    final _RenderMergeableMaterialListBody materialRenderListBody = renderObject;
+    materialRenderListBody
       ..mainAxis = mainAxis
       ..boxShadows = boxShadows;
   }
 }
 
-class _MergeableMaterialRenderBlock extends RenderBlock {
-  _MergeableMaterialRenderBlock({
+class _RenderMergeableMaterialListBody extends RenderListBody {
+  _RenderMergeableMaterialListBody({
     List<RenderBox> children,
     Axis mainAxis: Axis.vertical,
     this.boxShadows
@@ -692,7 +692,7 @@
     int i = 0;
 
     while (child != null) {
-      final BlockParentData childParentData = child.parentData;
+      final ListBodyParentData childParentData = child.parentData;
       final Rect rect = (childParentData.offset + offset) & child.size;
       if (i % 2 == 0)
         _paintShadows(context.canvas, rect);
diff --git a/packages/flutter/lib/src/material/popup_menu.dart b/packages/flutter/lib/src/material/popup_menu.dart
index 06bb4a9..251bb02 100644
--- a/packages/flutter/lib/src/material/popup_menu.dart
+++ b/packages/flutter/lib/src/material/popup_menu.dart
@@ -300,7 +300,7 @@
           padding: const EdgeInsets.symmetric(
             vertical: _kMenuVerticalPadding
           ),
-          child: new BlockBody(children: children),
+          child: new ListBody(children: children),
         )
       )
     );
diff --git a/packages/flutter/lib/src/rendering/block.dart b/packages/flutter/lib/src/rendering/block.dart
index e4a6905..62fc3d9 100644
--- a/packages/flutter/lib/src/rendering/block.dart
+++ b/packages/flutter/lib/src/rendering/block.dart
@@ -7,37 +7,39 @@
 import 'box.dart';
 import 'object.dart';
 
-/// Parent data for use with [RenderBlockBase].
-class BlockParentData extends ContainerBoxParentDataMixin<RenderBox> { }
+/// Parent data for use with [RenderListBody].
+class ListBodyParentData extends ContainerBoxParentDataMixin<RenderBox> { }
 
 typedef double _ChildSizingFunction(RenderBox child);
 
-/// Implements the block layout algorithm.
+/// Displays its children sequentially along a given axis, forcing them to the
+/// dimensions of the parent in the other axis.
 ///
-/// In block layout, children are arranged linearly along the main axis (either
-/// horizontally or vertically). In the cross axis, children are stretched to
-/// match the block's cross-axis extent. In the main axis, children are given
-/// unlimited space and the block expands its main axis to contain all its
-/// children. Because blocks expand in the main axis, blocks must be given
-/// unlimited space in the main axis, typically by being contained in a
-/// viewport with a scrolling direction that matches the block's main axis.
-class RenderBlock extends RenderBox
-    with ContainerRenderObjectMixin<RenderBox, BlockParentData>,
-         RenderBoxContainerDefaultsMixin<RenderBox, BlockParentData> {
-  /// Creates a block render object.
+/// This layout algorithm arranges its children linearly along the main axis
+/// (either horizontally or vertically). In the cross axis, children are
+/// stretched to match the box's cross-axis extent. In the main axis, children
+/// are given unlimited space and the box expands its main axis to contain all
+/// its children. Because [RenderListBody] boxes expand in the main axis, they
+/// must be given unlimited space in the main axis, typically by being contained
+/// in a viewport with a scrolling direction that matches the box's main axis.
+class RenderListBody extends RenderBox
+    with ContainerRenderObjectMixin<RenderBox, ListBodyParentData>,
+         RenderBoxContainerDefaultsMixin<RenderBox, ListBodyParentData> {
+  /// Creates a render object that arranges its children sequentially along a
+  /// given axis.
   ///
-  /// By default, the block positions children along the vertical axis.
-  RenderBlock({
+  /// By default, children are arranged along the vertical axis.
+  RenderListBody({
     List<RenderBox> children,
-    Axis mainAxis: Axis.vertical
+    Axis mainAxis: Axis.vertical,
   }) : _mainAxis = mainAxis {
     addAll(children);
   }
 
   @override
   void setupParentData(RenderBox child) {
-    if (child.parentData is! BlockParentData)
-      child.parentData = new BlockParentData();
+    if (child.parentData is! ListBodyParentData)
+      child.parentData = new ListBodyParentData();
   }
 
   /// The direction to use as the main axis.
@@ -90,10 +92,10 @@
           break;
       }
       throw new FlutterError(
-        'RenderBlock must have unlimited space along its main axis.\n'
-        'RenderBlock does not clip or resize its children, so it must be '
-        'placed in a parent that does not constrain the block\'s main '
-        'axis. You probably want to put the RenderBlock inside a '
+        'RenderListBody must have unlimited space along its main axis.\n'
+        'RenderListBody does not clip or resize its children, so it must be '
+        'placed in a parent that does not constrain the main '
+        'axis. You probably want to put the RenderListBody inside a '
         'RenderViewport with a matching main axis.'
       );
     });
@@ -112,11 +114,11 @@
       // more specific to the exact situation in that case, and don't mention
       // nesting blocks in the negative case.
       throw new FlutterError(
-        'RenderBlock must have a bounded constraint for its cross axis.\n'
-        'RenderBlock forces its children to expand to fit the block\'s container, '
-        'so it must be placed in a parent that does constrain the block\'s cross '
-        'axis to a finite dimension. If you are attempting to nest a block with '
-        'one direction inside a block of another direction, you will want to '
+        'RenderListBody must have a bounded constraint for its cross axis.\n'
+        'RenderListBody forces its children to expand to fit the RenderListBody\'s container, '
+        'so it must be placed in a parent that constrains the cross '
+        'axis to a finite dimension. If you are attempting to nest a RenderListBody with '
+        'one direction inside one of another direction, you will want to '
         'wrap the inner one inside a box that fixes the dimension in that direction, '
         'for example, a RenderIntrinsicWidth or RenderIntrinsicHeight object. '
         'This is relatively expensive, however.' // (that's why we don't do it automatically)
@@ -127,7 +129,7 @@
     RenderBox child = firstChild;
     while (child != null) {
       child.layout(innerConstraints, parentUsesSize: true);
-      final BlockParentData childParentData = child.parentData;
+      final ListBodyParentData childParentData = child.parentData;
       switch (mainAxis) {
         case Axis.horizontal:
           childParentData.offset = new Offset(position, 0.0);
@@ -164,7 +166,7 @@
     RenderBox child = firstChild;
     while (child != null) {
       extent = math.max(extent, childSize(child));
-      final BlockParentData childParentData = child.parentData;
+      final ListBodyParentData childParentData = child.parentData;
       child = childParentData.nextSibling;
     }
     return extent;
@@ -175,7 +177,7 @@
     RenderBox child = firstChild;
     while (child != null) {
       extent += childSize(child);
-      final BlockParentData childParentData = child.parentData;
+      final ListBodyParentData childParentData = child.parentData;
       child = childParentData.nextSibling;
     }
     return extent;
diff --git a/packages/flutter/lib/src/widgets/basic.dart b/packages/flutter/lib/src/widgets/basic.dart
index bc8f359..a6f8dfa 100644
--- a/packages/flutter/lib/src/widgets/basic.dart
+++ b/packages/flutter/lib/src/widgets/basic.dart
@@ -1539,19 +1539,30 @@
 
 // LAYOUT NODES
 
-/// A widget that uses the block layout algorithm for its children.
+/// A widget that arranges its children sequentially along a given axis, forcing
+/// them to the dimension of the parent in the other axis.
 ///
-/// This widget is rarely used directly. Instead, consider using [SliverList],
+/// This widget is rarely used directly. Instead, consider using [ListView],
 /// which combines a similar layout algorithm with scrolling behavior, or
 /// [Column], which gives you more flexible control over the layout of a
 /// vertical set of boxes.
 ///
-/// For details about the block layout algorithm, see [RenderBlockBase].
-class BlockBody extends MultiChildRenderObjectWidget {
-  /// Creates a block layout widget.
+/// See also:
+///
+///  * [RenderListBody], which implements this layout algorithm and the
+///    documentation for which describes some of its subtleties.
+///  * [SingleChildScrollView], which is sometimes used with [ListBody] to
+///    make the contents scrollable.
+///  * [Column] and [Row], which implement a more elaborate version of
+///    this layout algorithm (at the cost of being slightly less efficient).
+///  * [ListView], which implements an efficient scrolling version of this
+///    layout algorithm.
+class ListBody extends MultiChildRenderObjectWidget {
+  /// Creates a layout widget that arranges its children sequentially along a
+  /// given axis.
   ///
   /// By default, the [mainAxis] is [Axis.vertical].
-  BlockBody({
+  ListBody({
     Key key,
     this.mainAxis: Axis.vertical,
     List<Widget> children: const <Widget>[],
@@ -1562,10 +1573,10 @@
   final Axis mainAxis;
 
   @override
-  RenderBlock createRenderObject(BuildContext context) => new RenderBlock(mainAxis: mainAxis);
+  RenderListBody createRenderObject(BuildContext context) => new RenderListBody(mainAxis: mainAxis);
 
   @override
-  void updateRenderObject(BuildContext context, RenderBlock renderObject) {
+  void updateRenderObject(BuildContext context, RenderListBody renderObject) {
     renderObject.mainAxis = mainAxis;
   }
 }
diff --git a/packages/flutter/lib/src/widgets/single_child_scroll_view.dart b/packages/flutter/lib/src/widgets/single_child_scroll_view.dart
index ff30c8d..ff13ba3 100644
--- a/packages/flutter/lib/src/widgets/single_child_scroll_view.dart
+++ b/packages/flutter/lib/src/widgets/single_child_scroll_view.dart
@@ -23,12 +23,12 @@
 /// It is also useful if you need to shrink-wrap in both axes (the main
 /// scrolling direction as well as the cross axis), as one might see in a dialog
 /// or pop-up menu. In that case, you might pair the [SingleChildScrollView]
-/// with a [BlockBody] child.
+/// with a [ListBody] child.
 ///
 /// When you have a list of children and do not require cross-axis
 /// shrink-wrapping behavior, for example a scrolling list that is always the
 /// width of the screen, consider [ListView], which is vastly more efficient
-/// that a [SingleChildScrollView] containing a [BlockBody] or [Column] with
+/// that a [SingleChildScrollView] containing a [ListBody] or [Column] with
 /// many children.
 ///
 /// See also:
diff --git a/packages/flutter/test/rendering/paragraph_intrinsics_test.dart b/packages/flutter/test/rendering/paragraph_intrinsics_test.dart
index 69803f4..cd9c6bb 100644
--- a/packages/flutter/test/rendering/paragraph_intrinsics_test.dart
+++ b/packages/flutter/test/rendering/paragraph_intrinsics_test.dart
@@ -6,14 +6,14 @@
 import 'package:test/test.dart';
 
 void main() {
-  test('block and paragraph intrinsics', () {
+  test('list body and paragraph intrinsics', () {
     final RenderParagraph paragraph = new RenderParagraph(
       const TextSpan(
         style: const TextStyle(height: 1.0),
         text: 'Hello World'
       )
     );
-    final RenderBlock testBlock = new RenderBlock(
+    final RenderListBody testBlock = new RenderListBody(
       children: <RenderBox>[
         paragraph,
       ]
diff --git a/packages/flutter/test/widgets/ensure_visible_test.dart b/packages/flutter/test/widgets/ensure_visible_test.dart
index 120f6b6..e2fc1a4 100644
--- a/packages/flutter/test/widgets/ensure_visible_test.dart
+++ b/packages/flutter/test/widgets/ensure_visible_test.dart
@@ -18,7 +18,7 @@
       child: new SingleChildScrollView(
         scrollDirection: scrollDirection,
         reverse: reverse,
-        child: new BlockBody(
+        child: new ListBody(
           mainAxis: scrollDirection,
           children: <Widget>[
             new Container(key: const ValueKey<int>(0), width: 200.0, height: 200.0),
@@ -178,7 +178,7 @@
             width: 600.0,
             height: 400.0,
             child: new SingleChildScrollView(
-              child: new BlockBody(
+              child: new ListBody(
                 children: <Widget>[
                   new Container(height: 200.0),
                   new Container(height: 200.0),