Removes trailing whitespace from source files. (#19329)


diff --git a/packages/flutter/lib/src/foundation/consolidate_response.dart b/packages/flutter/lib/src/foundation/consolidate_response.dart
index cd6f158..f28e39c 100644
--- a/packages/flutter/lib/src/foundation/consolidate_response.dart
+++ b/packages/flutter/lib/src/foundation/consolidate_response.dart
@@ -7,7 +7,7 @@
 import 'dart:typed_data';
 
 /// Efficiently converts the response body of an [HttpClientResponse] into a [Uint8List].
-/// 
+///
 /// The future returned will forward all errors emitted by [response].
 Future<Uint8List> consolidateHttpClientResponseBytes(HttpClientResponse response) {
   // response.contentLength is not trustworthy when GZIP is involved
@@ -28,6 +28,6 @@
     }
     completer.complete(bytes);
   }, onError: completer.completeError, cancelOnError: true);
-  
+
   return completer.future;
 }
diff --git a/packages/flutter/lib/src/material/app.dart b/packages/flutter/lib/src/material/app.dart
index 089d8c4..a0bbe3f 100644
--- a/packages/flutter/lib/src/material/app.dart
+++ b/packages/flutter/lib/src/material/app.dart
@@ -587,7 +587,7 @@
         },
       )
     );
-    
+
     assert(() {
       if (widget.debugShowMaterialGrid) {
         result = new GridPaper(
diff --git a/packages/flutter/lib/src/material/dialog.dart b/packages/flutter/lib/src/material/dialog.dart
index 776fa2b..0a60297 100644
--- a/packages/flutter/lib/src/material/dialog.dart
+++ b/packages/flutter/lib/src/material/dialog.dart
@@ -217,15 +217,15 @@
   /// from the [actions].
   final List<Widget> actions;
 
-  /// The semantic label of the dialog used by accessibility frameworks to 
+  /// The semantic label of the dialog used by accessibility frameworks to
   /// announce screen transitions when the dialog is opened and closed.
-  /// 
+  ///
   /// If this label is not provided, a semantic label will be infered from the
   /// [title] if it is not null.  If there is no title, the label will be taken
   /// from [MaterialLocalizations.alertDialogLabel].
-  /// 
+  ///
   /// See also:
-  /// 
+  ///
   ///  * [SemanticsConfiguration.isRouteName], for a description of how this
   ///    value is used.
   final String semanticLabel;
@@ -475,15 +475,15 @@
   /// the top padding ends up being 24 pixels.
   final EdgeInsetsGeometry contentPadding;
 
-  /// The semantic label of the dialog used by accessibility frameworks to 
+  /// The semantic label of the dialog used by accessibility frameworks to
   /// announce screen transitions when the dialog is opened and closed.
-  /// 
+  ///
   /// If this label is not provided, a semantic label will be infered from the
   /// [title] if it is not null.  If there is no title, the label will be taken
   /// from [MaterialLocalizations.dialogLabel].
-  /// 
+  ///
   /// See also:
-  /// 
+  ///
   ///  * [SemanticsConfiguration.isRouteName], for a description of how this
   ///    value is used.
   final String semanticLabel;
diff --git a/packages/flutter/lib/src/material/material_localizations.dart b/packages/flutter/lib/src/material/material_localizations.dart
index d86ad9a..5003027 100644
--- a/packages/flutter/lib/src/material/material_localizations.dart
+++ b/packages/flutter/lib/src/material/material_localizations.dart
@@ -144,19 +144,19 @@
   /// user interaction with elements behind it.
   String get modalBarrierDismissLabel;
 
-  /// Label read out by accessibility tools (TalkBack or VoiceOver) when a 
+  /// Label read out by accessibility tools (TalkBack or VoiceOver) when a
   /// drawer widget is opened.
   String get drawerLabel;
- 
-  /// Label read out by accessibility tools (TalkBack or VoiceOver) when a 
+
+  /// Label read out by accessibility tools (TalkBack or VoiceOver) when a
   /// popup menu widget is opened.
   String get popupMenuLabel;
 
-  /// Label read out by accessibility tools (TalkBack or VoiceOver) when a 
+  /// Label read out by accessibility tools (TalkBack or VoiceOver) when a
   /// dialog widget is opened.
   String get dialogLabel;
 
-  /// Label read out by accessibility tools (TalkBack or VoiceOver) when an 
+  /// Label read out by accessibility tools (TalkBack or VoiceOver) when an
   /// alert dialog widget is opened.
   String get alertDialogLabel;
 
diff --git a/packages/flutter/lib/src/material/popup_menu.dart b/packages/flutter/lib/src/material/popup_menu.dart
index ebb4588..77a3d86 100644
--- a/packages/flutter/lib/src/material/popup_menu.dart
+++ b/packages/flutter/lib/src/material/popup_menu.dart
@@ -688,12 +688,12 @@
 /// The `context` argument is used to look up the [Navigator] and [Theme] for
 /// the menu. It is only used when the method is called. Its corresponding
 /// widget can be safely removed from the tree before the popup menu is closed.
-/// 
-/// The `semanticLabel` argument is used by accessibility frameworks to 
-/// announce screen transitions when the menu is opened and closed. If this 
-/// label is not provided, it will default to 
+///
+/// The `semanticLabel` argument is used by accessibility frameworks to
+/// announce screen transitions when the menu is opened and closed. If this
+/// label is not provided, it will default to
 /// [MaterialLocalizations.popupMenuLabel].
-/// 
+///
 /// See also:
 ///
 ///  * [PopupMenuItem], a popup menu entry for a single value.
diff --git a/packages/flutter/lib/src/material/text_field.dart b/packages/flutter/lib/src/material/text_field.dart
index bfd3373..7133c20 100644
--- a/packages/flutter/lib/src/material/text_field.dart
+++ b/packages/flutter/lib/src/material/text_field.dart
@@ -313,9 +313,9 @@
   final bool enabled;
 
   /// The appearance of the keyboard.
-  /// 
+  ///
   /// This setting is only honored on iOS devices.
-  /// 
+  ///
   /// If unset, defaults to the brightness of [ThemeData.primaryColorBrightness].
   final Brightness keyboardAppearance;
 
diff --git a/packages/flutter/lib/src/material/typography.dart b/packages/flutter/lib/src/material/typography.dart
index 742856d..47d5645 100644
--- a/packages/flutter/lib/src/material/typography.dart
+++ b/packages/flutter/lib/src/material/typography.dart
@@ -113,10 +113,10 @@
   /// /// descendants, while leaving other ambient theme attributes alone.
   /// class TitleColorThemeCopy extends StatelessWidget {
   ///   TitleColorThemeCopy({Key key, this.child, this.titleColor}) : super(key: key);
-  /// 
+  ///
   ///   final Color titleColor;
   ///   final Widget child;
-  /// 
+  ///
   ///   @override
   ///   Widget build(BuildContext context) {
   ///     final ThemeData theme = Theme.of(context);
@@ -192,10 +192,10 @@
   /// /// descendants, while leaving other ambient theme attributes alone.
   /// class TitleColorTheme extends StatelessWidget {
   ///   TitleColorTheme({Key key, this.child, this.titleColor}) : super(key: key);
-  /// 
+  ///
   ///   final Color titleColor;
   ///   final Widget child;
-  /// 
+  ///
   ///   @override
   ///   Widget build(BuildContext context) {
   ///     ThemeData theme = Theme.of(context);
diff --git a/packages/flutter/lib/src/painting/gradient.dart b/packages/flutter/lib/src/painting/gradient.dart
index d803ede..4a80840 100644
--- a/packages/flutter/lib/src/painting/gradient.dart
+++ b/packages/flutter/lib/src/painting/gradient.dart
@@ -443,10 +443,10 @@
 /// A normal radial gradient has a [center] and a [radius]. The [center] point
 /// corresponds to 0.0, and the ring at [radius] from the center corresponds
 /// to 1.0. These lengths are expressed in fractions, so that the same gradient
-/// can be reused with varying sized boxes without changing the parameters. 
+/// can be reused with varying sized boxes without changing the parameters.
 /// (This contrasts with [new ui.Gradient.radial], whose arguments are expressed
 /// in logical pixels.)
-/// 
+///
 /// It is also possible to create a two-point (or focal pointed) radial gradient
 /// (which is sometimes referred to as a two point conic gradient, but is not the
 /// same as a CSS conic gradient which corresponds to a [SweepGradient]). A [focal]
@@ -454,7 +454,7 @@
 /// which will make the rendered gradient appear to be pointed or directed in the
 /// direction of the [focal] point. This is only important if [focal] and [center]
 /// are not equal or [focalRadius] > 0.0 (as this case is visually identical to a
-/// normal radial gradient).  One important case to avoid is having [focal] and 
+/// normal radial gradient).  One important case to avoid is having [focal] and
 /// [center] both resolve to [Offset.zero] when [focalRadius] > 0.0. In such a case,
 /// a valid shader cannot be created by the framework.
 ///
@@ -553,17 +553,17 @@
   /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/tile_mode_clamp_radial.png)
   /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/tile_mode_mirror_radial.png)
   /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/tile_mode_repeated_radial.png)
-  /// 
+  ///
   /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/tile_mode_clamp_radialWithFocal.png)
   /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/tile_mode_mirror_radialWithFocal.png)
   /// ![](https://flutter.github.io/assets-for-api-docs/assets/dart-ui/tile_mode_repeated_radialWithFocal.png)
   final TileMode tileMode;
 
   /// The focal point of the gradient.  If specified, the gradient will appear
-  /// to be focused along the vector from [center] to focal. 
-  /// 
+  /// to be focused along the vector from [center] to focal.
+  ///
   /// See [center] for a description of how the coordinates are mapped.
-  /// 
+  ///
   /// If this value is specified and [focalRadius] > 0.0, care should be taken
   /// to ensure that either this value or [center] will not both resolve to
   /// [Offset.zero], which would fail to create a valid gradient.
@@ -575,7 +575,7 @@
   /// For example, if a radial gradient is painted on a box that is
   /// 100.0 pixels wide and 200.0 pixels tall, then a radius of 1.0
   /// will place the 1.0 stop at 100.0 pixels from the [focus].
-  /// 
+  ///
   /// If this value is specified and is greater than 0.0, either [focal] or
   /// [center] must not resolve to [Offset.zero], which would fail to create
   /// a valid gradient.
diff --git a/packages/flutter/lib/src/painting/text_style.dart b/packages/flutter/lib/src/painting/text_style.dart
index 8224d0b..6134c1b 100644
--- a/packages/flutter/lib/src/painting/text_style.dart
+++ b/packages/flutter/lib/src/painting/text_style.dart
@@ -50,7 +50,7 @@
 /// [RichText] widget is explicitly given the ambient [DefaultTextStyle], since
 /// [RichText] does not do that automatically. The inner [TextStyle] objects are
 /// implicitly mixed with the parent [TextSpan]'s [TextSpan.style].
-/// 
+///
 /// If [color] is specified, [foreground] must be null and vice versa. [color] is
 /// treated as a shorthand for `new Paint()..color = color`.
 ///
@@ -260,10 +260,10 @@
   final bool inherit;
 
   /// The color to use when painting the text.
-  /// 
+  ///
   /// If [foreground] is specified, this value must be null. The [color] property
   /// is shorthand for `new Paint()..color = color`.
-  ///   
+  ///
   /// In [merge], [apply], and [lerp], conflicts between [color] and [foreground]
   /// specification are resolved in [foreground]'s favor - i.e. if [foreground] is
   /// specified in one place, it will dominate [color] in another.
@@ -331,15 +331,15 @@
   /// styles are created with the same paint settings. Otherwise, each time it
   /// will appear like the style changed, which will result in unnecessary
   /// updates all the way through the framework.
-  /// 
+  ///
   /// If [color] is specified, this value must be null. The [color] property
   /// is shorthand for `new Paint()..color = color`.
-  /// 
+  ///
   /// In [merge], [apply], and [lerp], conflicts between [color] and [foreground]
   /// specification are resolved in [foreground]'s favor - i.e. if [foreground] is
   /// specified in one place, it will dominate [color] in another.
-  final Paint foreground;  
-  
+  final Paint foreground;
+
   /// The paint drawn as a background for the text.
   ///
   /// The value should ideally be cached and reused each time if multiple text
@@ -372,7 +372,7 @@
 
   /// Creates a copy of this text style but with the given fields replaced with
   /// the new values.
-  /// 
+  ///
   /// One of [color] or [foreground] must be null, and if this has [foreground]
   /// specified it will be given preference over any color parameter.
   TextStyle copyWith({
@@ -426,7 +426,7 @@
   ///
   /// The non-numeric properties [color], [fontFamily], [decoration],
   /// [decorationColor] and [decorationStyle] are replaced with the new values.
-  /// 
+  ///
   /// [foreground] will be given preference over [color] if it is not null.
   ///
   /// The numeric properties are multiplied by the given factors and then
@@ -444,7 +444,7 @@
   ///
   /// If the underlying values are null, then the corresponding factors and/or
   /// deltas must not be specified.
-  /// 
+  ///
   /// If [foreground] is specified on this object, then applying [color] here
   /// will have no effect.
   TextStyle apply({
@@ -520,7 +520,7 @@
   /// inherit properties of this style.
   ///
   /// If the given text style is null, returns this text style.
-  /// 
+  ///
   /// One of [color] or [foreground] must be null, and if this or `other` has
   /// [foreground] specified it will be given preference over any color parameter.
   TextStyle merge(TextStyle other) {
@@ -571,7 +571,7 @@
   ///
   /// Values for `t` are usually obtained from an [Animation<double>], such as
   /// an [AnimationController].
-  /// 
+  ///
   /// If [foreground] is specified on either of `a` or `b`, both will be treated
   /// as if they have a [foreground] paint (creating a new [Paint] if necessary
   /// based on the [color] property).
@@ -645,7 +645,7 @@
       height: ui.lerpDouble(a.height ?? b.height, b.height ?? a.height, t),
       locale: t < 0.5 ? a.locale : b.locale,
       foreground: (a.foreground != null || b.foreground != null)
-        ? t < 0.5 
+        ? t < 0.5
           ? a.foreground ?? (new Paint()..color = a.color)
           : b.foreground ?? (new Paint()..color = b.color)
         : null,
diff --git a/packages/flutter/lib/src/rendering/custom_layout.dart b/packages/flutter/lib/src/rendering/custom_layout.dart
index 46e9939..201af4c 100644
--- a/packages/flutter/lib/src/rendering/custom_layout.dart
+++ b/packages/flutter/lib/src/rendering/custom_layout.dart
@@ -58,24 +58,24 @@
 ///   leader,
 ///   follower,
 /// }
-/// 
+///
 /// class FollowTheLeader extends MultiChildLayoutDelegate {
 ///   @override
 ///   void performLayout(Size size) {
 ///     Size leaderSize = Size.zero;
-/// 
+///
 ///     if (hasChild(_Slot.leader)) {
 ///       leaderSize = layoutChild(_Slot.leader, new BoxConstraints.loose(size));
 ///       positionChild(_Slot.leader, Offset.zero);
 ///     }
-/// 
+///
 ///     if (hasChild(_Slot.follower)) {
 ///       layoutChild(_Slot.follower, new BoxConstraints.tight(leaderSize));
 ///       positionChild(_Slot.follower, new Offset(size.width - leaderSize.width,
 ///           size.height - leaderSize.height));
 ///     }
 ///   }
-/// 
+///
 ///   @override
 ///   bool shouldRelayout(MultiChildLayoutDelegate oldDelegate) => false;
 /// }
diff --git a/packages/flutter/lib/src/rendering/view.dart b/packages/flutter/lib/src/rendering/view.dart
index fbce210..4d7a7e2 100644
--- a/packages/flutter/lib/src/rendering/view.dart
+++ b/packages/flutter/lib/src/rendering/view.dart
@@ -214,7 +214,7 @@
     final Offset bottom = new Offset(bounds.center.dx, bounds.center.dy - ui.window.padding.bottom / ui.window.devicePixelRatio);
     final SystemUiOverlayStyle upperOverlayStyle = layer.find<SystemUiOverlayStyle>(top);
     // Only android has a customizable system navigation bar.
-    SystemUiOverlayStyle lowerOverlayStyle; 
+    SystemUiOverlayStyle lowerOverlayStyle;
     switch (defaultTargetPlatform) {
       case TargetPlatform.android:
         lowerOverlayStyle = layer.find<SystemUiOverlayStyle>(bottom);
diff --git a/packages/flutter/lib/src/semantics/semantics.dart b/packages/flutter/lib/src/semantics/semantics.dart
index 5567adb..923c9ad 100644
--- a/packages/flutter/lib/src/semantics/semantics.dart
+++ b/packages/flutter/lib/src/semantics/semantics.dart
@@ -536,8 +536,8 @@
 
   /// If non-null, whether the node corresponds to the root of a subtree for
   /// which a route name should be announced.
-  /// 
-  /// Generally, this is set in combination with [explicitChildNodes], since 
+  ///
+  /// Generally, this is set in combination with [explicitChildNodes], since
   /// nodes with this flag are not considered focusable by Android or iOS.
   ///
   /// See also:
@@ -549,7 +549,7 @@
   /// If non-null, whether the node contains the semantic label for a route.
   ///
   /// See also:
-  /// 
+  ///
   ///  * [SemanticsFlag.namesRoute] for a description of how the name is used.
   final bool namesRoute;
 
@@ -2754,7 +2754,7 @@
 
   /// Whether the semantics node is the root of a subtree for which values
   /// should be announced.
-  /// 
+  ///
   /// See also:
   ///  * [SemanticsFlag.scopesRoute], for a full description of route scoping.
   bool get scopesRoute => _hasFlag(SemanticsFlag.scopesRoute);
@@ -2763,7 +2763,7 @@
   }
 
   /// Whether the semantics node contains the label of a route.
-  /// 
+  ///
   /// See also:
   ///  * [SemanticsFlag.namesRoute], for a full description of route naming.
   bool get namesRoute => _hasFlag(SemanticsFlag.namesRoute);
diff --git a/packages/flutter/lib/src/semantics/semantics_event.dart b/packages/flutter/lib/src/semantics/semantics_event.dart
index 45b1b3d..3b7a3de 100644
--- a/packages/flutter/lib/src/semantics/semantics_event.dart
+++ b/packages/flutter/lib/src/semantics/semantics_event.dart
@@ -90,7 +90,7 @@
 }
 
 /// An event for a semantic announcement of a tooltip.
-/// 
+///
 /// This is only used by Android to announce tooltip values.
 class TooltipSemanticsEvent extends SemanticsEvent {
 
diff --git a/packages/flutter/lib/src/semantics/semantics_service.dart b/packages/flutter/lib/src/semantics/semantics_service.dart
index 815ae78..2429493 100644
--- a/packages/flutter/lib/src/semantics/semantics_service.dart
+++ b/packages/flutter/lib/src/semantics/semantics_service.dart
@@ -33,7 +33,7 @@
   }
 
   /// Sends a semantic announcement of a tooltip.
-  /// 
+  ///
   /// Currently only honored on Android. The contents of [message] will be
   /// read by TalkBack.
   static Future<Null> tooltip(String message) async {
diff --git a/packages/flutter/lib/src/services/system_chrome.dart b/packages/flutter/lib/src/services/system_chrome.dart
index 0ceb002..6d46651 100644
--- a/packages/flutter/lib/src/services/system_chrome.dart
+++ b/packages/flutter/lib/src/services/system_chrome.dart
@@ -130,32 +130,32 @@
   });
 
   /// The color of the system bottom navigation bar.
-  /// 
+  ///
   /// Only honored in Android versions O and greater.
   final Color systemNavigationBarColor;
 
   /// The color of the divider between the system's bottom navigation bar and the app's content.
-  /// 
+  ///
   /// Only honored in Android versions P and greater.
   final Color systemNavigationBarDividerColor;
 
   /// The brightness of the system navigation bar icons.
-  /// 
+  ///
   /// Only honored in Android versions O and greater.
   final Brightness systemNavigationBarIconBrightness;
 
   /// The color of top status bar.
-  /// 
+  ///
   /// Only honored in Android version M and greater.
   final Color statusBarColor;
 
   /// The brightness of top status bar.
-  /// 
+  ///
   /// Only honored in iOS.
   final Brightness statusBarBrightness;
 
   /// The brightness of the top status bar icons.
-  /// 
+  ///
   /// Only honored in Android version M and greater.
   final Brightness statusBarIconBrightness;
 
diff --git a/packages/flutter/lib/src/services/text_input.dart b/packages/flutter/lib/src/services/text_input.dart
index 3b82326..9e61373 100644
--- a/packages/flutter/lib/src/services/text_input.dart
+++ b/packages/flutter/lib/src/services/text_input.dart
@@ -409,9 +409,9 @@
   final TextCapitalization textCapitalization;
   
   /// The appearance of the keyboard.
-  /// 
+  ///
   /// This setting is only honored on iOS devices.
-  /// 
+  ///
   /// Defaults to [Brightness.light].
   final Brightness keyboardAppearance;
 
diff --git a/packages/flutter/lib/src/widgets/basic.dart b/packages/flutter/lib/src/widgets/basic.dart
index 7084201..b46efef 100644
--- a/packages/flutter/lib/src/widgets/basic.dart
+++ b/packages/flutter/lib/src/widgets/basic.dart
@@ -4259,8 +4259,8 @@
 ///
 /// Consider using the [Text] widget to integrate with the [DefaultTextStyle]
 /// automatically. When all the text uses the same style, the default constructor
-/// is less verbose. The [Text.rich] constructor allows you to style multiple 
-/// spans with the default text style while still allowing specified styles per 
+/// is less verbose. The [Text.rich] constructor allows you to style multiple
+/// spans with the default text style while still allowing specified styles per
 /// span.
 ///
 /// ## Sample code
diff --git a/packages/flutter/lib/src/widgets/drag_target.dart b/packages/flutter/lib/src/widgets/drag_target.dart
index 94905ec..339f56c 100644
--- a/packages/flutter/lib/src/widgets/drag_target.dart
+++ b/packages/flutter/lib/src/widgets/drag_target.dart
@@ -168,7 +168,7 @@
 
   /// Whether the semantics of the [feedback] widget is ignored when building
   /// the semantics tree.
-  /// 
+  ///
   /// This value should be set to false when the [feedback] widget is intended
   /// to be the same object as the [child].  Placing a [GlobalKey] on this
   /// widget will ensure semantic focus is kept on the element as it moves in
@@ -660,7 +660,7 @@
   Offset _restrictAxis(Offset offset) {
     if (axis == null) {
       return offset;
-    } 
+    }
     if (axis == Axis.horizontal) {
       return new Offset(offset.dx, 0.0);
     }
diff --git a/packages/flutter/lib/src/widgets/editable_text.dart b/packages/flutter/lib/src/widgets/editable_text.dart
index 6730142..0db6606 100644
--- a/packages/flutter/lib/src/widgets/editable_text.dart
+++ b/packages/flutter/lib/src/widgets/editable_text.dart
@@ -381,9 +381,9 @@
   final Radius cursorRadius;
 
   /// The appearance of the keyboard.
-  /// 
+  ///
   /// This setting is only honored on iOS devices.
-  /// 
+  ///
   /// Defaults to [Brightness.light].
   final Brightness keyboardAppearance;
 
diff --git a/packages/flutter/lib/src/widgets/framework.dart b/packages/flutter/lib/src/widgets/framework.dart
index ae3329d..0482b96 100644
--- a/packages/flutter/lib/src/widgets/framework.dart
+++ b/packages/flutter/lib/src/widgets/framework.dart
@@ -2076,15 +2076,15 @@
 
   /// Whether [_dirtyElements] need to be sorted again as a result of more
   /// elements becoming dirty during the build.
-  /// 
+  ///
   /// This is necessary to preserve the sort order defined by [Element._sort].
-  /// 
+  ///
   /// This field is set to null when [buildScope] is not actively rebuilding
   /// the widget tree.
   bool _dirtyElementsNeedsResorting;
 
   /// Whether [buildScope] is actively rebuilding the widget tree.
-  /// 
+  ///
   /// [scheduleBuildFor] should only be called when this value is true.
   bool get _debugIsInBuildScope => _dirtyElementsNeedsResorting != null;
 
diff --git a/packages/flutter/test/cupertino/slider_test.dart b/packages/flutter/test/cupertino/slider_test.dart
index d2fa176..0f917ef 100644
--- a/packages/flutter/test/cupertino/slider_test.dart
+++ b/packages/flutter/test/cupertino/slider_test.dart
@@ -117,7 +117,7 @@
     ));
 
     await _dragSlider(tester, sliderKey);
-    
+
     expect(numberOfTimesOnChangeStartIsCalled, equals(1));
 
     await tester.pump(); // No animation should start.
@@ -154,9 +154,9 @@
         },
       ),
     ));
-    
+
     await _dragSlider(tester, sliderKey);
-    
+
     expect(numberOfTimesOnChangeEndIsCalled, equals(1));
 
     await tester.pump(); // No animation should start.
@@ -199,7 +199,7 @@
     ));
 
     expect(value, equals(0.0));
-    
+
     final Offset topLeft = tester.getTopLeft(find.byKey(sliderKey));
     const double unit = CupertinoThumbPainter.radius;
     const double delta = 3.0 * unit;
@@ -210,7 +210,7 @@
     expect(startValue, equals(0.0));
     expect(value, equals(finalValue));
     expect(endValue, equals(finalValue));
-    
+
     await tester.pump(); // No animation should start.
     // Check the transientCallbackCount before tearing down the widget to ensure
     // that no animation is running.
@@ -222,7 +222,7 @@
     double value = 0.0;
     double startValue;
     double endValue;
-    
+
     await tester.pumpWidget(new Directionality(
       textDirection: TextDirection.rtl,
       child: new StatefulBuilder(
@@ -255,18 +255,18 @@
     ));
 
     expect(value, equals(0.0));
-    
+
     final Offset bottomRight = tester.getBottomRight(find.byKey(sliderKey));
     const double unit = CupertinoThumbPainter.radius;
     const double delta = 3.0 * unit;
     await tester.dragFrom(bottomRight - const Offset(unit, unit), const Offset(-delta, 0.0));
-    
+
     final Size size = tester.getSize(find.byKey(sliderKey));
     final double finalValue = delta / (size.width - 2.0 * (8.0 + CupertinoThumbPainter.radius));
     expect(startValue, equals(0.0));
     expect(value, equals(finalValue));
     expect(endValue, equals(finalValue));
-    
+
     await tester.pump(); // No animation should start.
     // Check the transientCallbackCount before tearing down the widget to ensure
     // that no animation is running.
diff --git a/packages/flutter/test/foundation/licenses_test.dart b/packages/flutter/test/foundation/licenses_test.dart
index 5a0d06d..d19fbd4 100644
--- a/packages/flutter/test/foundation/licenses_test.dart
+++ b/packages/flutter/test/foundation/licenses_test.dart
@@ -34,10 +34,10 @@
  H
  H]
 \u0020\u0020
-IJ
-K
+I\u000cJ
+\u000cK
 K
-
+\u000c
 L
 L L
 L  L
diff --git a/packages/flutter/test/material/scaffold_test.dart b/packages/flutter/test/material/scaffold_test.dart
index 36c2508..9995153 100644
--- a/packages/flutter/test/material/scaffold_test.dart
+++ b/packages/flutter/test/material/scaffold_test.dart
@@ -133,7 +133,7 @@
     expect(tester.binding.transientCallbackCount, 0);
 
     await tester.pumpWidget(new MaterialApp(home: const Scaffold()));
-    
+
     expect(tester.binding.transientCallbackCount, 0);
 
     await tester.pumpWidget(new MaterialApp(home: const Scaffold(
diff --git a/packages/flutter/test/painting/gradient_test.dart b/packages/flutter/test/painting/gradient_test.dart
index 9687557..0ab6f42 100644
--- a/packages/flutter/test/painting/gradient_test.dart
+++ b/packages/flutter/test/painting/gradient_test.dart
@@ -251,9 +251,9 @@
     );
 
     final RadialGradient actual = RadialGradient.lerp(testGradient1, testGradient2, 0.5);
-    
+
     expect(actual.focal, isNull);
-    
+
     expect(actual, const RadialGradient(
       center: const Alignment(0.0, -1.0),
       radius: 15.0,
@@ -322,7 +322,7 @@
       ],
     ));
   });
-  
+
   test('SweepGradient lerp test', () {
     const SweepGradient testGradient1 = const SweepGradient(
       center: Alignment.topLeft,
@@ -409,9 +409,9 @@
         const Color(0xff666666),
       ],
     );
-    
+
     final SweepGradient actual = testGradient.scale(0.5);
-    
+
     expect(actual, const SweepGradient(
       center: Alignment.topLeft,
       startAngle: 0.0,
diff --git a/packages/flutter/test/painting/text_style_test.dart b/packages/flutter/test/painting/text_style_test.dart
index 71f80e4..6ef5d29 100644
--- a/packages/flutter/test/painting/text_style_test.dart
+++ b/packages/flutter/test/painting/text_style_test.dart
@@ -252,7 +252,7 @@
     expect(TextStyle.lerp(redTextStyle, bluePaintTextStyle, .25).color, isNull);
     expect(TextStyle.lerp(redTextStyle, bluePaintTextStyle, .25).foreground.color, red);
     expect(TextStyle.lerp(redTextStyle, bluePaintTextStyle, .75).foreground.color, blue);
-    
+
     expect(TextStyle.lerp(redPaintTextStyle, bluePaintTextStyle, .25).color, isNull);
     expect(TextStyle.lerp(redPaintTextStyle, bluePaintTextStyle, .25).foreground.color, red);
     expect(TextStyle.lerp(redPaintTextStyle, bluePaintTextStyle, .75).foreground.color, blue);
diff --git a/packages/flutter/test/scheduler/ticker_test.dart b/packages/flutter/test/scheduler/ticker_test.dart
index fbaf01f..9fd788c 100644
--- a/packages/flutter/test/scheduler/ticker_test.dart
+++ b/packages/flutter/test/scheduler/ticker_test.dart
@@ -107,7 +107,7 @@
   testWidgets('Ticker can be created before application unpauses', (WidgetTester tester) async {
     final ByteData pausedMessage = const StringCodec().encodeMessage('AppLifecycleState.paused');
     await BinaryMessages.handlePlatformMessage('flutter/lifecycle', pausedMessage, (_) {});
-    
+
     int tickCount = 0;
     void handleTick(Duration duration) {
       tickCount += 1;
@@ -126,7 +126,7 @@
 
     final ByteData resumedMessage = const StringCodec().encodeMessage('AppLifecycleState.resumed');
     await BinaryMessages.handlePlatformMessage('flutter/lifecycle', resumedMessage, (_) {});
-    
+
     await tester.pump(const Duration(milliseconds: 10));
 
     expect(tickCount, equals(1));
diff --git a/packages/flutter/test/services/fake_platform_views.dart b/packages/flutter/test/services/fake_platform_views.dart
index 6c1f7e9..e6c5496 100644
--- a/packages/flutter/test/services/fake_platform_views.dart
+++ b/packages/flutter/test/services/fake_platform_views.dart
@@ -73,7 +73,7 @@
         code: 'error',
         message: 'Trying to dispose a platform view with unknown id: $id',
       );
-    
+
     _views.remove(id);
     return new Future<Null>.sync(() => null);
   }
diff --git a/packages/flutter/test/widgets/draggable_test.dart b/packages/flutter/test/widgets/draggable_test.dart
index 4e2345f..c0e47b3 100644
--- a/packages/flutter/test/widgets/draggable_test.dart
+++ b/packages/flutter/test/widgets/draggable_test.dart
@@ -716,7 +716,7 @@
       expect(tester.getTopLeft(find.text('V')), thirdWidgetLocation);
     });
   });
- 
+
 
   testWidgets('Drag and drop - onDraggableCanceled not called if dropped on accepting target', (WidgetTester tester) async {
     final List<int> accepted = <int>[];
@@ -1690,7 +1690,7 @@
           ],
         ),
     ));
-    
+
     expect(semantics, hasSemantics(
       new TestSemantics.root(
         children: <TestSemantics>[
@@ -1750,7 +1750,7 @@
     await tester.pump();
     await gesture.moveTo(secondLocation);
     await tester.pump();
-    
+
     expect(semantics, hasSemantics(
       new TestSemantics.root(
         children: <TestSemantics>[
diff --git a/packages/flutter/test/widgets/set_state_5_test.dart b/packages/flutter/test/widgets/set_state_5_test.dart
index 887dd08..d9b3583 100644
--- a/packages/flutter/test/widgets/set_state_5_test.dart
+++ b/packages/flutter/test/widgets/set_state_5_test.dart
@@ -17,7 +17,7 @@
      _count = 1;
     });
   }
-  
+
   int _count = 0;
 
   @override
diff --git a/packages/flutter/test/widgets/spacer_test.dart b/packages/flutter/test/widgets/spacer_test.dart
index 2c0e010..332b421 100644
--- a/packages/flutter/test/widgets/spacer_test.dart
+++ b/packages/flutter/test/widgets/spacer_test.dart
@@ -52,7 +52,7 @@
     expect(spacer4Rect.size.width, spacer3Rect.size.width * 2.0);
     expect(spacer4Rect.left, closeTo(10.0, 0.1));
   });
-  
+
   testWidgets('Spacer takes up space.', (WidgetTester tester) async {
     await tester.pumpWidget(new UnconstrainedBox(
       constrainedAxis: Axis.vertical,
diff --git a/packages/flutter_driver/lib/src/common/find.dart b/packages/flutter_driver/lib/src/common/find.dart
index 841d301..aadf3fd 100644
--- a/packages/flutter_driver/lib/src/common/find.dart
+++ b/packages/flutter_driver/lib/src/common/find.dart
@@ -259,7 +259,7 @@
 ///
 /// If the object returned by the finder does not have its own semantics node,
 /// then the semantics node of the first ancestor is returned instead.
-/// 
+///
 /// Throws an error if a finder returns multiple objects or if there are no
 /// semantics nodes.
 ///
diff --git a/packages/flutter_driver/lib/src/driver/driver.dart b/packages/flutter_driver/lib/src/driver/driver.dart
index daf8153..deb6335 100644
--- a/packages/flutter_driver/lib/src/driver/driver.dart
+++ b/packages/flutter_driver/lib/src/driver/driver.dart
@@ -573,10 +573,10 @@
 
   /// Retrieves the semantics node id for the object returned by `finder`, or
   /// the nearest ancestor with a semantics node.
-  /// 
+  ///
   /// Throws an error if `finder` returns multiple elements or a semantics
   /// node is not found.
-  /// 
+  ///
   /// Semantics must be enabled to use this method, either using a platform
   /// specific shell command or [setSemantics].
   Future<int> getSemanticsId(SerializableFinder finder, { Duration timeout = _kShortTimeout}) async {
diff --git a/packages/flutter_driver/lib/src/extension/extension.dart b/packages/flutter_driver/lib/src/extension/extension.dart
index c87a9a3..78584c2 100644
--- a/packages/flutter_driver/lib/src/extension/extension.dart
+++ b/packages/flutter_driver/lib/src/extension/extension.dart
@@ -63,7 +63,7 @@
 ///
 /// Optionally you can pass a [DataHandler] callback. It will be called if the
 /// test calls [FlutterDriver.requestData].
-/// 
+///
 /// `slienceErrors` will prevent exceptions from being logged. This is useful
 /// for tests where exceptions are expected. Defaults to false. Any errors
 /// will still be returned in the `response` field of the result json along
diff --git a/packages/flutter_driver/test/src/extension_test.dart b/packages/flutter_driver/test/src/extension_test.dart
index 3fa1821..16a77d5 100644
--- a/packages/flutter_driver/test/src/extension_test.dart
+++ b/packages/flutter_driver/test/src/extension_test.dart
@@ -81,10 +81,10 @@
       final SemanticsHandle semantics = RendererBinding.instance.pipelineOwner.ensureSemantics();
       await tester.pumpWidget(
         const Text('hello', textDirection: TextDirection.ltr));
-      
+
       final Map<String, Object> arguments = new GetSemanticsId(new ByText('hello')).serialize();
       final GetSemanticsIdResult result = GetSemanticsIdResult.fromJson((await extension.call(arguments))['response']);
-  
+
       expect(result.id, 1);
       semantics.dispose();
     });
@@ -92,10 +92,10 @@
     testWidgets('throws state error if no data is found', (WidgetTester tester) async {
       await tester.pumpWidget(
         const Text('hello', textDirection: TextDirection.ltr));
-      
+
       final Map<String, Object> arguments = new GetSemanticsId(new ByText('hello')).serialize();
       final Map<String, Object> response = await extension.call(arguments);
-  
+
       expect(response['isError'], true);
       expect(response['response'], contains('Bad state: No semantics data found'));
     });
@@ -111,10 +111,10 @@
           ]),
         ),
       );
-      
+
       final Map<String, Object> arguments = new GetSemanticsId(new ByText('hello')).serialize();
       final Map<String, Object> response = await extension.call(arguments);
-  
+
       expect(response['isError'], true);
       expect(response['response'], contains('Bad state: Too many elements'));
       semantics.dispose();
diff --git a/packages/flutter_test/lib/src/widget_tester.dart b/packages/flutter_test/lib/src/widget_tester.dart
index 8b75ef3..73fa28f 100644
--- a/packages/flutter_test/lib/src/widget_tester.dart
+++ b/packages/flutter_test/lib/src/widget_tester.dart
@@ -616,7 +616,7 @@
   }
 
   /// Attempts to find the [SemanticsData] of first result from `finder`.
-  /// 
+  ///
   /// If the object identified by the finder doesn't own it's semantic node,
   /// this will return the semantics data of the first ancestor with semantics
   /// data. The ancestor's semantic data will include the child's as well as
diff --git a/packages/flutter_test/test/finders_test.dart b/packages/flutter_test/test/finders_test.dart
index 625c86b..50f54fc 100644
--- a/packages/flutter_test/test/finders_test.dart
+++ b/packages/flutter_test/test/finders_test.dart
@@ -14,7 +14,7 @@
       ));
       expect(find.text('test'), findsOneWidget);
     });
-  
+
     testWidgets('finds Text.rich widgets', (WidgetTester tester) async {
       await tester.pumpWidget(_boilerplate(
         const Text.rich(
diff --git a/packages/flutter_test/test/widget_tester_test.dart b/packages/flutter_test/test/widget_tester_test.dart
index 31a7693..cf35c98 100644
--- a/packages/flutter_test/test/widget_tester_test.dart
+++ b/packages/flutter_test/test/widget_tester_test.dart
@@ -564,7 +564,7 @@
           throwsA(isInstanceOf<StateError>()));
       semanticsHandle.dispose();
     });
-    
+
     testWidgets('Returns the correct SemanticsData', (WidgetTester tester) async {
       final SemanticsHandle semanticsHandle = tester.ensureSemantics();
 
diff --git a/packages/flutter_tools/lib/src/android/android_sdk.dart b/packages/flutter_tools/lib/src/android/android_sdk.dart
index d547cef..0726a6f 100644
--- a/packages/flutter_tools/lib/src/android/android_sdk.dart
+++ b/packages/flutter_tools/lib/src/android/android_sdk.dart
@@ -70,7 +70,7 @@
 
 /// Locate the path for storing AVD emulator images. Returns null if none found.
 String getAvdPath() {
-  
+
   final List<String> searchPaths = <String>[
     platform.environment['ANDROID_AVD_HOME']
   ];
diff --git a/packages/flutter_tools/lib/src/commands/daemon.dart b/packages/flutter_tools/lib/src/commands/daemon.dart
index 0d1a3d5..202fbf2 100644
--- a/packages/flutter_tools/lib/src/commands/daemon.dart
+++ b/packages/flutter_tools/lib/src/commands/daemon.dart
@@ -374,7 +374,7 @@
         ipv6: ipv6,
       );
     }
-    
+
     return launch(
         runner,
         ({ Completer<DebugConnectionInfo> connectionInfoCompleter,
diff --git a/packages/flutter_tools/lib/src/crash_reporting.dart b/packages/flutter_tools/lib/src/crash_reporting.dart
index b063dd1..1bf1cd1 100644
--- a/packages/flutter_tools/lib/src/crash_reporting.dart
+++ b/packages/flutter_tools/lib/src/crash_reporting.dart
@@ -37,9 +37,9 @@
 const String _kStackTraceFilename = 'stacktrace_file';
 
 /// Sends crash reports to Google.
-/// 
+///
 /// There are two ways to override the behavior of this class:
-/// 
+///
 /// * Define a `FLUTTER_CRASH_SERVER_BASE_URL` environment variable that points
 ///   to a custom crash reporting server. This is useful if your development
 ///   environment is behind a firewall and unable to send crash reports to
diff --git a/packages/flutter_tools/lib/src/ios/code_signing.dart b/packages/flutter_tools/lib/src/ios/code_signing.dart
index be172f8..0da85d2 100644
--- a/packages/flutter_tools/lib/src/ios/code_signing.dart
+++ b/packages/flutter_tools/lib/src/ios/code_signing.dart
@@ -20,7 +20,7 @@
 ════════════════════════════════════════════════════════════════════════════════
 No valid code signing certificates were found
 You can connect to your Apple Developer account by signing in with your Apple ID
-in Xcode and create an iOS Development Certificate as well as a Provisioning 
+in Xcode and create an iOS Development Certificate as well as a Provisioning\u0020
 Profile for your project by:
 $fixWithDevelopmentTeamInstruction
   5- Trust your newly created Development Certificate on your iOS device
@@ -37,12 +37,12 @@
 /// The user did iOS development but never on this project and/or device.
 const String noProvisioningProfileInstruction = '''
 ════════════════════════════════════════════════════════════════════════════════
-No Provisioning Profile was found for your project's Bundle Identifier or your 
-device. You can create a new Provisioning Profile for your project in Xcode for 
+No Provisioning Profile was found for your project's Bundle Identifier or your\u0020
+device. You can create a new Provisioning Profile for your project in Xcode for\u0020
 your team by:
 $fixWithDevelopmentTeamInstruction
 
-It's also possible that a previously installed app with the same Bundle 
+It's also possible that a previously installed app with the same Bundle\u0020
 Identifier was signed with a different certificate.
 
 For more information, please visit:
@@ -55,7 +55,7 @@
 /// Couldn't auto sign the app but can likely solved by retracing the signing flow in Xcode.
 const String noDevelopmentTeamInstruction = '''
 ════════════════════════════════════════════════════════════════════════════════
-Building a deployable iOS app requires a selected Development Team with a 
+Building a deployable iOS app requires a selected Development Team with a\u0020
 Provisioning Profile. Please ensure that a Development Team is selected by:
 $fixWithDevelopmentTeamInstruction
 
@@ -69,7 +69,7 @@
        open ios/Runner.xcworkspace
   2- Select the 'Runner' project in the navigator then the 'Runner' target
      in the project settings
-  3- In the 'General' tab, make sure a 'Development Team' is selected. 
+  3- In the 'General' tab, make sure a 'Development Team' is selected.\u0020
      You may need to:
          - Log in with your Apple ID in Xcode first
          - Ensure you have a valid unique Bundle ID
diff --git a/packages/flutter_tools/test/cache_test.dart b/packages/flutter_tools/test/cache_test.dart
index 0b227e5..a1f8044 100644
--- a/packages/flutter_tools/test/cache_test.dart
+++ b/packages/flutter_tools/test/cache_test.dart
@@ -115,7 +115,7 @@
 
 class MockFileSystem extends ForwardingFileSystem {
   MockFileSystem() : super(new MemoryFileSystem());
-    
+
   @override
   File file(dynamic path) {
     return new MockFile();
diff --git a/packages/flutter_tools/test/commands/doctor_test.dart b/packages/flutter_tools/test/commands/doctor_test.dart
index 0b19330..25c2a4e 100644
--- a/packages/flutter_tools/test/commands/doctor_test.dart
+++ b/packages/flutter_tools/test/commands/doctor_test.dart
@@ -325,7 +325,7 @@
   static final String validInstall = fs.path.join('test', 'data', 'vscode', 'application');
   static final String validExtensions = fs.path.join('test', 'data', 'vscode', 'extensions');
   static final String missingExtensions = fs.path.join('test', 'data', 'vscode', 'notExtensions');
-  VsCodeValidatorTestTargets._(String installDirectory, String extensionDirectory, {String edition}) 
+  VsCodeValidatorTestTargets._(String installDirectory, String extensionDirectory, {String edition})
     : super(new VsCode.fromDirectory(installDirectory, extensionDirectory, edition: edition));
 
   static VsCodeValidatorTestTargets get installedWithExtension =>
diff --git a/packages/flutter_tools/test/integration/flutter_attach.dart b/packages/flutter_tools/test/integration/flutter_attach.dart
index d24314d..04e8ea9 100644
--- a/packages/flutter_tools/test/integration/flutter_attach.dart
+++ b/packages/flutter_tools/test/integration/flutter_attach.dart
@@ -36,7 +36,7 @@
     testUsingContext('can hot reload', () async {
       await _flutterRun.run(withDebugger: true);
       await _flutterAttach.attach(_flutterRun.vmServicePort);
-      
+
       await _flutterAttach.hotReload();
     });
   }, timeout: const Timeout.factor(3));
diff --git a/packages/flutter_tools/test/integration/test_data/basic_project.dart b/packages/flutter_tools/test/integration/test_data/basic_project.dart
index 3df2d30..d8cf9e4 100644
--- a/packages/flutter_tools/test/integration/test_data/basic_project.dart
+++ b/packages/flutter_tools/test/integration/test_data/basic_project.dart
@@ -19,9 +19,9 @@
   @override
   final String main = r'''
   import 'package:flutter/material.dart';
-  
+
   void main() => runApp(new MyApp());
-  
+
   class MyApp extends StatelessWidget {
     @override
     Widget build(BuildContext context) {
diff --git a/packages/flutter_tools/test/integration/test_driver.dart b/packages/flutter_tools/test/integration/test_driver.dart
index c59fc9e..4390fe7 100644
--- a/packages/flutter_tools/test/integration/test_driver.dart
+++ b/packages/flutter_tools/test/integration/test_driver.dart
@@ -78,7 +78,7 @@
   Future<void> _setupProcess(List<String> args, {bool withDebugger = false}) async {
     final String flutterBin = fs.path.join(getFlutterRoot(), 'bin', 'flutter');
     _debugPrint('Spawning flutter $args in ${_projectFolder.path}');
-    
+
     const ProcessManager _processManager = const LocalProcessManager();
     _proc = await _processManager.start(
         <String>[flutterBin]
@@ -103,7 +103,7 @@
     // script).
     final Map<String, dynamic> connected = await _waitFor(event: 'daemon.connected');
     _procPid = connected['params']['pid'];
-    
+
     // Set this up now, but we don't wait it yet. We want to make sure we don't
     // miss it while waiting for debugPort below.
     final Future<Map<String, dynamic>> started = _waitFor(event: 'app.started',
@@ -126,7 +126,7 @@
 
       // Because we start paused, resume so the app is in a "running" state as
       // expected by tests. Tests will reload/restart as required if they need
-      // to hit breakpoints, etc. 
+      // to hit breakpoints, etc.
       await waitForPause();
       await resume(wait: false);
     }
@@ -266,7 +266,7 @@
         response.complete(json);
       }
     });
-    
+
     return _timeoutWithMessages(() => response.future,
             timeout: timeout,
             message: event != null
@@ -285,7 +285,7 @@
       messages.writeln('[+ ${ms.toString().padLeft(5)}] $m');
     }
     final StreamSubscription<String> sub = _allMessages.stream.listen(logMessage);
-    
+
     return f().timeout(timeout ?? defaultTimeout, onTimeout: () {
       logMessage('<timed out>');
       throw '$message\nReceived:\n${messages.toString()}';