add missing type parameter on methods (#22096)
diff --git a/packages/flutter/lib/src/cupertino/button.dart b/packages/flutter/lib/src/cupertino/button.dart index 046cc11..323d2c6 100644 --- a/packages/flutter/lib/src/cupertino/button.dart +++ b/packages/flutter/lib/src/cupertino/button.dart
@@ -191,7 +191,7 @@ final Future<Null> ticker = _buttonHeldDown ? _animationController.animateTo(1.0, duration: kFadeOutDuration) : _animationController.animateTo(0.0, duration: kFadeInDuration); - ticker.then((Null value) { + ticker.then<void>((Null value) { if (mounted && wasHeldDown != _buttonHeldDown) _animate(); });
diff --git a/packages/flutter/lib/src/cupertino/dialog.dart b/packages/flutter/lib/src/cupertino/dialog.dart index 092beb0..4f5c7ce 100644 --- a/packages/flutter/lib/src/cupertino/dialog.dart +++ b/packages/flutter/lib/src/cupertino/dialog.dart
@@ -1564,7 +1564,7 @@ ) : Rect.zero; - final List<Rect> pressedButtonRects = _pressedButtons.map((RenderBox pressedButton) { + final List<Rect> pressedButtonRects = _pressedButtons.map<Rect>((RenderBox pressedButton) { final MultiChildLayoutParentData buttonParentData = pressedButton.parentData; return Rect.fromLTWH(
diff --git a/packages/flutter/lib/src/foundation/isolates.dart b/packages/flutter/lib/src/foundation/isolates.dart index 603e052..7eaf618 100644 --- a/packages/flutter/lib/src/foundation/isolates.dart +++ b/packages/flutter/lib/src/foundation/isolates.dart
@@ -50,7 +50,7 @@ Timeline.startSync('$debugLabel: start', flow: flow); final ReceivePort resultPort = ReceivePort(); Timeline.finishSync(); - final Isolate isolate = await Isolate.spawn( + final Isolate isolate = await Isolate.spawn<_IsolateConfiguration<Q, R>>( _spawn, _IsolateConfiguration<Q, R>( callback,
diff --git a/packages/flutter/lib/src/foundation/print.dart b/packages/flutter/lib/src/foundation/print.dart index 2e8acd1..434dbb2 100644 --- a/packages/flutter/lib/src/foundation/print.dart +++ b/packages/flutter/lib/src/foundation/print.dart
@@ -32,7 +32,7 @@ /// Used by tests. void debugPrintSynchronously(String message, { int wrapWidth }) { if (wrapWidth != null) { - print(message.split('\n').expand((String line) => debugWordWrap(line, wrapWidth)).join('\n')); + print(message.split('\n').expand<String>((String line) => debugWordWrap(line, wrapWidth)).join('\n')); } else { print(message); } @@ -42,7 +42,7 @@ /// messages on platforms that rate-limit their logging (for example, Android). void debugPrintThrottled(String message, { int wrapWidth }) { if (wrapWidth != null) { - _debugPrintBuffer.addAll(message.split('\n').expand((String line) => debugWordWrap(line, wrapWidth))); + _debugPrintBuffer.addAll(message.split('\n').expand<String>((String line) => debugWordWrap(line, wrapWidth))); } else { _debugPrintBuffer.addAll(message.split('\n')); }
diff --git a/packages/flutter/lib/src/material/animated_icons/animated_icons.dart b/packages/flutter/lib/src/material/animated_icons/animated_icons.dart index 1077544..6284d47 100644 --- a/packages/flutter/lib/src/material/animated_icons/animated_icons.dart +++ b/packages/flutter/lib/src/material/animated_icons/animated_icons.dart
@@ -195,7 +195,7 @@ final List<double> opacities; void paint(ui.Canvas canvas, Color color, _UiPathFactory uiPathFactory, double progress) { - final double opacity = _interpolate(opacities, progress, lerpDouble); + final double opacity = _interpolate<double>(opacities, progress, lerpDouble); final ui.Paint paint = ui.Paint() ..style = PaintingStyle.fill ..color = color.withOpacity(color.opacity * opacity); @@ -227,7 +227,7 @@ @override void apply(Path path, double progress) { - final Offset offset = _interpolate(points, progress, Offset.lerp); + final Offset offset = _interpolate<Offset>(points, progress, Offset.lerp); path.moveTo(offset.dx, offset.dy); } } @@ -241,9 +241,9 @@ @override void apply(Path path, double progress) { - final Offset controlPoint1 = _interpolate(controlPoints1, progress, Offset.lerp); - final Offset controlPoint2 = _interpolate(controlPoints2, progress, Offset.lerp); - final Offset targetPoint = _interpolate(targetPoints, progress, Offset.lerp); + final Offset controlPoint1 = _interpolate<Offset>(controlPoints1, progress, Offset.lerp); + final Offset controlPoint2 = _interpolate<Offset>(controlPoints2, progress, Offset.lerp); + final Offset targetPoint = _interpolate<Offset>(targetPoints, progress, Offset.lerp); path.cubicTo( controlPoint1.dx, controlPoint1.dy, controlPoint2.dx, controlPoint2.dy, @@ -260,7 +260,7 @@ @override void apply(Path path, double progress) { - final Offset point = _interpolate(points, progress, Offset.lerp); + final Offset point = _interpolate<Offset>(points, progress, Offset.lerp); path.lineTo(point.dx, point.dy); } }
diff --git a/packages/flutter/lib/src/material/bottom_navigation_bar.dart b/packages/flutter/lib/src/material/bottom_navigation_bar.dart index 1116501..9024b53 100644 --- a/packages/flutter/lib/src/material/bottom_navigation_bar.dart +++ b/packages/flutter/lib/src/material/bottom_navigation_bar.dart
@@ -582,7 +582,7 @@ double weightSum(Iterable<Animation<double>> animations) { // We're adding flex values instead of animation values to produce correct // ratios. - return animations.map(state._evaluateFlex).fold(0.0, (double sum, double value) => sum + value); + return animations.map<double>(state._evaluateFlex).fold<double>(0.0, (double sum, double value) => sum + value); } final double allWeights = weightSum(state._animations);
diff --git a/packages/flutter/lib/src/material/mergeable_material.dart b/packages/flutter/lib/src/material/mergeable_material.dart index 5e333a2..757b6d3 100644 --- a/packages/flutter/lib/src/material/mergeable_material.dart +++ b/packages/flutter/lib/src/material/mergeable_material.dart
@@ -278,10 +278,10 @@ void didUpdateWidget(MergeableMaterial oldWidget) { super.didUpdateWidget(oldWidget); - final Set<LocalKey> oldKeys = oldWidget.children.map( + final Set<LocalKey> oldKeys = oldWidget.children.map<LocalKey>( (MergeableMaterialItem child) => child.key ).toSet(); - final Set<LocalKey> newKeys = widget.children.map( + final Set<LocalKey> newKeys = widget.children.map<LocalKey>( (MergeableMaterialItem child) => child.key ).toSet(); final Set<LocalKey> newOnly = newKeys.difference(oldKeys);
diff --git a/packages/flutter/lib/src/material/user_accounts_drawer_header.dart b/packages/flutter/lib/src/material/user_accounts_drawer_header.dart index 7c37659..3ca9773 100644 --- a/packages/flutter/lib/src/material/user_accounts_drawer_header.dart +++ b/packages/flutter/lib/src/material/user_accounts_drawer_header.dart
@@ -30,7 +30,7 @@ top: 0.0, end: 0.0, child: Row( - children: (otherAccountsPictures ?? <Widget>[]).take(3).map((Widget picture) { + children: (otherAccountsPictures ?? <Widget>[]).take(3).map<Widget>((Widget picture) { return Padding( padding: const EdgeInsetsDirectional.only(start: 8.0), child: Semantics(
diff --git a/packages/flutter/lib/src/painting/image_resolution.dart b/packages/flutter/lib/src/painting/image_resolution.dart index 7b9bb82..2061de0 100644 --- a/packages/flutter/lib/src/painting/image_resolution.dart +++ b/packages/flutter/lib/src/painting/image_resolution.dart
@@ -223,7 +223,7 @@ final Iterable<String> keys = parsedJson.keys; final Map<String, List<String>> parsedManifest = Map<String, List<String>>.fromIterables(keys, - keys.map((String key) => List<String>.from(parsedJson[key]))); + keys.map<List<String>>((String key) => List<String>.from(parsedJson[key]))); // TODO(ianh): convert that data structure to the right types. return SynchronousFuture<Map<String, List<String>>>(parsedManifest); }
diff --git a/packages/flutter/lib/src/painting/text_span.dart b/packages/flutter/lib/src/painting/text_span.dart index f2a08d5..55a8f15 100644 --- a/packages/flutter/lib/src/painting/text_span.dart +++ b/packages/flutter/lib/src/painting/text_span.dart
@@ -355,7 +355,7 @@ List<DiagnosticsNode> debugDescribeChildren() { if (children == null) return const <DiagnosticsNode>[]; - return children.map((TextSpan child) { + return children.map<DiagnosticsNode>((TextSpan child) { if (child != null) { return child.toDiagnosticsNode(); } else {
diff --git a/packages/flutter/lib/src/rendering/custom_layout.dart b/packages/flutter/lib/src/rendering/custom_layout.dart index 79f0577..1b44d04 100644 --- a/packages/flutter/lib/src/rendering/custom_layout.dart +++ b/packages/flutter/lib/src/rendering/custom_layout.dart
@@ -214,7 +214,7 @@ if (_debugChildrenNeedingLayout.length > 1) { throw FlutterError( 'The $this custom multichild layout delegate forgot to lay out the following children:\n' - ' ${_debugChildrenNeedingLayout.map(_debugDescribeChild).join("\n ")}\n' + ' ${_debugChildrenNeedingLayout.map<String>(_debugDescribeChild).join("\n ")}\n' 'Each child must be laid out exactly once.' ); } else {
diff --git a/packages/flutter/lib/src/rendering/layer.dart b/packages/flutter/lib/src/rendering/layer.dart index 2c12b3e..c018819 100644 --- a/packages/flutter/lib/src/rendering/layer.dart +++ b/packages/flutter/lib/src/rendering/layer.dart
@@ -1140,7 +1140,7 @@ @override S find<S>(Offset regionOffset) { - return super.find(regionOffset - offset); + return super.find<S>(regionOffset - offset); } @override
diff --git a/packages/flutter/lib/src/rendering/platform_view.dart b/packages/flutter/lib/src/rendering/platform_view.dart index dc87c77..bf03b12 100644 --- a/packages/flutter/lib/src/rendering/platform_view.dart +++ b/packages/flutter/lib/src/rendering/platform_view.dart
@@ -382,8 +382,8 @@ eventTime: event.timeStamp.inMilliseconds, action: action, pointerCount: pointerPositions.length, - pointerProperties: pointers.map((int i) => pointerProperties[i]).toList(), - pointerCoords: pointers.map((int i) => pointerPositions[i]).toList(), + pointerProperties: pointers.map<AndroidPointerProperties>((int i) => pointerProperties[i]).toList(), + pointerCoords: pointers.map<AndroidPointerCoords>((int i) => pointerPositions[i]).toList(), metaState: 0, buttonState: 0, xPrecision: 1.0,
diff --git a/packages/flutter/lib/src/scheduler/ticker.dart b/packages/flutter/lib/src/scheduler/ticker.dart index a943a91..cd4d77b 100644 --- a/packages/flutter/lib/src/scheduler/ticker.dart +++ b/packages/flutter/lib/src/scheduler/ticker.dart
@@ -389,7 +389,7 @@ callback(); return null; } - orCancel.then(thunk, onError: thunk); + orCancel.then<Null>(thunk, onError: thunk); } /// A future that resolves when this future resolves or throws when the ticker
diff --git a/packages/flutter/lib/src/semantics/semantics.dart b/packages/flutter/lib/src/semantics/semantics.dart index 6d956ba..9837cfb 100644 --- a/packages/flutter/lib/src/semantics/semantics.dart +++ b/packages/flutter/lib/src/semantics/semantics.dart
@@ -1844,12 +1844,12 @@ if (scale != null) { description = '$rect scaled by ${scale.toStringAsFixed(1)}x'; } else if (transform != null && !MatrixUtils.isIdentity(transform)) { - final String matrix = transform.toString().split('\n').take(4).map((String line) => line.substring(4)).join('; '); + final String matrix = transform.toString().split('\n').take(4).map<String>((String line) => line.substring(4)).join('; '); description = '$rect with transform [$matrix]'; } properties.add(DiagnosticsProperty<Rect>('rect', rect, description: description, showName: false)); } - final List<String> actions = _actions.keys.map((SemanticsAction action) => describeEnum(action)).toList()..sort(); + final List<String> actions = _actions.keys.map<String>((SemanticsAction action) => describeEnum(action)).toList()..sort(); final List<String> customSemanticsActions = _customSemanticsActions.keys .map<String>((CustomSemanticsAction action) => action.label) .toList(); @@ -2118,7 +2118,7 @@ sortedIds.add(id); } - startNodes.map((SemanticsNode node) => node.id).forEach(search); + startNodes.map<int>((SemanticsNode node) => node.id).forEach(search); return sortedIds.map<SemanticsNode>((int id) => nodeMap[id]).toList().reversed.toList(); } }
diff --git a/packages/flutter/lib/src/services/platform_views.dart b/packages/flutter/lib/src/services/platform_views.dart index e015a98..0efb9c4 100644 --- a/packages/flutter/lib/src/services/platform_views.dart +++ b/packages/flutter/lib/src/services/platform_views.dart
@@ -328,8 +328,8 @@ eventTime, action, pointerCount, - pointerProperties.map((AndroidPointerProperties p) => p._asList()).toList(), - pointerCoords.map((AndroidPointerCoords p) => p._asList()).toList(), + pointerProperties.map<List<int>>((AndroidPointerProperties p) => p._asList()).toList(), + pointerCoords.map<List<double>>((AndroidPointerCoords p) => p._asList()).toList(), metaState, buttonState, xPrecision,
diff --git a/packages/flutter/lib/src/services/text_formatter.dart b/packages/flutter/lib/src/services/text_formatter.dart index 1eec81c..e421143 100644 --- a/packages/flutter/lib/src/services/text_formatter.dart +++ b/packages/flutter/lib/src/services/text_formatter.dart
@@ -233,7 +233,7 @@ (String substring) { return whitelistedPattern .allMatches(substring) - .map((Match match) => match.group(0)) + .map<String>((Match match) => match.group(0)) .join(); } , );
diff --git a/packages/flutter/lib/src/widgets/image.dart b/packages/flutter/lib/src/widgets/image.dart index 59232c0..91e87ef 100644 --- a/packages/flutter/lib/src/widgets/image.dart +++ b/packages/flutter/lib/src/widgets/image.dart
@@ -98,7 +98,7 @@ } } stream.addListener(listener, onError: errorListener); - completer.future.then((Null _) { stream.removeListener(listener); }); + completer.future.then<void>((Null _) { stream.removeListener(listener); }); return completer.future; }
diff --git a/packages/flutter/lib/src/widgets/list_wheel_scroll_view.dart b/packages/flutter/lib/src/widgets/list_wheel_scroll_view.dart index 78a1af1..cf6c9a5c 100644 --- a/packages/flutter/lib/src/widgets/list_wheel_scroll_view.dart +++ b/packages/flutter/lib/src/widgets/list_wheel_scroll_view.dart
@@ -266,7 +266,7 @@ curve: curve, )); } - await Future.wait(futures); + await Future.wait<void>(futures); } /// Changes which item index is centered in the controlled scroll view.
diff --git a/packages/flutter/lib/src/widgets/localizations.dart b/packages/flutter/lib/src/widgets/localizations.dart index 0b4124c..e960ec3 100644 --- a/packages/flutter/lib/src/widgets/localizations.dart +++ b/packages/flutter/lib/src/widgets/localizations.dart
@@ -74,7 +74,7 @@ return SynchronousFuture<Map<Type, dynamic>>(output); // Some of delegate.load() values were asynchronous futures. Wait for them. - return Future.wait<dynamic>(pendingList.map((_Pending p) => p.futureValue)) + return Future.wait<dynamic>(pendingList.map<Future<dynamic>>((_Pending p) => p.futureValue)) .then<Map<Type, dynamic>>((List<dynamic> values) { assert(values.length == pendingList.length); for (int i = 0; i < values.length; i += 1) { @@ -502,7 +502,7 @@ Map<Type, dynamic> typeToResources; final Future<Map<Type, dynamic>> typeToResourcesFuture = _loadAll(locale, delegates) - .then((Map<Type, dynamic> value) { + .then<Map<Type, dynamic>>((Map<Type, dynamic> value) { return typeToResources = value; }); @@ -516,7 +516,7 @@ // - If we're running at app startup time then defer reporting the first // "useful" frame until after the async load has completed. WidgetsBinding.instance.deferFirstFrameReport(); - typeToResourcesFuture.then((Map<Type, dynamic> value) { + typeToResourcesFuture.then<void>((Map<Type, dynamic> value) { WidgetsBinding.instance.allowFirstFrameReport(); if (!mounted) return;
diff --git a/packages/flutter/lib/src/widgets/routes.dart b/packages/flutter/lib/src/widgets/routes.dart index fd6d3df..9da5253 100644 --- a/packages/flutter/lib/src/widgets/routes.dart +++ b/packages/flutter/lib/src/widgets/routes.dart
@@ -660,6 +660,7 @@ /// /// The given [BuildContext] will be rebuilt if the state of the route changes /// (specifically, if [isCurrent] or [canPop] change value). + @optionalTypeArgs static ModalRoute<T> of<T extends Object>(BuildContext context) { final _ModalScopeStatus widget = context.inheritFromWidgetOfExactType(_ModalScopeStatus); return widget?.route; @@ -1519,7 +1520,7 @@ }) { assert(pageBuilder != null); assert(!barrierDismissible || barrierLabel != null); - return Navigator.of(context, rootNavigator: true).push(_DialogRoute<T>( + return Navigator.of(context, rootNavigator: true).push<T>(_DialogRoute<T>( pageBuilder: pageBuilder, barrierDismissible: barrierDismissible, barrierLabel: barrierLabel,
diff --git a/packages/flutter/lib/src/widgets/scroll_controller.dart b/packages/flutter/lib/src/widgets/scroll_controller.dart index 3c37682..abaf543 100644 --- a/packages/flutter/lib/src/widgets/scroll_controller.dart +++ b/packages/flutter/lib/src/widgets/scroll_controller.dart
@@ -150,7 +150,7 @@ final List<Future<Null>> animations = List<Future<Null>>(_positions.length); for (int i = 0; i < _positions.length; i += 1) animations[i] = _positions[i].animateTo(offset, duration: duration, curve: curve); - return Future.wait<Null>(animations).then((List<Null> _) => null); + return Future.wait<Null>(animations).then<Null>((List<Null> _) => null); } /// Jumps the scroll position from its current value to the given value,
diff --git a/packages/flutter/lib/src/widgets/scrollable.dart b/packages/flutter/lib/src/widgets/scrollable.dart index fac04a3..d64c67a 100644 --- a/packages/flutter/lib/src/widgets/scrollable.dart +++ b/packages/flutter/lib/src/widgets/scrollable.dart
@@ -213,7 +213,7 @@ return Future<Null>.value(); if (futures.length == 1) return futures.single; - return Future.wait<Null>(futures).then((List<Null> _) => null); + return Future.wait<Null>(futures).then<Null>((List<Null> _) => null); } }
diff --git a/packages/flutter/lib/src/widgets/table.dart b/packages/flutter/lib/src/widgets/table.dart index 9023b57..85257f1 100644 --- a/packages/flutter/lib/src/widgets/table.dart +++ b/packages/flutter/lib/src/widgets/table.dart
@@ -141,7 +141,7 @@ : null, super(key: key) { assert(() { - final List<Widget> flatChildren = children.expand((TableRow row) => row.children).toList(growable: false); + final List<Widget> flatChildren = children.expand<Widget>((TableRow row) => row.children).toList(growable: false); if (debugChildrenHaveDuplicateKeys(this, flatChildren)) { throw FlutterError( 'Two or more cells in this Table contain widgets with the same key.\n' @@ -255,7 +255,7 @@ super.mount(parent, newSlot); assert(!_debugWillReattachChildren); assert(() { _debugWillReattachChildren = true; return true; }()); - _children = widget.children.map((TableRow row) { + _children = widget.children.map<_TableElementRow>((TableRow row) { return _TableElementRow( key: row.key, children: row.children.map<Element>((Widget child) { @@ -351,7 +351,7 @@ @override void visitChildren(ElementVisitor visitor) { - for (Element child in _children.expand((_TableElementRow row) => row.children)) { + for (Element child in _children.expand<Element>((_TableElementRow row) => row.children)) { if (!_forgottenChildren.contains(child)) visitor(child); }
diff --git a/packages/flutter/lib/src/widgets/widget_inspector.dart b/packages/flutter/lib/src/widgets/widget_inspector.dart index 9b7a624..941de32 100644 --- a/packages/flutter/lib/src/widgets/widget_inspector.dart +++ b/packages/flutter/lib/src/widgets/widget_inspector.dart
@@ -1262,7 +1262,7 @@ else throw FlutterError('Cannot get parent chain for node of type ${value.runtimeType}'); - return path.map((_DiagnosticsPathNode node) => _pathNodeToJson( + return path.map<Object>((_DiagnosticsPathNode node) => _pathNodeToJson( node, _SerializeConfig(groupName: groupName), )).toList();
diff --git a/packages/flutter/test/cupertino/nav_bar_test.dart b/packages/flutter/test/cupertino/nav_bar_test.dart index 3ccadc0..0855c7e 100644 --- a/packages/flutter/test/cupertino/nav_bar_test.dart +++ b/packages/flutter/test/cupertino/nav_bar_test.dart
@@ -262,7 +262,7 @@ return aParagraph.text.style.fontSize.compareTo(bParagraph.text.style.fontSize); }); - Iterable<double> opacities = titles.map((Element element) { + Iterable<double> opacities = titles.map<double>((Element element) { final RenderAnimatedOpacity renderOpacity = element.ancestorRenderObjectOfType(const TypeMatcher<RenderAnimatedOpacity>()); return renderOpacity.opacity.value; }); @@ -287,7 +287,7 @@ return aParagraph.text.style.fontSize.compareTo(bParagraph.text.style.fontSize); }); - opacities = titles.map((Element element) { + opacities = titles.map<double>((Element element) { final RenderAnimatedOpacity renderOpacity = element.ancestorRenderObjectOfType(const TypeMatcher<RenderAnimatedOpacity>()); return renderOpacity.opacity.value; });
diff --git a/packages/flutter/test/cupertino/route_test.dart b/packages/flutter/test/cupertino/route_test.dart index de721c5..fd706fc 100644 --- a/packages/flutter/test/cupertino/route_test.dart +++ b/packages/flutter/test/cupertino/route_test.dart
@@ -80,7 +80,7 @@ ); }); - final Iterable<double> opacities = titles.map((Element element) { + final Iterable<double> opacities = titles.map<double>((Element element) { final RenderAnimatedOpacity renderOpacity = element.ancestorRenderObjectOfType(const TypeMatcher<RenderAnimatedOpacity>()); return renderOpacity.opacity.value;
diff --git a/packages/flutter/test/foundation/caching_iterable_test.dart b/packages/flutter/test/foundation/caching_iterable_test.dart index f93229d..39e345e 100644 --- a/packages/flutter/test/foundation/caching_iterable_test.dart +++ b/packages/flutter/test/foundation/caching_iterable_test.dart
@@ -63,7 +63,7 @@ expect(integers.first, equals(1)); expect(yieldCount, equals(2)); - expect(evens.map((int i) => i + 1), equals(<int>[3, 5])); + expect(evens.map<int>((int i) => i + 1), equals(<int>[3, 5])); expect(yieldCount, equals(5)); expect(evens, equals(<int>[2, 4])); @@ -95,13 +95,13 @@ final Iterable<int> integers = CachingIterable<int>(range(1, 5).iterator); expect(yieldCount, equals(0)); - final Iterable<int> expanded1 = integers.expand((int i) => <int>[i, i]); + final Iterable<int> expanded1 = integers.expand<int>((int i) => <int>[i, i]); expect(yieldCount, equals(0)); expect(expanded1, equals(<int>[1, 1, 2, 2, 3, 3, 4, 4, 5, 5])); expect(yieldCount, equals(5)); - final Iterable<int> expanded2 = integers.expand((int i) => <int>[i, i]); + final Iterable<int> expanded2 = integers.expand<int>((int i) => <int>[i, i]); expect(yieldCount, equals(5)); expect(expanded2, equals(<int>[1, 1, 2, 2, 3, 3, 4, 4, 5, 5]));
diff --git a/packages/flutter/test/material/app_bar_test.dart b/packages/flutter/test/material/app_bar_test.dart index b22df03..39687a7 100644 --- a/packages/flutter/test/material/app_bar_test.dart +++ b/packages/flutter/test/material/app_bar_test.dart
@@ -33,7 +33,7 @@ expandedHeight: expandedHeight, snap: snap, bottom: TabBar( - tabs: <String>['A','B','C'].map((String t) => Tab(text: 'TAB $t')).toList(), + tabs: <String>['A','B','C'].map<Widget>((String t) => Tab(text: 'TAB $t')).toList(), ), ), SliverToBoxAdapter(
diff --git a/packages/flutter/test/material/colors_test.dart b/packages/flutter/test/material/colors_test.dart index 243fb79..7414363 100644 --- a/packages/flutter/test/material/colors_test.dart +++ b/packages/flutter/test/material/colors_test.dart
@@ -54,12 +54,12 @@ test('Colors swatches do not contain duplicates', () { for (MaterialColor color in Colors.primaries) - expect(primaryKeys.map((int key) => color[key]).toSet().length, primaryKeys.length); + expect(primaryKeys.map<Color>((int key) => color[key]).toSet().length, primaryKeys.length); - expect(primaryKeys.map((int key) => Colors.grey[key]).toSet().length, primaryKeys.length); + expect(primaryKeys.map<Color>((int key) => Colors.grey[key]).toSet().length, primaryKeys.length); for (MaterialAccentColor color in Colors.accents) - expect(accentKeys.map((int key) => color[key]).toSet().length, accentKeys.length); + expect(accentKeys.map<Color>((int key) => color[key]).toSet().length, accentKeys.length); }); test('All color swatch colors are opaque and equal their primary color', () {
diff --git a/packages/flutter/test/material/data_table_test.dart b/packages/flutter/test/material/data_table_test.dart index 88cf8e6..d05561f 100644 --- a/packages/flutter/test/material/data_table_test.dart +++ b/packages/flutter/test/material/data_table_test.dart
@@ -32,7 +32,7 @@ } ), ], - rows: kDesserts.map((Dessert dessert) { + rows: kDesserts.map<DataRow>((Dessert dessert) { return DataRow( key: Key(dessert.name), onSelectChanged: (bool selected) {
diff --git a/packages/flutter/test/material/dropdown_test.dart b/packages/flutter/test/material/dropdown_test.dart index a5fa903..950629d 100644 --- a/packages/flutter/test/material/dropdown_test.dart +++ b/packages/flutter/test/material/dropdown_test.dart
@@ -43,7 +43,7 @@ onChanged: onChanged, isDense: isDense, isExpanded: isExpanded, - items: items.map((String item) { + items: items.map<DropdownMenuItem<String>>((String item) { return DropdownMenuItem<String>( key: ValueKey<String>(item), value: item, @@ -407,7 +407,7 @@ // When isDense is true, the button's height is reduced. The menu items' // heights are not. - final double menuItemHeight = itemBoxes.map((RenderBox box) => box.size.height).reduce(math.max); + final double menuItemHeight = itemBoxes.map<double>((RenderBox box) => box.size.height).reduce(math.max); expect(menuItemHeight, greaterThan(buttonBox.size.height)); for (RenderBox itemBox in itemBoxes) {
diff --git a/packages/flutter/test/material/list_tile_test.dart b/packages/flutter/test/material/list_tile_test.dart index 39ecd20..4102acc 100644 --- a/packages/flutter/test/material/list_tile_test.dart +++ b/packages/flutter/test/material/list_tile_test.dart
@@ -235,7 +235,7 @@ return ListView( children: ListTile.divideTiles( context: context, - tiles: titles.map((String title) => ListTile(title: Text(title))), + tiles: titles.map<Widget>((String title) => ListTile(title: Text(title))), ).toList(), ); },
diff --git a/packages/flutter/test/material/page_selector_test.dart b/packages/flutter/test/material/page_selector_test.dart index 42a1ae0..8a41013 100644 --- a/packages/flutter/test/material/page_selector_test.dart +++ b/packages/flutter/test/material/page_selector_test.dart
@@ -52,7 +52,7 @@ matching: find.byType(TabPageSelectorIndicator) ) ); - return indicators.map((TabPageSelectorIndicator indicator) => indicator.backgroundColor).toList(); + return indicators.map<Color>((TabPageSelectorIndicator indicator) => indicator.backgroundColor).toList(); } void main() {
diff --git a/packages/flutter/test/material/refresh_indicator_test.dart b/packages/flutter/test/material/refresh_indicator_test.dart index ea49f94..4e6e0be 100644 --- a/packages/flutter/test/material/refresh_indicator_test.dart +++ b/packages/flutter/test/material/refresh_indicator_test.dart
@@ -29,7 +29,7 @@ onRefresh: refresh, child: ListView( physics: const AlwaysScrollableScrollPhysics(), - children: <String>['A', 'B', 'C', 'D', 'E', 'F'].map((String item) { + children: <String>['A', 'B', 'C', 'D', 'E', 'F'].map<Widget>((String item) { return SizedBox( height: 200.0, child: Text(item), @@ -61,7 +61,7 @@ width: 600.0, child: ListView( physics: const AlwaysScrollableScrollPhysics(), - children: <String>['A', 'B', 'C', 'D', 'E', 'F'].map((String item) { + children: <String>['A', 'B', 'C', 'D', 'E', 'F'].map<Widget>((String item) { return SizedBox( height: 200.0, child: Text(item), @@ -362,7 +362,7 @@ }, child: ListView( physics: const AlwaysScrollableScrollPhysics(), - children: <String>['A', 'B', 'C', 'D', 'E', 'F'].map((String item) { + children: <String>['A', 'B', 'C', 'D', 'E', 'F'].map<Widget>((String item) { return SizedBox( height: 200.0, child: Text(item), @@ -393,7 +393,7 @@ child: ListView( controller: controller, physics: const AlwaysScrollableScrollPhysics(), - children: <String>['A', 'B', 'C', 'D', 'E', 'F'].map((String item) { + children: <String>['A', 'B', 'C', 'D', 'E', 'F'].map<Widget>((String item) { return SizedBox( height: 200.0, child: Text(item),
diff --git a/packages/flutter/test/material/reorderable_list_test.dart b/packages/flutter/test/material/reorderable_list_test.dart index bc21f79..bab13e2 100644 --- a/packages/flutter/test/material/reorderable_list_test.dart +++ b/packages/flutter/test/material/reorderable_list_test.dart
@@ -39,7 +39,7 @@ width: itemHeight * 10, child: ReorderableListView( header: header, - children: listItems.map(listItemToWidget).toList(), + children: listItems.map<Widget>(listItemToWidget).toList(), scrollDirection: scrollDirection, onReorder: onReorder, ),
diff --git a/packages/flutter/test/material/tabs_test.dart b/packages/flutter/test/material/tabs_test.dart index 81dc96b..5eab066 100644 --- a/packages/flutter/test/material/tabs_test.dart +++ b/packages/flutter/test/material/tabs_test.dart
@@ -78,7 +78,7 @@ length: tabs.length, child: TabBar( key: tabBarKey, - tabs: tabs.map((String tab) => Tab(text: tab)).toList(), + tabs: tabs.map<Widget>((String tab) => Tab(text: tab)).toList(), isScrollable: isScrollable, indicatorColor: indicatorColor, ), @@ -134,7 +134,7 @@ appBar: AppBar( title: const Text('tabs'), bottom: TabBar( - tabs: tabs.map((String tab) => Tab(text: tab)).toList(), + tabs: tabs.map<Widget>((String tab) => Tab(text: tab)).toList(), ), ), body: const TabBarView( @@ -295,7 +295,7 @@ initialIndex: tabs.indexOf(value), length: tabs.length, child: TabBarView( - children: tabs.map((String name) { + children: tabs.map<Widget>((String name) { return StateMarker( child: Text(name) ); @@ -483,11 +483,11 @@ title: const Text('tabs'), bottom: TabBar( isScrollable: true, - tabs: tabs.map((String tab) => Tab(text: tab)).toList(), + tabs: tabs.map<Widget>((String tab) => Tab(text: tab)).toList(), ), ), body: TabBarView( - children: tabs.map((String name) => Text('${index++}')).toList(), + children: tabs.map<Widget>((String name) => Text('${index++}')).toList(), ), ), ), @@ -550,7 +550,7 @@ title: const Text('tabs'), bottom: TabBar( controller: controller, - tabs: tabs.map((String tab) => Tab(text: tab)).toList(), + tabs: tabs.map<Widget>((String tab) => Tab(text: tab)).toList(), ), ), body: TabBarView( @@ -609,7 +609,7 @@ title: const Text('tabs'), bottom: TabBar( controller: controller, - tabs: tabs.map((String tab) => Tab(text: tab)).toList(), + tabs: tabs.map<Widget>((String tab) => Tab(text: tab)).toList(), ), ), body: TabBarView( @@ -1866,7 +1866,7 @@ title: const Text('tabs'), bottom: TabBar( controller: controller, - tabs: tabs.map((String tab) => Tab(text: tab)).toList(), + tabs: tabs.map<Widget>((String tab) => Tab(text: tab)).toList(), ), ), body: TabBarView(
diff --git a/packages/flutter/test/material/text_field_test.dart b/packages/flutter/test/material/text_field_test.dart index 46979c5..0124ede 100644 --- a/packages/flutter/test/material/text_field_test.dart +++ b/packages/flutter/test/material/text_field_test.dart
@@ -145,7 +145,7 @@ } List<TextSelectionPoint> globalize(Iterable<TextSelectionPoint> points, RenderBox box) { - return points.map((TextSelectionPoint point) { + return points.map<TextSelectionPoint>((TextSelectionPoint point) { return TextSelectionPoint( box.localToGlobal(point.point), point.direction,
diff --git a/packages/flutter/test/material/theme_test.dart b/packages/flutter/test/material/theme_test.dart index 8ea5f38..81f060d 100644 --- a/packages/flutter/test/material/theme_test.dart +++ b/packages/flutter/test/material/theme_test.dart
@@ -388,7 +388,7 @@ } for (TextTheme textTheme in <TextTheme>[theme.textTheme, theme.primaryTextTheme, theme.accentTextTheme]) { - for (TextStyle style in extractStyles(textTheme).map((TextStyle style) => _TextStyleProxy(style))) { + for (TextStyle style in extractStyles(textTheme).map<TextStyle>((TextStyle style) => _TextStyleProxy(style))) { expect(style.inherit, false); expect(style.color, isNotNull); expect(style.fontFamily, isNotNull);
diff --git a/packages/flutter/test/scheduler/scheduler_test.dart b/packages/flutter/test/scheduler/scheduler_test.dart index 60c5178..75eb269 100644 --- a/packages/flutter/test/scheduler/scheduler_test.dart +++ b/packages/flutter/test/scheduler/scheduler_test.dart
@@ -94,7 +94,7 @@ test('2 calls to scheduleWarmUpFrame just schedules it once', () { final List<VoidCallback> timerQueueTasks = <VoidCallback>[]; bool taskExecuted = false; - runZoned( + runZoned<void>( () { // Run it twice without processing the queued tasks. scheduler.scheduleWarmUpFrame();
diff --git a/packages/flutter/test/widgets/custom_painter_test.dart b/packages/flutter/test/widgets/custom_painter_test.dart index 52369b9..03455e5 100644 --- a/packages/flutter/test/widgets/custom_painter_test.dart +++ b/packages/flutter/test/widgets/custom_painter_test.dart
@@ -363,7 +363,7 @@ TestSemantics.rootChild( id: expectedId, rect: TestSemantics.fullScreen, - actions: allActions.fold(0, (int previous, SemanticsAction action) => previous | action.index), + actions: allActions.fold<int>(0, (int previous, SemanticsAction action) => previous | action.index), ), ] ),
diff --git a/packages/flutter/test/widgets/dismissible_test.dart b/packages/flutter/test/widgets/dismissible_test.dart index 71e19d8..084de05 100644 --- a/packages/flutter/test/widgets/dismissible_test.dart +++ b/packages/flutter/test/widgets/dismissible_test.dart
@@ -53,7 +53,7 @@ itemExtent: itemExtent, children: <int>[0, 1, 2, 3, 4] .where((int i) => !dismissedItems.contains(i)) - .map(buildDismissibleItem).toList(), + .map<Widget>(buildDismissibleItem).toList(), ), ); },
diff --git a/packages/flutter/test/widgets/grid_view_test.dart b/packages/flutter/test/widgets/grid_view_test.dart index 1adc5e7..38b4786 100644 --- a/packages/flutter/test/widgets/grid_view_test.dart +++ b/packages/flutter/test/widgets/grid_view_test.dart
@@ -29,7 +29,7 @@ textDirection: TextDirection.ltr, child: GridView.count( crossAxisCount: 4, - children: kStates.map((String state) { + children: kStates.map<Widget>((String state) { return GestureDetector( onTap: () { log.add(state); @@ -100,7 +100,7 @@ textDirection: TextDirection.ltr, child: GridView.extent( maxCrossAxisExtent: 200.0, - children: kStates.map((String state) { + children: kStates.map<Widget>((String state) { return GestureDetector( onTap: () { log.add(state);
diff --git a/packages/flutter/test/widgets/heroes_test.dart b/packages/flutter/test/widgets/heroes_test.dart index 850ae99..45fd966 100644 --- a/packages/flutter/test/widgets/heroes_test.dart +++ b/packages/flutter/test/widgets/heroes_test.dart
@@ -948,7 +948,7 @@ // One Opacity widget per Hero, only one now has opacity 0.0 final Iterable<RenderOpacity> renderers = tester.renderObjectList(find.byType(Opacity)); - final Iterable<double> opacities = renderers.map((RenderOpacity r) => r.opacity); + final Iterable<double> opacities = renderers.map<double>((RenderOpacity r) => r.opacity); expect(opacities.singleWhere((double opacity) => opacity == 0.0), 0.0); // Hero BC's flight finishes normally.
diff --git a/packages/flutter/test/widgets/image_headers_test.dart b/packages/flutter/test/widgets/image_headers_test.dart index a4dc552..c7f8de1 100644 --- a/packages/flutter/test/widgets/image_headers_test.dart +++ b/packages/flutter/test/widgets/image_headers_test.dart
@@ -18,7 +18,7 @@ final MockHttpHeaders headers = MockHttpHeaders(); testWidgets('Headers', (WidgetTester tester) async { - HttpOverrides.runZoned(() async { + HttpOverrides.runZoned<Future<void>>(() async { await tester.pumpWidget(Image.network( 'https://www.example.com/images/frame.png', headers: const <String, String>{'flutter': 'flutter'},
diff --git a/packages/flutter/test/widgets/list_view_horizontal_test.dart b/packages/flutter/test/widgets/list_view_horizontal_test.dart index 8ed0474..fb425be 100644 --- a/packages/flutter/test/widgets/list_view_horizontal_test.dart +++ b/packages/flutter/test/widgets/list_view_horizontal_test.dart
@@ -19,7 +19,7 @@ scrollDirection: Axis.horizontal, reverse: reverse, physics: const BouncingScrollPhysics(), - children: items.map((int item) { + children: items.map<Widget>((int item) { return Container( child: Text('$item') );
diff --git a/packages/flutter/test/widgets/list_view_vertical_test.dart b/packages/flutter/test/widgets/list_view_vertical_test.dart index ebc3fe2..617be7e 100644 --- a/packages/flutter/test/widgets/list_view_vertical_test.dart +++ b/packages/flutter/test/widgets/list_view_vertical_test.dart
@@ -13,7 +13,7 @@ child: ListView( itemExtent: 290.0, scrollDirection: Axis.vertical, - children: items.map((int item) { + children: items.map<Widget>((int item) { return Container( child: Text('$item') ); @@ -74,7 +74,7 @@ itemExtent: 290.0, padding: const EdgeInsets.only(top: 250.0), scrollDirection: Axis.vertical, - children: items.map((int item) { + children: items.map<Widget>((int item) { return Container( child: Text('$item') );
diff --git a/packages/flutter/test/widgets/nested_scroll_view_test.dart b/packages/flutter/test/widgets/nested_scroll_view_test.dart index fd091f5..b52360b 100644 --- a/packages/flutter/test/widgets/nested_scroll_view_test.dart +++ b/packages/flutter/test/widgets/nested_scroll_view_test.dart
@@ -389,7 +389,7 @@ forceElevated: innerBoxIsScrolled, bottom: TabBar( // These are the widgets to put in each tab in the tab bar. - tabs: _tabs.map((String name) => Tab(text: name)).toList(), + tabs: _tabs.map<Widget>((String name) => Tab(text: name)).toList(), ), ), ), @@ -397,7 +397,7 @@ }, body: TabBarView( // These are the contents of the tab views, below the tabs. - children: _tabs.map((String name) { + children: _tabs.map<Widget>((String name) { return SafeArea( top: false, bottom: false,
diff --git a/packages/flutter/test/widgets/pageable_list_test.dart b/packages/flutter/test/widgets/pageable_list_test.dart index 670a233..79f2dda 100644 --- a/packages/flutter/test/widgets/pageable_list_test.dart +++ b/packages/flutter/test/widgets/pageable_list_test.dart
@@ -9,7 +9,7 @@ Size pageSize = const Size(600.0, 300.0); const List<int> defaultPages = <int>[0, 1, 2, 3, 4, 5]; -final List<GlobalKey> globalKeys = defaultPages.map((_) => GlobalKey()).toList(); +final List<GlobalKey> globalKeys = defaultPages.map<GlobalKey>((_) => GlobalKey()).toList(); int currentPage; Widget buildPage(int page) { @@ -30,7 +30,7 @@ scrollDirection: Axis.horizontal, reverse: reverse, onPageChanged: (int page) { currentPage = page; }, - children: pages.map(buildPage).toList(), + children: pages.map<Widget>(buildPage).toList(), ); // The test framework forces the frame to be 800x600, so we need to create
diff --git a/packages/flutter/test/widgets/scrollable_list_hit_testing_test.dart b/packages/flutter/test/widgets/scrollable_list_hit_testing_test.dart index 862873e..c06da6d 100644 --- a/packages/flutter/test/widgets/scrollable_list_hit_testing_test.dart +++ b/packages/flutter/test/widgets/scrollable_list_hit_testing_test.dart
@@ -20,7 +20,7 @@ child: ListView( itemExtent: 290.0, scrollDirection: Axis.horizontal, - children: items.map((int item) { + children: items.map<Widget>((int item) { return Container( child: GestureDetector( onTap: () { tapped.add(item); }, @@ -62,7 +62,7 @@ child: ListView( itemExtent: 290.0, scrollDirection: Axis.vertical, - children: items.map((int item) { + children: items.map<Widget>((int item) { return Container( child: GestureDetector( onTap: () { tapped.add(item); }, @@ -104,7 +104,7 @@ child: ListView( itemExtent: 290.0, padding: const EdgeInsets.fromLTRB(5.0, 20.0, 15.0, 10.0), - children: items.map((int item) { + children: items.map<Widget>((int item) { return Container( child: GestureDetector( onTap: () { tapped.add(item); }, @@ -139,7 +139,7 @@ itemExtent: 290.0, reverse: true, padding: const EdgeInsets.fromLTRB(5.0, 20.0, 15.0, 10.0), - children: items.map((int item) { + children: items.map<Widget>((int item) { return Container( child: GestureDetector( onTap: () { tapped.add(item); }, @@ -173,7 +173,7 @@ textDirection: TextDirection.ltr, child: ListView( itemExtent: 200.0, - children: items.map((int item) { + children: items.map<Widget>((int item) { return Container( child: GestureDetector( onTap: () { tapped.add(item); },
diff --git a/packages/flutter/test/widgets/semantics_test.dart b/packages/flutter/test/widgets/semantics_test.dart index 82ea8d6..c2214c7 100644 --- a/packages/flutter/test/widgets/semantics_test.dart +++ b/packages/flutter/test/widgets/semantics_test.dart
@@ -427,7 +427,7 @@ TestSemantics.rootChild( id: expectedId, rect: TestSemantics.fullScreen, - actions: allActions.fold(0, (int previous, SemanticsAction action) => previous | action.index), + actions: allActions.fold<int>(0, (int previous, SemanticsAction action) => previous | action.index), ), ], );
diff --git a/packages/flutter/test/widgets/semantics_tester.dart b/packages/flutter/test/widgets/semantics_tester.dart index 455275a..c10779a 100644 --- a/packages/flutter/test/widgets/semantics_tester.dart +++ b/packages/flutter/test/widgets/semantics_tester.dart
@@ -325,7 +325,7 @@ if (rect != null) buf.writeln('$indent rect: $rect,'); if (transform != null) - buf.writeln('$indent transform:\n${transform.toString().trim().split('\n').map((String line) => '$indent $line').join('\n')},'); + buf.writeln('$indent transform:\n${transform.toString().trim().split('\n').map<String>((String line) => '$indent $line').join('\n')},'); buf.writeln('$indent children: <TestSemantics>['); for (TestSemantics child in children) { buf.writeln('${child.toString(indentAmount + 2)},'); @@ -403,13 +403,13 @@ if (textDirection != null && node.textDirection != textDirection) return false; if (actions != null) { - final int expectedActions = actions.fold(0, (int value, SemanticsAction action) => value | action.index); + final int expectedActions = actions.fold<int>(0, (int value, SemanticsAction action) => value | action.index); final int actualActions = node.getSemanticsData().actions; if (expectedActions != actualActions) return false; } if (flags != null) { - final int expectedFlags = flags.fold(0, (int value, SemanticsFlag flag) => value | flag.index); + final int expectedFlags = flags.fold<int>(0, (int value, SemanticsFlag flag) => value | flag.index); final int actualFlags = node.getSemanticsData().flags; if (expectedFlags != actualFlags) return false; @@ -503,7 +503,7 @@ } static String _tagsToSemanticsTagExpression(Set<SemanticsTag> tags) { - return '<SemanticsTag>[${tags.map((SemanticsTag tag) => 'const SemanticsTag(\'${tag.name}\')').join(', ')}]'; + return '<SemanticsTag>[${tags.map<String>((SemanticsTag tag) => 'const SemanticsTag(\'${tag.name}\')').join(', ')}]'; } static String _actionsToSemanticsActionExpression(dynamic actions) { @@ -565,7 +565,7 @@ } buf.write(')'); - return buf.toString().split('\n').map((String l) => '$indent$l').join('\n'); + return buf.toString().split('\n').map<String>((String l) => '$indent$l').join('\n'); } } @@ -614,7 +614,7 @@ } String _indent(String text) { - return text.toString().trimRight().split('\n').map((String line) => ' $line').join('\n'); + return text.toString().trimRight().split('\n').map<String>((String line) => ' $line').join('\n'); } @override
diff --git a/packages/flutter/test/widgets/semantics_tester_generateTestSemanticsExpressionForCurrentSemanticsTree_test.dart b/packages/flutter/test/widgets/semantics_tester_generateTestSemanticsExpressionForCurrentSemanticsTree_test.dart index 4b92021..730d830 100644 --- a/packages/flutter/test/widgets/semantics_tester_generateTestSemanticsExpressionForCurrentSemanticsTree_test.dart +++ b/packages/flutter/test/widgets/semantics_tester_generateTestSemanticsExpressionForCurrentSemanticsTree_test.dart
@@ -56,7 +56,7 @@ final String code = semantics .generateTestSemanticsExpressionForCurrentSemanticsTree(DebugSemanticsDumpOrder.inverseHitTest) .split('\n') - .map((String line) => line.trim()) + .map<String>((String line) => line.trim()) .join('\n') .trim() + ','; @@ -82,7 +82,7 @@ expectedCode.indexOf('^' * 12) - 3, ) .split('\n') - .map((String line) => line.trim()) + .map<String>((String line) => line.trim()) .join('\n') .trim(); semantics.dispose();
diff --git a/packages/flutter/test/widgets/sliver_list_test.dart b/packages/flutter/test/widgets/sliver_list_test.dart index 9ab78b7..9db3c88 100644 --- a/packages/flutter/test/widgets/sliver_list_test.dart +++ b/packages/flutter/test/widgets/sliver_list_test.dart
@@ -76,7 +76,7 @@ expect(find.text('Tile 19'), findsOneWidget); await tester.pumpWidget(_buildSliverList( - items: items.map((int i) => i + 100).toList(), + items: items.map<int>((int i) => i + 100).toList(), controller: controller, itemHeight: itemHeight, viewportHeight: viewportHeight,
diff --git a/packages/flutter/test/widgets/slivers_block_global_key_test.dart b/packages/flutter/test/widgets/slivers_block_global_key_test.dart index 92a2860..2aa787d 100644 --- a/packages/flutter/test/widgets/slivers_block_global_key_test.dart +++ b/packages/flutter/test/widgets/slivers_block_global_key_test.dart
@@ -34,7 +34,7 @@ offset: ViewportOffset.fixed(offset), slivers: <Widget>[ SliverList( - delegate: SliverChildListDelegate(keys.map((int key) { + delegate: SliverChildListDelegate(keys.map<Widget>((int key) { return SizedBox(key: GlobalObjectKey(key), height: 100.0, child: GenerationText(key)); }).toList()), ),
diff --git a/packages/flutter_driver/lib/src/driver/driver.dart b/packages/flutter_driver/lib/src/driver/driver.dart index 7e130d7..5aa1e47 100644 --- a/packages/flutter_driver/lib/src/driver/driver.dart +++ b/packages/flutter_driver/lib/src/driver/driver.dart
@@ -78,7 +78,7 @@ // See https://github.com/dart-lang/sdk/blob/master/runtime/vm/timeline.cc#L32 String _timelineStreamsToString(List<TimelineStream> streams) { - final String contents = streams.map((TimelineStream stream) { + final String contents = streams.map<String>((TimelineStream stream) { switch (stream) { case TimelineStream.all: return 'all'; case TimelineStream.api: return 'API'; @@ -428,7 +428,7 @@ /// The move events are generated at a given [frequency] in Hz (or events per /// second). It defaults to 60Hz. Future<Null> scroll(SerializableFinder finder, double dx, double dy, Duration duration, { int frequency = 60, Duration timeout }) async { - return await _sendCommand(Scroll(finder, dx, dy, duration, frequency, timeout: timeout)).then((Map<String, dynamic> _) => null); + return await _sendCommand(Scroll(finder, dx, dy, duration, frequency, timeout: timeout)).then<Null>((Map<String, dynamic> _) => null); } /// Scrolls the Scrollable ancestor of the widget located by [finder] @@ -439,7 +439,7 @@ /// then this method may fail because [finder] doesn't actually exist. /// The [scrollUntilVisible] method can be used in this case. Future<Null> scrollIntoView(SerializableFinder finder, { double alignment = 0.0, Duration timeout }) async { - return await _sendCommand(ScrollIntoView(finder, alignment: alignment, timeout: timeout)).then((Map<String, dynamic> _) => null); + return await _sendCommand(ScrollIntoView(finder, alignment: alignment, timeout: timeout)).then<Null>((Map<String, dynamic> _) => null); } /// Repeatedly [scroll] the widget located by [scrollable] by [dxScroll] and @@ -483,7 +483,7 @@ // the chance to complete if the item is already onscreen; if not, scroll // repeatedly until we either find the item or time out. bool isVisible = false; - waitFor(item, timeout: timeout).then((Null value) { isVisible = true; }); + waitFor(item, timeout: timeout).then<void>((Null value) { isVisible = true; }); await Future<Null>.delayed(const Duration(milliseconds: 500)); while (!isVisible) { await scroll(scrollable, dxScroll, dyScroll, const Duration(milliseconds: 100));
diff --git a/packages/flutter_driver/lib/src/driver/timeline.dart b/packages/flutter_driver/lib/src/driver/timeline.dart index 34be834..6bb3087 100644 --- a/packages/flutter_driver/lib/src/driver/timeline.dart +++ b/packages/flutter_driver/lib/src/driver/timeline.dart
@@ -129,6 +129,6 @@ // TODO(vegorov): use instance method version of castFrom when it is available. return Iterable.castFrom<dynamic, Map<String, dynamic>>(jsonEvents) - .map((Map<String, dynamic> eventJson) => TimelineEvent(eventJson)) + .map<TimelineEvent>((Map<String, dynamic> eventJson) => TimelineEvent(eventJson)) .toList(); }
diff --git a/packages/flutter_driver/lib/src/driver/timeline_summary.dart b/packages/flutter_driver/lib/src/driver/timeline_summary.dart index 09e61de..64e7dc0 100644 --- a/packages/flutter_driver/lib/src/driver/timeline_summary.dart +++ b/packages/flutter_driver/lib/src/driver/timeline_summary.dart
@@ -98,10 +98,10 @@ 'missed_frame_rasterizer_budget_count': computeMissedFrameRasterizerBudgetCount(), 'frame_count': countFrames(), 'frame_build_times': _extractFrameDurations() - .map((Duration duration) => duration.inMicroseconds) + .map<int>((Duration duration) => duration.inMicroseconds) .toList(), 'frame_rasterizer_times': _extractGpuRasterizerDrawEvents() - .map((TimedEvent event) => event.duration.inMicroseconds) + .map<int>((TimedEvent event) => event.duration.inMicroseconds) .toList(), }; } @@ -143,7 +143,7 @@ } List<Duration> _extractDurations(String name) { - return _extractNamedEvents(name).map((TimelineEvent event) => event.duration).toList(); + return _extractNamedEvents(name).map<Duration>((TimelineEvent event) => event.duration).toList(); } /// Extracts timed events that are reported as a pair of begin/end events. @@ -199,7 +199,7 @@ List<Duration> _extractFrameDurations() => _extractDurations('Frame'); Iterable<Duration> _extractDuration(Iterable<TimedEvent> events) { - return events.map((TimedEvent e) => e.duration); + return events.map<Duration>((TimedEvent e) => e.duration); } }
diff --git a/packages/flutter_driver/test/flutter_driver_test.dart b/packages/flutter_driver/test/flutter_driver_test.dart index d8d8adb..eed263a 100644 --- a/packages/flutter_driver/test/flutter_driver_test.dart +++ b/packages/flutter_driver/test/flutter_driver_test.dart
@@ -28,7 +28,7 @@ MockPeer mockPeer; void expectLogContains(String message) { - expect(log.map((LogRecord r) => '$r'), anyElement(contains(message))); + expect(log.map<String>((LogRecord r) => '$r'), anyElement(contains(message))); } setUp(() {
diff --git a/packages/flutter_test/lib/src/binding.dart b/packages/flutter_test/lib/src/binding.dart index 2d47644..80c3fb8 100644 --- a/packages/flutter_test/lib/src/binding.dart +++ b/packages/flutter_test/lib/src/binding.dart
@@ -228,7 +228,7 @@ /// Artificially calls dispatchLocaleChanged on the Widget binding, /// then flushes microtasks. Future<Null> setLocale(String languageCode, String countryCode) { - return TestAsyncUtils.guard(() async { + return TestAsyncUtils.guard<Null>(() async { assert(inTest); final Locale locale = Locale(languageCode, countryCode); dispatchLocaleChanged(locale); @@ -243,7 +243,7 @@ /// /// Set to null to use the default surface size. Future<Null> setSurfaceSize(Size size) { - return TestAsyncUtils.guard(() async { + return TestAsyncUtils.guard<Null>(() async { assert(inTest); if (_surfaceSize == size) return null; @@ -273,7 +273,7 @@ /// to recursively schedule new microtasks. Will not run any timers scheduled /// after this method was invoked, even if they are zero-time timers. Future<Null> idle() { - return TestAsyncUtils.guard(() { + return TestAsyncUtils.guard<Null>(() { final Completer<Null> completer = Completer<Null>(); Timer.run(() { completer.complete(null); @@ -537,7 +537,7 @@ ); _parentZone = Zone.current; final Zone testZone = _parentZone.fork(specification: errorHandlingZoneSpecification); - testZone.runBinary(_runTestBody, testBody, invariantTester) + testZone.runBinary<Future<Null>, Future<Null> Function(), VoidCallback>(_runTestBody, testBody, invariantTester) .whenComplete(testCompletionHandler); timeout?.catchError(handleUncaughtError); return testCompleter.future; @@ -689,7 +689,7 @@ @override Future<Null> pump([ Duration duration, EnginePhase newPhase = EnginePhase.sendSemanticsUpdate ]) { - return TestAsyncUtils.guard(() { + return TestAsyncUtils.guard<Null>(() { assert(inTest); assert(_clock != null); if (duration != null) @@ -741,7 +741,7 @@ addTime(additionalTime); - return realAsyncZone.run(() { + return realAsyncZone.run<Future<T>>(() { _pendingAsyncTasks = Completer<void>(); return callback().catchError((dynamic exception, StackTrace stack) { FlutterError.reportError(FlutterErrorDetails( @@ -1197,7 +1197,7 @@ assert(inTest); assert(!_expectingFrame); assert(_pendingFrame == null); - return TestAsyncUtils.guard(() { + return TestAsyncUtils.guard<Null>(() { if (duration != null) { Timer(duration, () { _expectingFrame = true;
diff --git a/packages/flutter_test/lib/src/controller.dart b/packages/flutter_test/lib/src/controller.dart index d2c18d2..0d70e84 100644 --- a/packages/flutter_test/lib/src/controller.dart +++ b/packages/flutter_test/lib/src/controller.dart
@@ -46,7 +46,7 @@ Iterable<Widget> get allWidgets { TestAsyncUtils.guardSync(); return allElements - .map((Element element) => element.widget); + .map<Widget>((Element element) => element.widget); } /// The matching widget in the widget tree. @@ -137,7 +137,7 @@ TestAsyncUtils.guardSync(); return allElements .whereType<StatefulElement>() - .map((StatefulElement element) => element.state); + .map<State>((StatefulElement element) => element.state); } /// The matching state in the widget tree. @@ -173,7 +173,7 @@ /// * Use [firstState] if you expect to match several but only want the first. Iterable<T> stateList<T extends State>(Finder finder) { TestAsyncUtils.guardSync(); - return finder.evaluate().map((Element element) => _stateOf<T>(element, finder)); + return finder.evaluate().map<T>((Element element) => _stateOf<T>(element, finder)); } T _stateOf<T extends State>(Element element, Finder finder) { @@ -194,7 +194,7 @@ Iterable<RenderObject> get allRenderObjects { TestAsyncUtils.guardSync(); return allElements - .map((Element element) => element.renderObject); + .map<RenderObject>((Element element) => element.renderObject); } /// The render object of the matching widget in the widget tree. @@ -262,7 +262,7 @@ /// Dispatch a pointer down / pointer up sequence at the given location. Future<Null> tapAt(Offset location, { int pointer }) { - return TestAsyncUtils.guard(() async { + return TestAsyncUtils.guard<Null>(() async { final TestGesture gesture = await startGesture(location, pointer: pointer); await gesture.up(); return null; @@ -293,7 +293,7 @@ /// Dispatch a pointer down / pointer up sequence at the given location with /// a delay of [kLongPressTimeout] + [kPressTimeout] between the two events. Future<Null> longPressAt(Offset location, { int pointer }) { - return TestAsyncUtils.guard(() async { + return TestAsyncUtils.guard<Null>(() async { final TestGesture gesture = await startGesture(location, pointer: pointer); await pump(kLongPressTimeout + kPressTimeout); await gesture.up(); @@ -371,7 +371,7 @@ }) { assert(offset.distance > 0.0); assert(speed > 0.0); // speed is pixels/second - return TestAsyncUtils.guard(() async { + return TestAsyncUtils.guard<Null>(() async { final TestPointer testPointer = TestPointer(pointer ?? _getNextPointer()); final HitTestResult result = hitTestOnBinding(startLocation); const int kMoveCount = 50; // Needs to be >= kHistorySize, see _LeastSquaresVelocityTrackerStrategy @@ -428,7 +428,7 @@ /// system identifies the gesture as a fling, consider using [flingFrom] /// instead. Future<Null> dragFrom(Offset startLocation, Offset offset, { int pointer }) { - return TestAsyncUtils.guard(() async { + return TestAsyncUtils.guard<Null>(() async { final TestGesture gesture = await startGesture(startLocation, pointer: pointer); assert(gesture != null); await gesture.moveBy(offset); @@ -469,7 +469,7 @@ /// Forwards the given pointer event to the binding. Future<Null> sendEventToBinding(PointerEvent event, HitTestResult result) { - return TestAsyncUtils.guard(() async { + return TestAsyncUtils.guard<Null>(() async { binding.dispatchEvent(event, result); return null; });
diff --git a/packages/flutter_test/lib/src/finders.dart b/packages/flutter_test/lib/src/finders.dart index 6341190..2d41b03 100644 --- a/packages/flutter_test/lib/src/finders.dart +++ b/packages/flutter_test/lib/src/finders.dart
@@ -633,7 +633,7 @@ @override Iterable<Element> get allCandidates { final Iterable<Element> ancestorElements = ancestor.evaluate(); - final List<Element> candidates = ancestorElements.expand( + final List<Element> candidates = ancestorElements.expand<Element>( (Element element) => collectAllElementsFrom(element, skipOffstage: skipOffstage) ).toSet().toList(); if (matchRoot)
diff --git a/packages/flutter_test/lib/src/goldens.dart b/packages/flutter_test/lib/src/goldens.dart index eeab00b..5ef1493 100644 --- a/packages/flutter_test/lib/src/goldens.dart +++ b/packages/flutter_test/lib/src/goldens.dart
@@ -181,7 +181,7 @@ throw test_package.TestFailure('Could not be compared against non-existent file: "$golden"'); } final List<int> goldenBytes = await goldenFile.readAsBytes(); - return _areListsEqual(imageBytes, goldenBytes); + return _areListsEqual<int>(imageBytes, goldenBytes); } @override
diff --git a/packages/flutter_test/lib/src/test_pointer.dart b/packages/flutter_test/lib/src/test_pointer.dart index 063440e..56f2096 100644 --- a/packages/flutter_test/lib/src/test_pointer.dart +++ b/packages/flutter_test/lib/src/test_pointer.dart
@@ -142,7 +142,7 @@ assert(hitTester != null); assert(dispatcher != null); TestGesture result; - return TestAsyncUtils.guard(() async { + return TestAsyncUtils.guard<Null>(() async { // dispatch down event final HitTestResult hitTestResult = hitTester(downLocation); final TestPointer testPointer = TestPointer(pointer); @@ -170,7 +170,7 @@ /// Send a move event moving the pointer to the given location. Future<Null> moveTo(Offset location, { Duration timeStamp = Duration.zero }) { - return TestAsyncUtils.guard(() { + return TestAsyncUtils.guard<Null>(() { assert(_pointer._isDown); return _dispatcher(_pointer.move(location, timeStamp: timeStamp), _result); }); @@ -180,7 +180,7 @@ /// /// The object is no longer usable after this method has been called. Future<Null> up() { - return TestAsyncUtils.guard(() async { + return TestAsyncUtils.guard<Null>(() async { assert(_pointer._isDown); await _dispatcher(_pointer.up(), _result); assert(!_pointer._isDown); @@ -194,7 +194,7 @@ /// /// The object is no longer usable after this method has been called. Future<Null> cancel() { - return TestAsyncUtils.guard(() async { + return TestAsyncUtils.guard<Null>(() async { assert(_pointer._isDown); await _dispatcher(_pointer.cancel(), _result); assert(!_pointer._isDown);
diff --git a/packages/flutter_test/lib/src/widget_tester.dart b/packages/flutter_test/lib/src/widget_tester.dart index 4a766fc..bcdee59 100644 --- a/packages/flutter_test/lib/src/widget_tester.dart +++ b/packages/flutter_test/lib/src/widget_tester.dart
@@ -221,7 +221,7 @@ Duration duration, EnginePhase phase = EnginePhase.sendSemanticsUpdate, ]) { - return TestAsyncUtils.guard(() { + return TestAsyncUtils.guard<Null>(() { binding.attachRootWidget(widget); binding.scheduleFrame(); return binding.pump(duration, phase); @@ -244,7 +244,7 @@ Duration duration, EnginePhase phase = EnginePhase.sendSemanticsUpdate, ]) { - return TestAsyncUtils.guard(() => binding.pump(duration, phase)); + return TestAsyncUtils.guard<Null>(() => binding.pump(duration, phase)); } /// Repeatedly calls [pump] with the given `duration` until there are no @@ -292,7 +292,7 @@ return true; }()); int count = 0; - return TestAsyncUtils.guard(() async { + return TestAsyncUtils.guard<Null>(() async { final DateTime endTime = binding.clock.fromNowBy(timeout); do { if (binding.clock.now().isAfter(endTime)) @@ -325,7 +325,7 @@ /// [TestFailure] error being thrown. Future<T> runAsync<T>(Future<T> callback(), { Duration additionalTime = const Duration(milliseconds: 250), - }) => binding.runAsync(callback, additionalTime: additionalTime); + }) => binding.runAsync<T>(callback, additionalTime: additionalTime); /// Whether there are any any transient callbacks scheduled. /// @@ -351,7 +351,7 @@ @override Future<Null> sendEventToBinding(PointerEvent event, HitTestResult result) { - return TestAsyncUtils.guard(() async { + return TestAsyncUtils.guard<Null>(() async { binding.dispatchEvent(event, result, source: TestBindingEventSource.test); return null; }); @@ -485,7 +485,7 @@ /// Does not run timers. May result in an infinite loop or run out of memory /// if microtasks continue to recursively schedule new microtasks. Future<Null> idle() { - return TestAsyncUtils.guard(() => binding.idle()); + return TestAsyncUtils.guard<Null>(() => binding.idle()); } Set<Ticker> _tickers; @@ -570,8 +570,8 @@ /// Tests that just need to add text to widgets like [TextField] /// or [TextFormField] only need to call [enterText]. Future<Null> showKeyboard(Finder finder) async { - return TestAsyncUtils.guard(() async { - final EditableTextState editable = state( + return TestAsyncUtils.guard<Null>(() async { + final EditableTextState editable = state<EditableTextState>( find.descendant( of: finder, matching: find.byType(EditableText), @@ -593,7 +593,7 @@ /// To just give [finder] the focus without entering any text, /// see [showKeyboard]. Future<Null> enterText(Finder finder, String text) async { - return TestAsyncUtils.guard(() async { + return TestAsyncUtils.guard<Null>(() async { await showKeyboard(finder); testTextInput.enterText(text); await idle(); @@ -605,7 +605,7 @@ /// /// Will throw an error if there is no back button in the page. Future<void> pageBack() async { - return TestAsyncUtils.guard(() async { + return TestAsyncUtils.guard<void>(() async { Finder backButton = find.byTooltip('Back'); if (backButton.evaluate().isEmpty) { backButton = find.byType(CupertinoNavigationBarBackButton);
diff --git a/packages/flutter_test/test/goldens_test.dart b/packages/flutter_test/test/goldens_test.dart index 147ed2d..0c084ad 100644 --- a/packages/flutter_test/test/goldens_test.dart +++ b/packages/flutter_test/test/goldens_test.dart
@@ -34,7 +34,7 @@ void test(String description, FutureOr<void> body()) { test_package.test(description, () { - return io.IOOverrides.runZoned( + return io.IOOverrides.runZoned<FutureOr<void>>( body, createDirectory: (String path) => fs.directory(path), createFile: (String path) => fs.file(path),
diff --git a/packages/flutter_test/test/widget_tester_test.dart b/packages/flutter_test/test/widget_tester_test.dart index ecb5ba0..9249398 100644 --- a/packages/flutter_test/test/widget_tester_test.dart +++ b/packages/flutter_test/test/widget_tester_test.dart
@@ -24,7 +24,7 @@ final Completer<void> completer = Completer<void>(); final Future<void> future = expectLater(null, FakeMatcher(completer)); String value; - future.then((void _) { + future.then<void>((void _) { value = '123'; }); test_package.expect(value, isNull); @@ -39,7 +39,7 @@ final Completer<void> completer = Completer<void>(); final Future<void> future = expectLater(null, FakeMatcher(completer), skip: 'testing skip'); bool completed = false; - future.then((void _) { + future.then<void>((void _) { completed = true; }); test_package.expect(completed, isFalse); @@ -498,7 +498,7 @@ testWidgets('maintains existing zone values', (WidgetTester tester) async { final Object key = Object(); - await runZoned(() { + await runZoned<Future<void>>(() { expect(Zone.current[key], 'abczed'); return tester.runAsync<void>(() async { expect(Zone.current[key], 'abczed');
diff --git a/packages/flutter_tools/bin/fuchsia_asset_builder.dart b/packages/flutter_tools/bin/fuchsia_asset_builder.dart index e547025..c659f84 100644 --- a/packages/flutter_tools/bin/fuchsia_asset_builder.dart +++ b/packages/flutter_tools/bin/fuchsia_asset_builder.dart
@@ -77,7 +77,7 @@ final libfs.File outputFile = libfs.fs.file(libfs.fs.path.join(assetDir, fileName)); calls.add(writeFile(outputFile, content)); }); - await Future.wait(calls); + await Future.wait<Null>(calls); final String outputMan = argResults[_kOptionAssetManifestOut]; await writeFuchsiaManifest(assets, argResults[_kOptionAsset], outputMan, argResults[_kOptionComponentName]);
diff --git a/packages/flutter_tools/lib/src/android/android_device.dart b/packages/flutter_tools/lib/src/android/android_device.dart index 3395442..9f9545b 100644 --- a/packages/flutter_tools/lib/src/android/android_device.dart +++ b/packages/flutter_tools/lib/src/android/android_device.dart
@@ -474,7 +474,7 @@ @override Future<bool> stopApp(ApplicationPackage app) { final List<String> command = adbCommandForDevice(<String>['shell', 'am', 'force-stop', app.id]); - return runCommandAndStreamOutput(command).then((int exitCode) => exitCode == 0); + return runCommandAndStreamOutput(command).then<bool>((int exitCode) => exitCode == 0); } @override @@ -673,8 +673,8 @@ runCommand(device.adbCommandForDevice(args)).then<Null>((Process process) { _process = process; const Utf8Decoder decoder = Utf8Decoder(allowMalformed: true); - _process.stdout.transform(decoder).transform(const LineSplitter()).listen(_onLine); - _process.stderr.transform(decoder).transform(const LineSplitter()).listen(_onLine); + _process.stdout.transform<String>(decoder).transform<String>(const LineSplitter()).listen(_onLine); + _process.stderr.transform<String>(decoder).transform<String>(const LineSplitter()).listen(_onLine); _process.exitCode.whenComplete(() { if (_linesController.hasListener) _linesController.close();
diff --git a/packages/flutter_tools/lib/src/android/android_emulator.dart b/packages/flutter_tools/lib/src/android/android_emulator.dart index d0ea02d..6a0e24d 100644 --- a/packages/flutter_tools/lib/src/android/android_emulator.dart +++ b/packages/flutter_tools/lib/src/android/android_emulator.dart
@@ -112,13 +112,13 @@ final Map<String, String> results = <String, String>{}; final Iterable<List<String>> properties = contents - .map((String l) => l.trim()) + .map<String>((String l) => l.trim()) // Strip blank lines/comments .where((String l) => l != '' && !l.startsWith('#')) // Discard anything that isn't simple name=value .where((String l) => l.contains('=')) // Split into name/value - .map((String l) => l.split('=')); + .map<List<String>>((String l) => l.split('=')); for (List<String> property in properties) { results[property[0].trim()] = property[1].trim();
diff --git a/packages/flutter_tools/lib/src/android/android_sdk.dart b/packages/flutter_tools/lib/src/android/android_sdk.dart index 72344d2..4c9ea22 100644 --- a/packages/flutter_tools/lib/src/android/android_sdk.dart +++ b/packages/flutter_tools/lib/src/android/android_sdk.dart
@@ -382,7 +382,7 @@ } // Match up platforms with the best corresponding build-tools. - _sdkVersions = platforms.map((Directory platformDir) { + _sdkVersions = platforms.map<AndroidSdkVersion>((Directory platformDir) { final String platformName = platformDir.basename; int platformVersion; @@ -394,7 +394,7 @@ final String buildProps = platformDir.childFile('build.prop').readAsStringSync(); final String versionString = const LineSplitter() .convert(buildProps) - .map(_sdkVersionRe.firstMatch) + .map<Match>(_sdkVersionRe.firstMatch) .firstWhere((Match match) => match != null) .group(1); platformVersion = int.parse(versionString);
diff --git a/packages/flutter_tools/lib/src/android/android_studio.dart b/packages/flutter_tools/lib/src/android/android_studio.dart index 9b416d7..4c3dc98 100644 --- a/packages/flutter_tools/lib/src/android/android_studio.dart +++ b/packages/flutter_tools/lib/src/android/android_studio.dart
@@ -188,7 +188,7 @@ } return candidatePaths - .map((FileSystemEntity e) => AndroidStudio.fromMacOSBundle(e.path)) + .map<AndroidStudio>((FileSystemEntity e) => AndroidStudio.fromMacOSBundle(e.path)) .where((AndroidStudio s) => s != null) .toList(); }
diff --git a/packages/flutter_tools/lib/src/android/android_studio_validator.dart b/packages/flutter_tools/lib/src/android/android_studio_validator.dart index fd59e4c..3302e94 100644 --- a/packages/flutter_tools/lib/src/android/android_studio_validator.dart +++ b/packages/flutter_tools/lib/src/android/android_studio_validator.dart
@@ -22,7 +22,7 @@ validators.add(NoAndroidStudioValidator()); } else { validators.addAll(studios - .map((AndroidStudio studio) => AndroidStudioValidator(studio))); + .map<DoctorValidator>((AndroidStudio studio) => AndroidStudioValidator(studio))); } return validators; } @@ -46,11 +46,11 @@ if (_studio.isValid) { type = ValidationType.installed; messages.addAll(_studio.validationMessages - .map((String m) => ValidationMessage(m))); + .map<ValidationMessage>((String m) => ValidationMessage(m))); } else { type = ValidationType.partial; messages.addAll(_studio.validationMessages - .map((String m) => ValidationMessage.error(m))); + .map<ValidationMessage>((String m) => ValidationMessage.error(m))); messages.add(ValidationMessage( 'Try updating or re-installing Android Studio.')); if (_studio.configured != null) {
diff --git a/packages/flutter_tools/lib/src/android/android_workflow.dart b/packages/flutter_tools/lib/src/android/android_workflow.dart index d3e4285..2a532a0 100644 --- a/packages/flutter_tools/lib/src/android/android_workflow.dart +++ b/packages/flutter_tools/lib/src/android/android_workflow.dart
@@ -127,7 +127,7 @@ if (validationResult.isNotEmpty) { // Android SDK is not functional. - messages.addAll(validationResult.map((String message) { + messages.addAll(validationResult.map<ValidationMessage>((String message) { return ValidationMessage.error(message); })); messages.add(ValidationMessage( @@ -200,13 +200,13 @@ ); process.stdin.write('n\n'); final Future<void> output = process.stdout - .transform(const Utf8Decoder(allowMalformed: true)) - .transform(const LineSplitter()) + .transform<String>(const Utf8Decoder(allowMalformed: true)) + .transform<String>(const LineSplitter()) .listen(_onLine) .asFuture<void>(null); final Future<void> errors = process.stderr - .transform(const Utf8Decoder(allowMalformed: true)) - .transform(const LineSplitter()) + .transform<String>(const Utf8Decoder(allowMalformed: true)) + .transform<String>(const LineSplitter()) .listen(_onLine) .asFuture<void>(null); try {
diff --git a/packages/flutter_tools/lib/src/asset.dart b/packages/flutter_tools/lib/src/asset.dart index 22b7b24..5052e5d 100644 --- a/packages/flutter_tools/lib/src/asset.dart +++ b/packages/flutter_tools/lib/src/asset.dart
@@ -354,7 +354,7 @@ printStatus(allPackagesList.join(', ')); } - final List<String> combinedLicensesList = packageLicenses.keys.map( + final List<String> combinedLicensesList = packageLicenses.keys.map<String>( (String license) { final List<String> packageNames = packageLicenses[license].toList() ..sort(); @@ -444,7 +444,7 @@ } List<Map<String, dynamic>> _createFontsDescriptor(List<Font> fonts) { - return fonts.map((Font font) => font.descriptor).toList(); + return fonts.map<Map<String, dynamic>>((Font font) => font.descriptor).toList(); } // Given an assets directory like this:
diff --git a/packages/flutter_tools/lib/src/base/fingerprint.dart b/packages/flutter_tools/lib/src/base/fingerprint.dart index fed1cbf..b898ed7 100644 --- a/packages/flutter_tools/lib/src/base/fingerprint.dart +++ b/packages/flutter_tools/lib/src/base/fingerprint.dart
@@ -97,7 +97,7 @@ /// See [Fingerprinter]. class Fingerprint { Fingerprint.fromBuildInputs(Map<String, String> properties, Iterable<String> inputPaths) { - final Iterable<File> files = inputPaths.map(fs.file); + final Iterable<File> files = inputPaths.map<File>(fs.file); final Iterable<File> missingInputs = files.where((File file) => !file.existsSync()); if (missingInputs.isNotEmpty) throw ArgumentError('Missing input files:\n' + missingInputs.join('\n')); @@ -179,7 +179,7 @@ return dependencies .replaceAllMapped(_separatorExpr, (Match match) => '${match.group(1)}\n') .split('\n') - .map((String path) => path.replaceAllMapped(_escapeExpr, (Match match) => match.group(1)).trim()) + .map<String>((String path) => path.replaceAllMapped(_escapeExpr, (Match match) => match.group(1)).trim()) .where((String path) => path.isNotEmpty) .toSet(); }
diff --git a/packages/flutter_tools/lib/src/base/io.dart b/packages/flutter_tools/lib/src/base/io.dart index fb9be51..70ca4fe 100644 --- a/packages/flutter_tools/lib/src/base/io.dart +++ b/packages/flutter_tools/lib/src/base/io.dart
@@ -127,7 +127,7 @@ @override Stream<ProcessSignal> watch() { - return _delegate.watch().map((io.ProcessSignal signal) => this); + return _delegate.watch().map<ProcessSignal>((io.ProcessSignal signal) => this); } @override
diff --git a/packages/flutter_tools/lib/src/base/logger.dart b/packages/flutter_tools/lib/src/base/logger.dart index de9eabf..dd6f0a1 100644 --- a/packages/flutter_tools/lib/src/base/logger.dart +++ b/packages/flutter_tools/lib/src/base/logger.dart
@@ -112,7 +112,7 @@ message = terminal.color(message, color); if (indent != null && indent > 0) { message = LineSplitter.split(message) - .map((String line) => ' ' * indent + line) + .map<String>((String line) => ' ' * indent + line) .join('\n'); } if (newline != false)
diff --git a/packages/flutter_tools/lib/src/base/os.dart b/packages/flutter_tools/lib/src/base/os.dart index 8c3b30d..54f5964 100644 --- a/packages/flutter_tools/lib/src/base/os.dart +++ b/packages/flutter_tools/lib/src/base/os.dart
@@ -92,7 +92,7 @@ if (result.exitCode != 0) return const <File>[]; final String stdout = result.stdout; - return stdout.trim().split('\n').map((String path) => fs.file(path.trim())).toList(); + return stdout.trim().split('\n').map<File>((String path) => fs.file(path.trim())).toList(); } @override @@ -166,7 +166,7 @@ return const <File>[]; final List<String> lines = result.stdout.trim().split('\n'); if (all) - return lines.map((String path) => fs.file(path.trim())).toList(); + return lines.map<File>((String path) => fs.file(path.trim())).toList(); return <File>[fs.file(lines.first.trim())]; }
diff --git a/packages/flutter_tools/lib/src/base/process.dart b/packages/flutter_tools/lib/src/base/process.dart index caf6349..29029d4 100644 --- a/packages/flutter_tools/lib/src/base/process.dart +++ b/packages/flutter_tools/lib/src/base/process.dart
@@ -137,8 +137,8 @@ environment: environment ); final StreamSubscription<String> stdoutSubscription = process.stdout - .transform(utf8.decoder) - .transform(const LineSplitter()) + .transform<String>(utf8.decoder) + .transform<String>(const LineSplitter()) .where((String line) => filter == null ? true : filter.hasMatch(line)) .listen((String line) { if (mapFunction != null) @@ -152,8 +152,8 @@ } }); final StreamSubscription<String> stderrSubscription = process.stderr - .transform(utf8.decoder) - .transform(const LineSplitter()) + .transform<String>(utf8.decoder) + .transform<String>(const LineSplitter()) .where((String line) => filter == null ? true : filter.hasMatch(line)) .listen((String line) { if (mapFunction != null)
diff --git a/packages/flutter_tools/lib/src/base/terminal.dart b/packages/flutter_tools/lib/src/base/terminal.dart index 8e40c59..65a5a46 100644 --- a/packages/flutter_tools/lib/src/base/terminal.dart +++ b/packages/flutter_tools/lib/src/base/terminal.dart
@@ -107,7 +107,7 @@ /// /// Useful when the console is in [singleCharMode]. Stream<String> get onCharInput { - _broadcastStdInString ??= io.stdin.transform(const AsciiDecoder(allowInvalid: true)).asBroadcastStream(); + _broadcastStdInString ??= io.stdin.transform<String>(const AsciiDecoder(allowInvalid: true)).asBroadcastStream(); return _broadcastStdInString; }
diff --git a/packages/flutter_tools/lib/src/base/utils.dart b/packages/flutter_tools/lib/src/base/utils.dart index 102a0ec..ee485de 100644 --- a/packages/flutter_tools/lib/src/base/utils.dart +++ b/packages/flutter_tools/lib/src/base/utils.dart
@@ -202,7 +202,7 @@ final Map<String, String> values = <String, String>{}; void writeContents(File file) { - file.writeAsStringSync(values.keys.map((String key) { + file.writeAsStringSync(values.keys.map<String>((String key) { return '$key=${values[key]}'; }).join('\n')); }
diff --git a/packages/flutter_tools/lib/src/bundle.dart b/packages/flutter_tools/lib/src/bundle.dart index db1b569..4a531b2 100644 --- a/packages/flutter_tools/lib/src/bundle.dart +++ b/packages/flutter_tools/lib/src/bundle.dart
@@ -193,8 +193,8 @@ bundleDir.deleteSync(recursive: true); bundleDir.createSync(recursive: true); - await Future.wait( - assetEntries.entries.map((MapEntry<String, DevFSContent> entry) async { + await Future.wait<void>( + assetEntries.entries.map<Future<void>>((MapEntry<String, DevFSContent> entry) async { final File file = fs.file(fs.path.join(bundleDir.path, entry.key)); file.parent.createSync(recursive: true); await file.writeAsBytes(await entry.value.contentsAsBytes());
diff --git a/packages/flutter_tools/lib/src/cache.dart b/packages/flutter_tools/lib/src/cache.dart index 8e2325c..8ab311c 100644 --- a/packages/flutter_tools/lib/src/cache.dart +++ b/packages/flutter_tools/lib/src/cache.dart
@@ -560,7 +560,7 @@ @visibleForTesting String flattenNameSubdirs(Uri url) { final List<String> pieces = <String>[url.host]..addAll(url.pathSegments); - final Iterable<String> convertedPieces = pieces.map(_flattenNameNoSubdirs); + final Iterable<String> convertedPieces = pieces.map<String>(_flattenNameNoSubdirs); return fs.path.joinAll(convertedPieces); }
diff --git a/packages/flutter_tools/lib/src/commands/analyze_once.dart b/packages/flutter_tools/lib/src/commands/analyze_once.dart index ae14c97..3d181ad 100644 --- a/packages/flutter_tools/lib/src/commands/analyze_once.dart +++ b/packages/flutter_tools/lib/src/commands/analyze_once.dart
@@ -92,7 +92,7 @@ await server.start(); // Completing the future in the callback can't fail. - server.onExit.then((int exitCode) { // ignore: unawaited_futures + server.onExit.then<void>((int exitCode) { // ignore: unawaited_futures if (!analysisCompleter.isCompleted) { analysisCompleter.completeError('analysis server exited: $exitCode'); }
diff --git a/packages/flutter_tools/lib/src/commands/build_aot.dart b/packages/flutter_tools/lib/src/commands/build_aot.dart index fb07c23..dc5a79f 100644 --- a/packages/flutter_tools/lib/src/commands/build_aot.dart +++ b/packages/flutter_tools/lib/src/commands/build_aot.dart
@@ -35,8 +35,8 @@ ) ..addMultiOption('ios-arch', splitCommas: true, - defaultsTo: defaultIOSArchs.map(getNameForIOSArch), - allowed: IOSArch.values.map(getNameForIOSArch), + defaultsTo: defaultIOSArchs.map<String>(getNameForIOSArch), + allowed: IOSArch.values.map<String>(getNameForIOSArch), help: 'iOS architectures to build.', ) ..addMultiOption(FlutterOptions.kExtraFrontEndOptions, @@ -112,14 +112,14 @@ outputPath: outputPath, buildSharedLibrary: false, extraGenSnapshotOptions: argResults[FlutterOptions.kExtraGenSnapshotOptions], - ).then((int buildExitCode) { + ).then<int>((int buildExitCode) { return buildExitCode; }); }); // Merge arch-specific App.frameworks into a multi-arch App.framework. - if ((await Future.wait(exitCodes.values)).every((int buildExitCode) => buildExitCode == 0)) { - final Iterable<String> dylibs = iosBuilds.values.map((String outputDir) => fs.path.join(outputDir, 'App.framework', 'App')); + if ((await Future.wait<int>(exitCodes.values)).every((int buildExitCode) => buildExitCode == 0)) { + final Iterable<String> dylibs = iosBuilds.values.map<String>((String outputDir) => fs.path.join(outputDir, 'App.framework', 'App')); fs.directory(fs.path.join(outputPath, 'App.framework'))..createSync(); await runCheckedAsync(<String>['lipo'] ..addAll(dylibs)
diff --git a/packages/flutter_tools/lib/src/commands/config.dart b/packages/flutter_tools/lib/src/commands/config.dart index a69655e..2d60e8a 100644 --- a/packages/flutter_tools/lib/src/commands/config.dart +++ b/packages/flutter_tools/lib/src/commands/config.dart
@@ -47,7 +47,7 @@ @override String get usageFooter { // List all config settings. - String values = config.keys.map((String key) { + String values = config.keys.map<String>((String key) { return ' $key: ${config.getValue(key)}'; }).join('\n'); if (values.isNotEmpty)
diff --git a/packages/flutter_tools/lib/src/commands/daemon.dart b/packages/flutter_tools/lib/src/commands/daemon.dart index 6189f2c..18d38bc 100644 --- a/packages/flutter_tools/lib/src/commands/daemon.dart +++ b/packages/flutter_tools/lib/src/commands/daemon.dart
@@ -603,7 +603,7 @@ _DeviceEventHandler _onDeviceEvent(String eventName) { return (Device device) { - _serializeDeviceEvents = _serializeDeviceEvents.then((_) async { + _serializeDeviceEvents = _serializeDeviceEvents.then<Null>((_) async { sendEvent(eventName, await _deviceToMap(device)); }); }; @@ -679,10 +679,10 @@ } Stream<Map<String, dynamic>> get stdinCommandStream => stdin - .transform(utf8.decoder) - .transform(const LineSplitter()) + .transform<String>(utf8.decoder) + .transform<String>(const LineSplitter()) .where((String line) => line.startsWith('[{') && line.endsWith('}]')) - .map((String line) { + .map<Map<String, dynamic>>((String line) { line = line.substring(1, line.length - 1); return json.decode(line); }); @@ -829,7 +829,7 @@ Future<List<Map<String, dynamic>>> getEmulators([Map<String, dynamic> args]) async { final List<Emulator> list = await emulators.getAllAvailableEmulators(); - return list.map(_emulatorToMap).toList(); + return list.map<Map<String, dynamic>>(_emulatorToMap).toList(); } Future<Null> launch(Map<String, dynamic> args) async {
diff --git a/packages/flutter_tools/lib/src/commands/drive.dart b/packages/flutter_tools/lib/src/commands/drive.dart index 419371a..dcccb09 100644 --- a/packages/flutter_tools/lib/src/commands/drive.dart +++ b/packages/flutter_tools/lib/src/commands/drive.dart
@@ -206,7 +206,7 @@ return null; } else if (devices.length > 1) { printStatus('Found multiple connected devices:'); - printStatus(devices.map((Device d) => ' - ${d.name}\n').join('')); + printStatus(devices.map<String>((Device d) => ' - ${d.name}\n').join('')); } printStatus('Using device ${devices.first.name}.'); return devices.first;
diff --git a/packages/flutter_tools/lib/src/commands/fuchsia_reload.dart b/packages/flutter_tools/lib/src/commands/fuchsia_reload.dart index fab2988..3979beb 100644 --- a/packages/flutter_tools/lib/src/commands/fuchsia_reload.dart +++ b/packages/flutter_tools/lib/src/commands/fuchsia_reload.dart
@@ -120,7 +120,7 @@ // Wrap everything in try/finally to make sure we kill the ssh processes // doing the port forwarding. try { - final List<int> servicePorts = forwardedPorts.map( + final List<int> servicePorts = forwardedPorts.map<int>( (_PortForwarder pf) => pf.port).toList(); if (_list) { @@ -145,10 +145,10 @@ // Set up a device and hot runner and attach the hot runner to the first // vm service we found. - final List<String> fullAddresses = targetPorts.map( + final List<String> fullAddresses = targetPorts.map<String>( (int p) => '$ipv4Loopback:$p' ).toList(); - final List<Uri> observatoryUris = fullAddresses.map( + final List<Uri> observatoryUris = fullAddresses.map<Uri>( (String a) => Uri.parse('http://$a') ).toList(); final FuchsiaDevice device = FuchsiaDevice( @@ -168,7 +168,7 @@ printStatus('Connecting to $_modName'); await hotRunner.attach(viewFilter: isolateName); } finally { - await Future.wait(forwardedPorts.map((_PortForwarder pf) => pf.stop())); + await Future.wait<Null>(forwardedPorts.map<Future<Null>>((_PortForwarder pf) => pf.stop())); } } @@ -474,11 +474,11 @@ printTrace("_PortForwarder running '${command.join(' ')}'"); final Process process = await processManager.start(command); process.stderr - .transform(utf8.decoder) - .transform(const LineSplitter()) + .transform<String>(utf8.decoder) + .transform<String>(const LineSplitter()) .listen((String data) { printTrace(data); }); // Best effort to print the exit code. - process.exitCode.then((int c) { // ignore: unawaited_futures + process.exitCode.then<void>((int c) { // ignore: unawaited_futures printTrace("'${command.join(' ')}' exited with exit code $c"); }); printTrace('Set up forwarding from $localPort to $address:$remotePort');
diff --git a/packages/flutter_tools/lib/src/commands/run.dart b/packages/flutter_tools/lib/src/commands/run.dart index 1f3bbc7..36efd98 100644 --- a/packages/flutter_tools/lib/src/commands/run.dart +++ b/packages/flutter_tools/lib/src/commands/run.dart
@@ -344,7 +344,7 @@ fs.file(pidFile).writeAsStringSync(pid.toString()); } - final List<FlutterDevice> flutterDevices = devices.map((Device device) { + final List<FlutterDevice> flutterDevices = devices.map<FlutterDevice>((Device device) { return FlutterDevice( device, trackWidgetCreation: argResults['track-widget-creation'], @@ -392,7 +392,7 @@ // Do not add more operations to the future. final Completer<void> appStartedTimeRecorder = Completer<void>.sync(); // This callback can't throw. - appStartedTimeRecorder.future.then( // ignore: unawaited_futures + appStartedTimeRecorder.future.then<void>( // ignore: unawaited_futures (_) { appStartedTime = clock.now(); } );
diff --git a/packages/flutter_tools/lib/src/compile.dart b/packages/flutter_tools/lib/src/compile.dart index c2b0352..26c239a 100644 --- a/packages/flutter_tools/lib/src/compile.dart +++ b/packages/flutter_tools/lib/src/compile.dart
@@ -179,11 +179,11 @@ final _StdoutHandler _stdoutHandler = _StdoutHandler(); server.stderr - .transform(utf8.decoder) + .transform<String>(utf8.decoder) .listen((String message) { printError(message); }); server.stdout - .transform(utf8.decoder) - .transform(const LineSplitter()) + .transform<String>(utf8.decoder) + .transform<String>(const LineSplitter()) .listen(_stdoutHandler.handler); final int exitCode = await server.exitCode; if (exitCode == 0) { @@ -372,8 +372,8 @@ printTrace(command.join(' ')); _server = await processManager.start(command); _server.stdout - .transform(utf8.decoder) - .transform(const LineSplitter()) + .transform<String>(utf8.decoder) + .transform<String>(const LineSplitter()) .listen( _stdoutHandler.handler, onDone: () { @@ -385,8 +385,8 @@ }); _server.stderr - .transform(utf8.decoder) - .transform(const LineSplitter()) + .transform<String>(utf8.decoder) + .transform<String>(const LineSplitter()) .listen((String message) { printError(message); }); _server.stdin.writeln('compile $scriptFilename');
diff --git a/packages/flutter_tools/lib/src/dart/analysis.dart b/packages/flutter_tools/lib/src/dart/analysis.dart index 0815190..481e4cb 100644 --- a/packages/flutter_tools/lib/src/dart/analysis.dart +++ b/packages/flutter_tools/lib/src/dart/analysis.dart
@@ -43,11 +43,11 @@ _process.exitCode.whenComplete(() => _process = null); // ignore: unawaited_futures final Stream<String> errorStream = - _process.stderr.transform(utf8.decoder).transform(const LineSplitter()); + _process.stderr.transform<String>(utf8.decoder).transform<String>(const LineSplitter()); errorStream.listen(printError); final Stream<String> inStream = - _process.stdout.transform(utf8.decoder).transform(const LineSplitter()); + _process.stdout.transform<String>(utf8.decoder).transform<String>(const LineSplitter()); inStream.listen(_handleServerResponse); // Available options (many of these are obsolete):
diff --git a/packages/flutter_tools/lib/src/devfs.dart b/packages/flutter_tools/lib/src/devfs.dart index 0594742..3dd8819 100644 --- a/packages/flutter_tools/lib/src/devfs.dart +++ b/packages/flutter_tools/lib/src/devfs.dart
@@ -47,7 +47,7 @@ Stream<List<int>> contentsAsStream(); Stream<List<int>> contentsAsCompressedStream() { - return contentsAsStream().transform(gzip.encoder); + return contentsAsStream().transform<List<int>>(gzip.encoder); } /// Return the list of files this content depends on. @@ -445,7 +445,7 @@ if (!content._exists) { final Future<Map<String, dynamic>> operation = _operations.deleteFile(fsName, deviceUri) - .then((dynamic v) => v?.cast<String,dynamic>()); + .then<Map<String, dynamic>>((dynamic v) => v?.cast<String,dynamic>()); if (operation != null) _pendingOperations.add(operation); toRemove.add(deviceUri); @@ -458,7 +458,7 @@ if (toRemove.isNotEmpty) { printTrace('Removing deleted files'); toRemove.forEach(_entries.remove); - await Future.wait(_pendingOperations); + await Future.wait<Map<String, dynamic>>(_pendingOperations); _pendingOperations.clear(); } @@ -542,11 +542,11 @@ dirtyEntries.forEach((Uri deviceUri, DevFSContent content) { final Future<Map<String, dynamic>> operation = _operations.writeFile(fsName, deviceUri, content) - .then((dynamic v) => v?.cast<String, dynamic>()); + .then<Map<String, dynamic>>((dynamic v) => v?.cast<String, dynamic>()); if (operation != null) _pendingOperations.add(operation); }); - await Future.wait(_pendingOperations, eagerError: true); + await Future.wait<Map<String, dynamic>>(_pendingOperations, eagerError: true); _pendingOperations.clear(); } }
diff --git a/packages/flutter_tools/lib/src/device.dart b/packages/flutter_tools/lib/src/device.dart index 61ff0ab..29f5c27 100644 --- a/packages/flutter_tools/lib/src/device.dart +++ b/packages/flutter_tools/lib/src/device.dart
@@ -315,14 +315,14 @@ // Calculate column widths final List<int> indices = List<int>.generate(table[0].length - 1, (int i) => i); - List<int> widths = indices.map((int i) => 0).toList(); + List<int> widths = indices.map<int>((int i) => 0).toList(); for (List<String> row in table) { - widths = indices.map((int i) => math.max(widths[i], row[i].length)).toList(); + widths = indices.map<int>((int i) => math.max(widths[i], row[i].length)).toList(); } // Join columns into lines of text for (List<String> row in table) { - yield indices.map((int i) => row[i].padRight(widths[i])).join(' • ') + ' • ${row.last}'; + yield indices.map<String>((int i) => row[i].padRight(widths[i])).join(' • ') + ' • ${row.last}'; } }
diff --git a/packages/flutter_tools/lib/src/doctor.dart b/packages/flutter_tools/lib/src/doctor.dart index 1c625b4..d0fcf2f 100644 --- a/packages/flutter_tools/lib/src/doctor.dart +++ b/packages/flutter_tools/lib/src/doctor.dart
@@ -569,9 +569,9 @@ try { final Iterable<Directory> installDirs = installPaths - .map((String installPath) => fs.directory(installPath)) - .map((Directory dir) => dir.existsSync() ? dir.listSync() : <FileSystemEntity>[]) - .expand((List<FileSystemEntity> mappedDirs) => mappedDirs) + .map<Directory>((String installPath) => fs.directory(installPath)) + .map<List<FileSystemEntity>>((Directory dir) => dir.existsSync() ? dir.listSync() : <FileSystemEntity>[]) + .expand<FileSystemEntity>((List<FileSystemEntity> mappedDirs) => mappedDirs) .whereType<Directory>(); for (Directory dir in installDirs) { checkForIntelliJ(dir); @@ -626,13 +626,13 @@ if (devices.isEmpty) { final List<String> diagnostics = await deviceManager.getDeviceDiagnostics(); if (diagnostics.isNotEmpty) { - messages = diagnostics.map((String message) => ValidationMessage(message)).toList(); + messages = diagnostics.map<ValidationMessage>((String message) => ValidationMessage(message)).toList(); } else { messages = <ValidationMessage>[ValidationMessage.hint('No devices available')]; } } else { messages = await Device.descriptions(devices) - .map((String msg) => ValidationMessage(msg)).toList(); + .map<ValidationMessage>((String msg) => ValidationMessage(msg)).toList(); } if (devices.isEmpty) {
diff --git a/packages/flutter_tools/lib/src/emulator.dart b/packages/flutter_tools/lib/src/emulator.dart index c40497c..42e63fe 100644 --- a/packages/flutter_tools/lib/src/emulator.dart +++ b/packages/flutter_tools/lib/src/emulator.dart
@@ -54,7 +54,7 @@ /// Return the list of all available emulators. Future<List<Emulator>> getAllAvailableEmulators() async { final List<Emulator> emulators = <Emulator>[]; - await Future.forEach(_platformDiscoverers, (EmulatorDiscovery discoverer) async { + await Future.forEach<EmulatorDiscovery>(_platformDiscoverers, (EmulatorDiscovery discoverer) async { emulators.addAll(await discoverer.emulators); }); return emulators; @@ -69,7 +69,7 @@ // so we can keep adding suffixes until we miss. final List<Emulator> all = await getAllAvailableEmulators(); final Set<String> takenNames = all - .map((Emulator e) => e.id) + .map<String>((Emulator e) => e.id) .where((String id) => id.startsWith(autoName)) .toSet(); int suffix = 1; @@ -176,8 +176,8 @@ .toList(); final List<int> availableApiVersions = availableIDs - .map((String id) => androidApiVersion.firstMatch(id).group(1)) - .map((String apiVersion) => int.parse(apiVersion)) + .map<String>((String id) => androidApiVersion.firstMatch(id).group(1)) + .map<int>((String apiVersion) => int.parse(apiVersion)) .toList(); // Get the highest Android API version or whats left @@ -253,21 +253,21 @@ // Calculate column widths final List<int> indices = List<int>.generate(table[0].length - 1, (int i) => i); - List<int> widths = indices.map((int i) => 0).toList(); + List<int> widths = indices.map<int>((int i) => 0).toList(); for (List<String> row in table) { - widths = indices.map((int i) => math.max(widths[i], row[i].length)).toList(); + widths = indices.map<int>((int i) => math.max(widths[i], row[i].length)).toList(); } // Join columns into lines of text final RegExp whiteSpaceAndDots = RegExp(r'[•\s]+$'); return table - .map((List<String> row) { + .map<String>((List<String> row) { return indices - .map((int i) => row[i].padRight(widths[i])) + .map<String>((int i) => row[i].padRight(widths[i])) .join(' • ') + ' • ${row.last}'; }) - .map((String line) => line.replaceAll(whiteSpaceAndDots, '')) + .map<String>((String line) => line.replaceAll(whiteSpaceAndDots, '')) .toList(); }
diff --git a/packages/flutter_tools/lib/src/flutter_manifest.dart b/packages/flutter_tools/lib/src/flutter_manifest.dart index 9e937f4..6fa8efb 100644 --- a/packages/flutter_tools/lib/src/flutter_manifest.dart +++ b/packages/flutter_tools/lib/src/flutter_manifest.dart
@@ -224,7 +224,7 @@ Map<String, dynamic> get descriptor { return <String, dynamic>{ 'family': familyName, - 'fonts': fontAssets.map((FontAsset a) => a.descriptor).toList(), + 'fonts': fontAssets.map<Map<String, dynamic>>((FontAsset a) => a.descriptor).toList(), }; }
diff --git a/packages/flutter_tools/lib/src/ios/devices.dart b/packages/flutter_tools/lib/src/ios/devices.dart index 111b654..d9f4e26 100644 --- a/packages/flutter_tools/lib/src/ios/devices.dart +++ b/packages/flutter_tools/lib/src/ios/devices.dart
@@ -477,8 +477,8 @@ void _start() { iMobileDevice.startLogger().then<Null>((Process process) { _process = process; - _process.stdout.transform(utf8.decoder).transform(const LineSplitter()).listen(_newLineHandler()); - _process.stderr.transform(utf8.decoder).transform(const LineSplitter()).listen(_newLineHandler()); + _process.stdout.transform<String>(utf8.decoder).transform<String>(const LineSplitter()).listen(_newLineHandler()); + _process.stderr.transform<String>(utf8.decoder).transform<String>(const LineSplitter()).listen(_newLineHandler()); _process.exitCode.whenComplete(() { if (_linesController.hasListener) _linesController.close();
diff --git a/packages/flutter_tools/lib/src/ios/mac.dart b/packages/flutter_tools/lib/src/ios/mac.dart index d86bf9b..d77a41d 100644 --- a/packages/flutter_tools/lib/src/ios/mac.dart +++ b/packages/flutter_tools/lib/src/ios/mac.dart
@@ -662,7 +662,7 @@ void _copyServiceDefinitionsManifest(List<Map<String, String>> services, File manifest) { printTrace("Creating service definitions manifest at '${manifest.path}'"); - final List<Map<String, String>> jsonServices = services.map((Map<String, String> service) => <String, String>{ + final List<Map<String, String>> jsonServices = services.map<Map<String, String>>((Map<String, String> service) => <String, String>{ 'name': service['name'], // Since we have already moved it to the Frameworks directory. Strip away // the directory and basenames.
diff --git a/packages/flutter_tools/lib/src/ios/simulators.dart b/packages/flutter_tools/lib/src/ios/simulators.dart index e4ba830..77dd9d4 100644 --- a/packages/flutter_tools/lib/src/ios/simulators.dart +++ b/packages/flutter_tools/lib/src/ios/simulators.dart
@@ -46,7 +46,7 @@ if (!xcode.isInstalledAndMeetsVersionCheck) return <IOSSimulator>[]; - return SimControl.instance.getConnectedDevices().map((SimDevice device) { + return SimControl.instance.getConnectedDevices().map<IOSSimulator>((SimDevice device) { return IOSSimulator(device.udid, name: device.name, category: device.category); }).toList(); } @@ -339,7 +339,7 @@ } Future<bool> _applicationIsInstalledAndRunning(ApplicationPackage app) async { - final List<bool> criteria = await Future.wait(<Future<bool>>[ + final List<bool> criteria = await Future.wait<bool>(<Future<bool>>[ isAppInstalled(app), exitsHappyAsync(<String>['/usr/bin/killall', 'Runner']), ]); @@ -510,15 +510,15 @@ // Device log. await device.ensureLogsExists(); _deviceProcess = await launchDeviceLogTool(device); - _deviceProcess.stdout.transform(utf8.decoder).transform(const LineSplitter()).listen(_onDeviceLine); - _deviceProcess.stderr.transform(utf8.decoder).transform(const LineSplitter()).listen(_onDeviceLine); + _deviceProcess.stdout.transform<String>(utf8.decoder).transform<String>(const LineSplitter()).listen(_onDeviceLine); + _deviceProcess.stderr.transform<String>(utf8.decoder).transform<String>(const LineSplitter()).listen(_onDeviceLine); // Track system.log crashes. // ReportCrash[37965]: Saved crash report for FlutterRunner[37941]... _systemProcess = await launchSystemLogTool(device); if (_systemProcess != null) { - _systemProcess.stdout.transform(utf8.decoder).transform(const LineSplitter()).listen(_onSystemLine); - _systemProcess.stderr.transform(utf8.decoder).transform(const LineSplitter()).listen(_onSystemLine); + _systemProcess.stdout.transform<String>(utf8.decoder).transform<String>(const LineSplitter()).listen(_onSystemLine); + _systemProcess.stderr.transform<String>(utf8.decoder).transform<String>(const LineSplitter()).listen(_onSystemLine); } // We don't want to wait for the process or its callback. Best effort @@ -629,8 +629,8 @@ } int compareIosVersions(String v1, String v2) { - final List<int> v1Fragments = v1.split('.').map(int.parse).toList(); - final List<int> v2Fragments = v2.split('.').map(int.parse).toList(); + final List<int> v1Fragments = v1.split('.').map<int>(int.parse).toList(); + final List<int> v2Fragments = v2.split('.').map<int>(int.parse).toList(); int i = 0; while (i < v1Fragments.length && i < v2Fragments.length) {
diff --git a/packages/flutter_tools/lib/src/ios/xcodeproj.dart b/packages/flutter_tools/lib/src/ios/xcodeproj.dart index 9e63865..2bb2a20 100644 --- a/packages/flutter_tools/lib/src/ios/xcodeproj.dart +++ b/packages/flutter_tools/lib/src/ios/xcodeproj.dart
@@ -171,7 +171,7 @@ Map<String, String> parseXcodeBuildSettings(String showBuildSettingsOutput) { final Map<String, String> settings = <String, String>{}; - for (Match match in showBuildSettingsOutput.split('\n').map(_settingExpr.firstMatch)) { + for (Match match in showBuildSettingsOutput.split('\n').map<Match>(_settingExpr.firstMatch)) { if (match != null) { settings[match[1]] = match[2]; }
diff --git a/packages/flutter_tools/lib/src/plugins.dart b/packages/flutter_tools/lib/src/plugins.dart index e9a16d7..2b959c7 100644 --- a/packages/flutter_tools/lib/src/plugins.dart +++ b/packages/flutter_tools/lib/src/plugins.dart
@@ -94,7 +94,7 @@ final File pluginsFile = project.flutterPluginsFile; final String oldContents = _readFlutterPluginsList(project); final String pluginManifest = - plugins.map((Plugin p) => '${p.name}=${escapePath(p.path)}').join('\n'); + plugins.map<String>((Plugin p) => '${p.name}=${escapePath(p.path)}').join('\n'); if (pluginManifest.isNotEmpty) { pluginsFile.writeAsStringSync('$pluginManifest\n', flush: true); } else { @@ -147,7 +147,7 @@ Future<void> _writeAndroidPluginRegistrant(FlutterProject project, List<Plugin> plugins) async { final List<Map<String, dynamic>> androidPlugins = plugins .where((Plugin p) => p.androidPackage != null && p.pluginClass != null) - .map((Plugin p) => <String, dynamic>{ + .map<Map<String, dynamic>>((Plugin p) => <String, dynamic>{ 'name': p.name, 'package': p.androidPackage, 'class': p.pluginClass, @@ -238,7 +238,7 @@ Future<void> _writeIOSPluginRegistrant(FlutterProject project, List<Plugin> plugins) async { final List<Map<String, dynamic>> iosPlugins = plugins .where((Plugin p) => p.pluginClass != null) - .map((Plugin p) => <String, dynamic>{ + .map<Map<String, dynamic>>((Plugin p) => <String, dynamic>{ 'name': p.name, 'prefix': p.iosPrefix, 'class': p.pluginClass,
diff --git a/packages/flutter_tools/lib/src/project.dart b/packages/flutter_tools/lib/src/project.dart index 9df371a..0654611 100644 --- a/packages/flutter_tools/lib/src/project.dart +++ b/packages/flutter_tools/lib/src/project.dart
@@ -77,7 +77,7 @@ example.ios.productBundleIdentifier, ]; return Set<String>.from(candidates - .map(_organizationNameFromPackageName) + .map<String>(_organizationNameFromPackageName) .where((String name) => name != null)); }
diff --git a/packages/flutter_tools/lib/src/resident_runner.dart b/packages/flutter_tools/lib/src/resident_runner.dart index 2824e20..73cee56 100644 --- a/packages/flutter_tools/lib/src/resident_runner.dart +++ b/packages/flutter_tools/lib/src/resident_runner.dart
@@ -89,7 +89,7 @@ return vmServices .where((VMService service) => !service.isClosed) - .expand((VMService service) => viewFilter != null + .expand<FlutterView>((VMService service) => viewFilter != null ? service.vm.allViewsWithName(viewFilter) : service.vm.views) .toList(); @@ -149,7 +149,7 @@ final Uri deviceAssetsDirectoryUri = devFS.baseUri.resolveUri( fs.path.toUri(getAssetBuildDirectory())); assert(deviceAssetsDirectoryUri != null); - await Future.wait(views.map( + await Future.wait<Null>(views.map<Future<Null>>( (FlutterView view) => view.setAssetDirectory(deviceAssetsDirectoryUri) )); } @@ -611,8 +611,8 @@ } Future<Null> stopEchoingDeviceLog() async { - await Future.wait( - flutterDevices.map((FlutterDevice device) => device.stopEchoingDeviceLog()) + await Future.wait<Null>( + flutterDevices.map<Future<Null>>((FlutterDevice device) => device.stopEchoingDeviceLog()) ); }
diff --git a/packages/flutter_tools/lib/src/run_hot.dart b/packages/flutter_tools/lib/src/run_hot.dart index f973c89..1d6a0a8 100644 --- a/packages/flutter_tools/lib/src/run_hot.dart +++ b/packages/flutter_tools/lib/src/run_hot.dart
@@ -582,11 +582,11 @@ ); countExpectedReports += reports.length; await Future - .wait(reports) + .wait<Map<String, dynamic>>(reports) .catchError((dynamic error) { return <Map<String, dynamic>>[error]; }) - .then( + .then<void>( (List<Map<String, dynamic>> list) { // TODO(aam): Investigate why we are validating only first reload report, // which seems to be current behavior
diff --git a/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart b/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart index edfc074..68cc46f 100644 --- a/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart +++ b/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
@@ -425,7 +425,7 @@ List<String> getRepoRoots() { final String root = fs.path.absolute(Cache.flutterRoot); // not bin, and not the root - return <String>['dev', 'examples', 'packages'].map((String item) { + return <String>['dev', 'examples', 'packages'].map<String>((String item) { return fs.path.join(root, item); }).toList(); } @@ -434,7 +434,7 @@ List<Directory> getRepoPackages() { return getRepoRoots() .expand<String>((String root) => _gatherProjectPaths(root)) - .map((String dir) => fs.directory(dir)) + .map<Directory>((String dir) => fs.directory(dir)) .toList(); }
diff --git a/packages/flutter_tools/lib/src/services.dart b/packages/flutter_tools/lib/src/services.dart index 2edceb7..bdc61d2 100644 --- a/packages/flutter_tools/lib/src/services.dart +++ b/packages/flutter_tools/lib/src/services.dart
@@ -98,7 +98,7 @@ String dir, List<Map<String, String>> servicesIn ) { final List<Map<String, String>> services = - servicesIn.map((Map<String, String> service) => <String, String>{ + servicesIn.map<Map<String, String>>((Map<String, String> service) => <String, String>{ 'name': service['name'], 'class': service['android-class'] }).toList();
diff --git a/packages/flutter_tools/lib/src/test/flutter_platform.dart b/packages/flutter_tools/lib/src/test/flutter_platform.dart index 58ae3c6..e734fb2 100644 --- a/packages/flutter_tools/lib/src/test/flutter_platform.dart +++ b/packages/flutter_tools/lib/src/test/flutter_platform.dart
@@ -526,7 +526,7 @@ watcher?.handleStartedProcess(ProcessEvent(ourTestCount, process, processObservatoryUri)); }, startTimeoutTimer: () { - Future<_InitialResult>.delayed(_kTestStartupTimeout).then((_) => timeout.complete()); + Future<_InitialResult>.delayed(_kTestStartupTimeout).then<void>((_) => timeout.complete()); }, ); @@ -536,7 +536,7 @@ // The local test harness could get bored of us. printTrace('test $ourTestCount: awaiting initial result for pid ${process.pid}'); - final _InitialResult initialResult = await Future.any(<Future<_InitialResult>>[ + final _InitialResult initialResult = await Future.any<_InitialResult>(<Future<_InitialResult>>[ process.exitCode.then<_InitialResult>((int exitCode) => _InitialResult.crashed), timeout.future.then<_InitialResult>((void value) => _InitialResult.timedOut), Future<_InitialResult>.delayed(_kTestProcessTimeout, () => _InitialResult.timedOut), @@ -615,13 +615,13 @@ ); printTrace('test $ourTestCount: awaiting test result for pid ${process.pid}'); - final _TestResult testResult = await Future.any(<Future<_TestResult>>[ + final _TestResult testResult = await Future.any<_TestResult>(<Future<_TestResult>>[ process.exitCode.then<_TestResult>((int exitCode) { return _TestResult.crashed; }), harnessDone.future.then<_TestResult>((void value) { return _TestResult.harnessBailed; }), testDone.future.then<_TestResult>((void value) { return _TestResult.testBailed; }), ]); - await Future.wait(<Future<void>>[ + await Future.wait<void>(<Future<void>>[ harnessToTest.cancel(), testToHarness.cancel(), ]); @@ -870,8 +870,8 @@ const String observatoryString = 'Observatory listening on '; for (Stream<List<int>> stream in <Stream<List<int>>>[process.stderr, process.stdout]) { - stream.transform(utf8.decoder) - .transform(const LineSplitter()) + stream.transform<String>(utf8.decoder) + .transform<String>(const LineSplitter()) .listen( (String line) { if (line == _kStartTimeoutTimerMessage) {
diff --git a/packages/flutter_tools/lib/src/tester/flutter_tester.dart b/packages/flutter_tools/lib/src/tester/flutter_tester.dart index 2487d63..4e5ff5f 100644 --- a/packages/flutter_tools/lib/src/tester/flutter_tester.dart +++ b/packages/flutter_tools/lib/src/tester/flutter_tester.dart
@@ -153,16 +153,16 @@ }, ); // Setting a bool can't fail in the callback. - _process.exitCode.then((_) => _isRunning = false); // ignore: unawaited_futures + _process.exitCode.then<void>((_) => _isRunning = false); // ignore: unawaited_futures _process.stdout - .transform(utf8.decoder) - .transform(const LineSplitter()) + .transform<String>(utf8.decoder) + .transform<String>(const LineSplitter()) .listen((String line) { _logReader.addLine(line); }); _process.stderr - .transform(utf8.decoder) - .transform(const LineSplitter()) + .transform<String>(utf8.decoder) + .transform<String>(const LineSplitter()) .listen((String line) { _logReader.addLine(line); });
diff --git a/packages/flutter_tools/lib/src/version.dart b/packages/flutter_tools/lib/src/version.dart index e1dea0e..98612c0 100644 --- a/packages/flutter_tools/lib/src/version.dart +++ b/packages/flutter_tools/lib/src/version.dart
@@ -161,7 +161,7 @@ static Future<Null> _removeVersionCheckRemoteIfExists() async { final List<String> remotes = (await _run(<String>['git', 'remote'])) .split('\n') - .map((String name) => name.trim()) // to account for OS-specific line-breaks + .map<String>((String name) => name.trim()) // to account for OS-specific line-breaks .toList(); if (remotes.contains(_versionCheckRemote)) await _run(<String>['git', 'remote', 'remove', _versionCheckRemote]);
diff --git a/packages/flutter_tools/lib/src/vmservice.dart b/packages/flutter_tools/lib/src/vmservice.dart index 3fc389a..ae7652e 100644 --- a/packages/flutter_tools/lib/src/vmservice.dart +++ b/packages/flutter_tools/lib/src/vmservice.dart
@@ -289,7 +289,7 @@ String method, Map<String, dynamic> params, ) { - return Future.any(<Future<Map<String, dynamic>>>[ + return Future.any<Map<String, dynamic>>(<Future<Map<String, dynamic>>>[ _peer.sendRequest(method, params).then<Map<String, dynamic>>(castStringKeyedMap), _connectionError.future, ]); @@ -954,7 +954,7 @@ return; _viewCache.clear(); for (Isolate isolate in isolates.toList()) { - await vmService.vm.invokeRpc('_flutter.listViews', + await vmService.vm.invokeRpc<ServiceObject>('_flutter.listViews', timeout: kLongRequestTimeout, params: <String, dynamic> {'isolateId': isolate.id}); } @@ -1208,7 +1208,7 @@ <Future<ProgramElement>>[]; for (Map<String, dynamic> element in response['unused']) unusedElements.add(_describeElement(element)); - return Future.wait(unusedElements); + return Future.wait<ProgramElement>(unusedElements); } /// Resumes the isolate. @@ -1388,7 +1388,7 @@ @override void removeWhere(bool test(String key, dynamic value)) => _map.removeWhere(test); @override - Map<K2, V2> map<K2, V2>(MapEntry<K2, V2> transform(String key, dynamic value)) => _map.map(transform); + Map<K2, V2> map<K2, V2>(MapEntry<K2, V2> transform(String key, dynamic value)) => _map.map<K2, V2>(transform); @override Iterable<MapEntry<String, dynamic>> get entries => _map.entries; @override @@ -1440,7 +1440,7 @@ Future<Null> setAssetDirectory(Uri assetsDirectory) async { assert(assetsDirectory != null); - await owner.vmService.vm.invokeRpc('_flutter.setAssetBundlePath', + await owner.vmService.vm.invokeRpc<ServiceObject>('_flutter.setAssetBundlePath', params: <String, dynamic>{ 'isolateId': _uiIsolate.id, 'viewId': id,
diff --git a/packages/flutter_tools/lib/src/vscode/vscode_validator.dart b/packages/flutter_tools/lib/src/vscode/vscode_validator.dart index f68a3ec..b93e1d0 100644 --- a/packages/flutter_tools/lib/src/vscode/vscode_validator.dart +++ b/packages/flutter_tools/lib/src/vscode/vscode_validator.dart
@@ -18,7 +18,7 @@ static Iterable<DoctorValidator> get installedValidators { return VsCode .allInstalled() - .map((VsCode vsCode) => VsCodeValidator(vsCode)); + .map<DoctorValidator>((VsCode vsCode) => VsCodeValidator(vsCode)); } @override @@ -32,11 +32,11 @@ if (_vsCode.isValid) { type = ValidationType.installed; messages.addAll(_vsCode.validationMessages - .map((String m) => ValidationMessage(m))); + .map<ValidationMessage>((String m) => ValidationMessage(m))); } else { type = ValidationType.partial; messages.addAll(_vsCode.validationMessages - .map((String m) => ValidationMessage.error(m))); + .map<ValidationMessage>((String m) => ValidationMessage.error(m))); messages.add(ValidationMessage( 'Flutter extension not installed; install from\n$extensionMarketplaceUrl')); }
diff --git a/packages/flutter_tools/test/android/android_workflow_test.dart b/packages/flutter_tools/test/android/android_workflow_test.dart index 73c9dc1..9564bd8 100644 --- a/packages/flutter_tools/test/android/android_workflow_test.dart +++ b/packages/flutter_tools/test/android/android_workflow_test.dart
@@ -33,7 +33,7 @@ MockProcess Function(List<String>) processMetaFactory(List<String> stdout) { final Stream<List<int>> stdoutStream = Stream<List<int>>.fromIterable( - stdout.map((String s) => s.codeUnits)); + stdout.map<List<int>>((String s) => s.codeUnits)); return (List<String> command) => MockProcess(stdout: stdoutStream); }
diff --git a/packages/flutter_tools/test/base/context_test.dart b/packages/flutter_tools/test/base/context_test.dart index f7291dc..94ec567 100644 --- a/packages/flutter_tools/test/base/context_test.dart +++ b/packages/flutter_tools/test/base/context_test.dart
@@ -24,7 +24,7 @@ test('returns root context in child of root zone if zone was manually created', () { final Zone rootZone = Zone.current; final AppContext rootContext = context; - runZoned(() { + runZoned<void>(() { expect(Zone.current, isNot(rootZone)); expect(Zone.current.parent, rootZone); expect(context, rootContext); @@ -61,7 +61,7 @@ final AppContext rootContext = context; await rootContext.run<void>(name: 'child', body: () { final AppContext childContext = context; - runZoned(() { + runZoned<void>(() { expect(context, isNot(rootContext)); expect(context, same(childContext)); expect(context.name, 'child'); @@ -79,7 +79,7 @@ String value; await context.run<void>( body: () { - outer.future.then((_) { + outer.future.then<void>((_) { value = context[String]; inner.complete(); });
diff --git a/packages/flutter_tools/test/commands/daemon_test.dart b/packages/flutter_tools/test/commands/daemon_test.dart index 15301da..b1315ea 100644 --- a/packages/flutter_tools/test/commands/daemon_test.dart +++ b/packages/flutter_tools/test/commands/daemon_test.dart
@@ -73,7 +73,7 @@ testUsingContext('printStatus should log to stdout when logToStdout is enabled', () async { final StringBuffer buffer = StringBuffer(); - await runZoned(() async { + await runZoned<Future<void>>(() async { final StreamController<Map<String, dynamic>> commands = StreamController<Map<String, dynamic>>(); final StreamController<Map<String, dynamic>> responses = StreamController<Map<String, dynamic>>(); daemon = Daemon( @@ -228,7 +228,7 @@ daemon.deviceDomain.addDeviceDiscoverer(discoverer); discoverer.addDevice(MockAndroidDevice()); - return await responses.stream.skipWhile(_isConnectedEvent).first.then((Map<String, dynamic> response) async { + return await responses.stream.skipWhile(_isConnectedEvent).first.then<void>((Map<String, dynamic> response) async { expect(response['event'], 'device.added'); expect(response['params'], isMap);
diff --git a/packages/flutter_tools/test/commands/packages_test.dart b/packages/flutter_tools/test/commands/packages_test.dart index 95c7f46..5f74b3a 100644 --- a/packages/flutter_tools/test/commands/packages_test.dart +++ b/packages/flutter_tools/test/commands/packages_test.dart
@@ -159,7 +159,7 @@ pubOutput, pluginRegistrants, pluginWitnesses, - ].expand((List<String> list) => list); + ].expand<String>((List<String> list) => list); for (String path in allFiles) { final File file = fs.file(fs.path.join(projectPath, path)); if (file.existsSync()) @@ -285,7 +285,7 @@ final Future<Null> simulateUserInput = Future<Null>(() { mockStdio.simulateStdin('y'); }); - await Future.wait(<Future<Null>>[runPackages, runPrompt, simulateUserInput]); + await Future.wait<Null>(<Future<Null>>[runPackages, runPrompt, simulateUserInput]); final List<String> commands = mockProcessManager.commands; expect(commands, hasLength(2)); expect(commands[0], matches(r'dart-sdk[\\/]bin[\\/]pub'));
diff --git a/packages/flutter_tools/test/integration/test_driver.dart b/packages/flutter_tools/test/integration/test_driver.dart index e70eb15..b8503a2 100644 --- a/packages/flutter_tools/test/integration/test_driver.dart +++ b/packages/flutter_tools/test/integration/test_driver.dart
@@ -127,7 +127,7 @@ // Proxy the stream/sink for the VM Client so we can debugPrint it. final StreamChannel<String> channel = IOWebSocketChannel.connect(_vmServiceWsUri) .cast<String>() - .changeStream((Stream<String> stream) => stream.map(_debugPrint)) + .changeStream((Stream<String> stream) => stream.map<String>(_debugPrint)) .changeSink((StreamSink<String> sink) => StreamController<String>() ..stream.listen((String s) => sink.add(_debugPrint(s)))); @@ -282,7 +282,7 @@ Future<VMInstanceRef> evaluateExpression(String expression) async { final VMFrame topFrame = await getTopStackFrame(); - return _timeoutWithMessages(() => topFrame.evaluate(expression), + return _timeoutWithMessages<VMInstanceRef>(() => topFrame.evaluate(expression), message: 'Timed out evaluating expression ($expression)'); } @@ -334,7 +334,7 @@ } }); - return _timeoutWithMessages(() => response.future, + return _timeoutWithMessages<Map<String, dynamic>>(() => response.future, timeout: timeout, message: event != null ? 'Did not receive expected $event event.' @@ -406,5 +406,5 @@ } Stream<String> _transformToLines(Stream<List<int>> byteStream) { - return byteStream.transform(utf8.decoder).transform(const LineSplitter()); + return byteStream.transform<String>(utf8.decoder).transform<String>(const LineSplitter()); }
diff --git a/packages/flutter_tools/test/src/context.dart b/packages/flutter_tools/test/src/context.dart index b20bac2..e91e155 100644 --- a/packages/flutter_tools/test/src/context.dart +++ b/packages/flutter_tools/test/src/context.dart
@@ -85,7 +85,7 @@ body: () { final String flutterRoot = getFlutterRoot(); - return runZoned(() { + return runZoned<Future<dynamic>>(() { try { return context.run<dynamic>( // Apply the overrides to the test context in the zone since their @@ -198,7 +198,7 @@ /// the Doctor. List<DoctorValidator> get validators { final List<DoctorValidator> superValidators = super.validators; - return superValidators.map((DoctorValidator v) { + return superValidators.map<DoctorValidator>((DoctorValidator v) { if (v is AndroidValidator) { return MockAndroidWorkflowValidator(); }
diff --git a/packages/flutter_tools/test/src/mocks.dart b/packages/flutter_tools/test/src/mocks.dart index d21cc91..5bcb4bc 100644 --- a/packages/flutter_tools/test/src/mocks.dart +++ b/packages/flutter_tools/test/src/mocks.dart
@@ -303,8 +303,8 @@ _stdin.add(utf8.encode('$line\n')); } - List<String> get writtenToStdout => _stdout.writes.map(_stdout.encoding.decode).toList(); - List<String> get writtenToStderr => _stderr.writes.map(_stderr.encoding.decode).toList(); + List<String> get writtenToStdout => _stdout.writes.map<String>(_stdout.encoding.decode).toList(); + List<String> get writtenToStderr => _stderr.writes.map<String>(_stderr.encoding.decode).toList(); } class MockPollingDeviceDiscovery extends PollingDeviceDiscovery {
diff --git a/packages/flutter_tools/tool/daemon_client.dart b/packages/flutter_tools/tool/daemon_client.dart index 10f4895..d8a1d75 100644 --- a/packages/flutter_tools/tool/daemon_client.dart +++ b/packages/flutter_tools/tool/daemon_client.dart
@@ -23,13 +23,13 @@ print('daemon process started, pid: ${daemon.pid}'); daemon.stdout - .transform(utf8.decoder) - .transform(const LineSplitter()) + .transform<String>(utf8.decoder) + .transform<String>(const LineSplitter()) .listen((String line) => print('<== $line')); daemon.stderr.listen((dynamic data) => stderr.add(data)); stdout.write('> '); - stdin.transform(utf8.decoder).transform(const LineSplitter()).listen((String line) { + stdin.transform<String>(utf8.decoder).transform<String>(const LineSplitter()).listen((String line) { final List<String> words = line.split(' '); if (line == 'version' || line == 'v') {
diff --git a/packages/fuchsia_remote_debug_protocol/lib/src/fuchsia_remote_connection.dart b/packages/fuchsia_remote_debug_protocol/lib/src/fuchsia_remote_connection.dart index f9add30..1fec7ca 100644 --- a/packages/fuchsia_remote_debug_protocol/lib/src/fuchsia_remote_connection.dart +++ b/packages/fuchsia_remote_debug_protocol/lib/src/fuchsia_remote_connection.dart
@@ -306,9 +306,9 @@ } isolates.add(vmService.getMainIsolatesByPattern(pattern)); } - final List<IsolateRef> result = await Future.wait(isolates) + final List<IsolateRef> result = await Future.wait<List<IsolateRef>>(isolates) .timeout(timeout) - .then((List<List<IsolateRef>> listOfLists) { + .then<List<IsolateRef>>((List<List<IsolateRef>> listOfLists) { final List<List<IsolateRef>> mutableListOfLists = List<List<IsolateRef>>.from(listOfLists) ..retainWhere((List<IsolateRef> list) => list.isNotEmpty); @@ -477,7 +477,7 @@ await stop(); final List<int> servicePorts = await getDeviceServicePorts(); final List<PortForwarder> forwardedVmServicePorts = - await Future.wait(servicePorts.map((int deviceServicePort) { + await Future.wait<PortForwarder>(servicePorts.map<Future<PortForwarder>>((int deviceServicePort) { return fuchsiaPortForwardingFunction( _sshCommandRunner.address, deviceServicePort,