Commit 3800bb7b authored by Alexandre Ardhuin's avatar Alexandre Ardhuin Committed by Flutter GitHub Bot

fix missing spaces in adjacent strings (#49159)

parent def2205e
<<skip until matching line>>
══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
The following assertion was thrown during layout:
A RenderFlex overflowed by 2844 pixels on the right\.
A RenderFlex overflowed by 2858 pixels on the right\.
The relevant error-causing widget was:
Row
......
......@@ -26,7 +26,7 @@ void main() {
children: const <Widget>[
Text('Title'),
Text(
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed'
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed '
'do eiusmod tempor incididunt ut labore et dolore magna '
'aliqua. Ut enim ad minim veniam, quis nostrud '
'exercitation ullamco laboris nisi ut aliquip ex ea '
......
......@@ -11,7 +11,7 @@ const int _kNumWarmUp = 100;
void main() {
final List<String> words = 'Lorem Ipsum is simply dummy text of the printing and'
'typesetting industry. Lorem Ipsum has been the industry\'s'
' typesetting industry. Lorem Ipsum has been the industry\'s'
' standard dummy text ever since the 1500s, when an unknown'
' printer took a galley of type and scrambled it to make a'
' type specimen book'.split(' ');
......
......@@ -171,7 +171,7 @@ final ArgParser _argParser = ArgParser()
defaultsTo: true,
help: 'Only run tests that match the host platform (e.g. do not run a\n'
'test with a `required_agent_capabilities` value of "mac/android"\n'
'on a windows host). Each test publishes its'
'on a windows host). Each test publishes its '
'`required_agent_capabilities`\nin the `manifest.yaml` file.',
)
..addOption(
......
......@@ -220,7 +220,7 @@ Future<void> main() async {
|| !analyticsOutput.contains('cd25: true')
|| !analyticsOutput.contains('viewName: assemble')) {
return TaskResult.failure(
'Building outer app produced the following analytics: "$analyticsOutput"'
'Building outer app produced the following analytics: "$analyticsOutput" '
'but not the expected strings: "cd24: android", "cd25: true" and '
'"viewName: assemble"'
);
......
......@@ -285,7 +285,7 @@ Future<void> main() async {
|| !objectiveCAnalyticsOutput.contains('cd25: true')
|| !objectiveCAnalyticsOutput.contains('viewName: build/bundle')) {
return TaskResult.failure(
'Building outer Objective-C app produced the following analytics: "$objectiveCAnalyticsOutput"'
'Building outer Objective-C app produced the following analytics: "$objectiveCAnalyticsOutput" '
'but not the expected strings: "cd24: ios", "cd25: true", "viewName: build/bundle"'
);
}
......@@ -374,7 +374,7 @@ Future<void> main() async {
|| !swiftAnalyticsOutput.contains('cd25: true')
|| !swiftAnalyticsOutput.contains('viewName: build/bundle')) {
return TaskResult.failure(
'Building outer Swift app produced the following analytics: "$swiftAnalyticsOutput"'
'Building outer Swift app produced the following analytics: "$swiftAnalyticsOutput" '
'but not the expected strings: "cd24: ios", "cd25: true", "viewName: build/bundle"'
);
}
......
......@@ -132,8 +132,7 @@ void main() {
expect(html, contains('<div>HTML Bits</div>'));
expect(html, contains('<div>More HTML Bits</div>'));
expect(html, contains(' print(&#39;The actual \$name.&#39;);'));
expect(html, contains('<div class="snippet-description">'
'{@end-inject-html}A description of the snippet.\n\n'
expect(html, contains('<div class="snippet-description">{@end-inject-html}A description of the snippet.\n\n'
'On several lines.{@inject-html}</div>\n'));
expect(html, contains('main() {'));
});
......
......@@ -102,7 +102,7 @@ Future<void> main(List<String> rawArguments) async {
argParser.addOption(
'code',
defaultsTo: path.join(flutterRoot.path, 'packages', 'flutter', 'lib', 'src', 'services', 'keyboard_key.dart'),
help: 'The path to where the output "keyboard_keys.dart" file should be'
help: 'The path to where the output "keyboard_keys.dart" file should be '
'written. If --code is not specified, the output will be written to the '
'correct directory in the flutter tree. If the output directory does not '
'exist, it, and the path to it, will be created.',
......@@ -110,7 +110,7 @@ Future<void> main(List<String> rawArguments) async {
argParser.addOption(
'maps',
defaultsTo: path.join(flutterRoot.path, 'packages', 'flutter', 'lib', 'src', 'services', 'keyboard_maps.dart'),
help: 'The path to where the output "keyboard_maps.dart" file should be'
help: 'The path to where the output "keyboard_maps.dart" file should be '
'written. If --maps is not specified, the output will be written to the '
'correct directory in the flutter tree. If the output directory does not '
'exist, it, and the path to it, will be created.',
......
......@@ -544,7 +544,7 @@ String genPluralMethod(Map<String, dynamic> arbBundle, String resourceId) {
}
String genSupportedLocaleProperty(Set<LocaleInfo> supportedLocales) {
const String prefix = 'static const List<Locale> supportedLocales = <Locale>[\n Locale(''';
const String prefix = 'static const List<Locale> supportedLocales = <Locale>[\n Locale(';
const String suffix = '),\n ];';
String resultingProperty = prefix;
......
......@@ -87,8 +87,8 @@ class PathAnimation {
final String currentCommandType = frame.paths[pathIdx].commands[commandIdx].type;
if (commandType != currentCommandType)
throw Exception(
'Paths must be built from the same commands in all frames'
'command $commandIdx at frame 0 was of type \'$commandType\''
'Paths must be built from the same commands in all frames '
'command $commandIdx at frame 0 was of type \'$commandType\' '
'command $commandIdx at frame $i was of type \'$currentCommandType\''
);
for (int j = 0; j < numPointsInCommand; j += 1)
......
......@@ -131,7 +131,7 @@ class FruitPage extends StatelessWidget {
),
const SizedBox(height: 10),
Text(
'How these crazy fruits sweetened our hearts, relationships,'
'How these crazy fruits sweetened our hearts, relationships, '
'and puffed pastries',
style: textTheme.body1,
),
......
......@@ -90,7 +90,7 @@ class _BottomAppBarDemoState extends State<BottomAppBarDemo> {
static void _showSnackbar() {
const String text =
"When the Scaffold's floating action button location changes, "
'the floating action button animates to its new position.'
'the floating action button animates to its new position. '
'The BottomAppBar adapts its shape appropriately.';
_scaffoldKey.currentState.showSnackBar(
const SnackBar(content: Text(text)),
......
......@@ -143,7 +143,7 @@ class HitTestResult {
'The third row and third column of a transform matrix for pointer '
'events must be Vector4(0, 0, 1, 0) to ensure that a transformed '
'point is directly under the pointer device. Did you forget to run the paint '
'matrix through PointerEvent.removePerspectiveTransform?'
'matrix through PointerEvent.removePerspectiveTransform? '
'The provided matrix is:\n$transform'
);
_transforms.add(_transforms.isEmpty ? transform : (transform * _transforms.last as Matrix4));
......
......@@ -76,7 +76,7 @@ bool debugCheckHasMaterialLocalizations(BuildContext context) {
'to be provided by a Localizations widget ancestor.'
),
ErrorDescription(
'Localizations are used to generate many different messages, labels,'
'Localizations are used to generate many different messages, labels, '
'and abbreviations which are used by the material library.'
),
ErrorHint(
......
......@@ -1755,7 +1755,7 @@ class ScaffoldState extends State<Scaffold> with TickerProviderStateMixin {
assert(() {
if (widget.bottomSheet != null && isPersistent && _currentBottomSheet != null) {
throw FlutterError(
'Scaffold.bottomSheet cannot be specified while a bottom sheet'
'Scaffold.bottomSheet cannot be specified while a bottom sheet '
'displayed with showBottomSheet() is still visible.\n'
'Rebuild the Scaffold with a null bottomSheet before calling showBottomSheet().'
);
......@@ -1935,7 +1935,7 @@ class ScaffoldState extends State<Scaffold> with TickerProviderStateMixin {
assert(() {
if (widget.bottomSheet != null) {
throw FlutterError(
'Scaffold.bottomSheet cannot be specified while a bottom sheet'
'Scaffold.bottomSheet cannot be specified while a bottom sheet '
'displayed with showBottomSheet() is still visible.\n'
'Rebuild the Scaffold with a null bottomSheet before calling showBottomSheet().'
);
......
......@@ -566,7 +566,7 @@ class ToggleButtons extends StatelessWidget {
return true;
}(),
'focusNodes.length must match children.length.\n'
'There are ${focusNodes.length} focus nodes, while'
'There are ${focusNodes.length} focus nodes, while '
'there are ${children.length} children.'
);
final ThemeData theme = Theme.of(context);
......
......@@ -503,19 +503,20 @@ class SliverConstraints extends Constraints {
@override
String toString() {
return 'SliverConstraints('
'$axisDirection, '
'$growthDirection, '
'$userScrollDirection, '
'scrollOffset: ${scrollOffset.toStringAsFixed(1)}, '
'remainingPaintExtent: ${remainingPaintExtent.toStringAsFixed(1)}, ' +
(overlap != 0.0 ? 'overlap: ${overlap.toStringAsFixed(1)}, ' : '') +
'crossAxisExtent: ${crossAxisExtent.toStringAsFixed(1)}, '
'crossAxisDirection: $crossAxisDirection, '
'viewportMainAxisExtent: ${viewportMainAxisExtent.toStringAsFixed(1)}, '
'remainingCacheExtent: ${remainingCacheExtent.toStringAsFixed(1)} '
'cacheOrigin: ${cacheOrigin.toStringAsFixed(1)} '
')';
final List<String> properties = <String>[
'$axisDirection',
'$growthDirection',
'$userScrollDirection',
'scrollOffset: ${scrollOffset.toStringAsFixed(1)}',
'remainingPaintExtent: ${remainingPaintExtent.toStringAsFixed(1)}',
if (overlap != 0.0) 'overlap: ${overlap.toStringAsFixed(1)}',
'crossAxisExtent: ${crossAxisExtent.toStringAsFixed(1)}',
'crossAxisDirection: $crossAxisDirection',
'viewportMainAxisExtent: ${viewportMainAxisExtent.toStringAsFixed(1)}',
'remainingCacheExtent: ${remainingCacheExtent.toStringAsFixed(1)}',
'cacheOrigin: ${cacheOrigin.toStringAsFixed(1)}',
];
return 'SliverConstraints(${properties.join(', ')})';
}
}
......
......@@ -163,9 +163,9 @@ class RenderSliverFillRemaining extends RenderSliverSingleBoxAdapter {
}
assert(extent.isFinite,
'The calculated extent for the child of SliverFillRemaining is not finite.'
'This can happen if the child is a scrollable, in which case, the'
'hasScrollBody property of SliverFillRemaining should not be set to'
'The calculated extent for the child of SliverFillRemaining is not finite. '
'This can happen if the child is a scrollable, in which case, the '
'hasScrollBody property of SliverFillRemaining should not be set to '
'false.',
);
final double paintedChildSize = calculatePaintOffset(constraints, from: 0.0, to: extent);
......@@ -239,9 +239,9 @@ class RenderSliverFillRemainingAndOverscroll extends RenderSliverSingleBoxAdapte
}
assert(extent.isFinite,
'The calculated extent for the child of SliverFillRemaining is not finite.'
'This can happen if the child is a scrollable, in which case, the'
'hasScrollBody property of SliverFillRemaining should not be set to'
'The calculated extent for the child of SliverFillRemaining is not finite. '
'This can happen if the child is a scrollable, in which case, the '
'hasScrollBody property of SliverFillRemaining should not be set to '
'false.',
);
final double paintedChildSize = calculatePaintOffset(constraints, from: 0.0, to: extent);
......
......@@ -71,12 +71,13 @@ class SliverGridGeometry {
@override
String toString() {
return 'SliverGridGeometry('
'scrollOffset: $scrollOffset, '
'crossAxisOffset: $crossAxisOffset, '
'mainAxisExtent: $mainAxisExtent, '
'crossAxisExtent: $crossAxisExtent'
')';
final List<String> properties = <String>[
'scrollOffset: $scrollOffset',
'crossAxisOffset: $crossAxisOffset',
'mainAxisExtent: $mainAxisExtent',
'crossAxisExtent: $crossAxisExtent',
];
return 'SliverGridGeometry(${properties.join(', ')})';
}
}
......
......@@ -1270,7 +1270,7 @@ class RenderViewport extends RenderViewportBase<SliverPhysicalContainerParentDat
throw FlutterError.fromParts(<DiagnosticsNode>[
ErrorSummary('Horizontal viewport was given unbounded width.'),
ErrorDescription(
'Viewports expand in the scrolling direction to fill their container.'
'Viewports expand in the scrolling direction to fill their container. '
'In this case, a horizontal viewport was given an unlimited amount of '
'horizontal space in which to expand. This situation typically happens '
'when a scrollable widget is nested inside another scrollable widget.'
......
......@@ -145,7 +145,7 @@ class _AutomaticKeepAliveState extends State<AutomaticKeepAlive> {
assert(() {
if (!mounted) {
throw FlutterError(
'AutomaticKeepAlive handle triggered after AutomaticKeepAlive was disposed.'
'AutomaticKeepAlive handle triggered after AutomaticKeepAlive was disposed. '
'Widgets should always trigger their KeepAliveNotification handle when they are '
'deactivated, so that they (or their handle) do not send spurious events later '
'when they are no longer in the tree.'
......
......@@ -574,22 +574,23 @@ class MediaQueryData {
@override
String toString() {
return '${objectRuntimeType(this, 'MediaQueryData')}('
'size: $size, '
'devicePixelRatio: ${devicePixelRatio.toStringAsFixed(1)}, '
'textScaleFactor: ${textScaleFactor.toStringAsFixed(1)}, '
'platformBrightness: $platformBrightness, '
'padding: $padding, '
'viewPadding: $viewPadding, '
'viewInsets: $viewInsets, '
'physicalDepth: $physicalDepth, '
'alwaysUse24HourFormat: $alwaysUse24HourFormat, '
'accessibleNavigation: $accessibleNavigation, '
'highContrast: $highContrast,'
'disableAnimations: $disableAnimations, '
'invertColors: $invertColors, '
'boldText: $boldText'
')';
final List<String> properties = <String>[
'size: $size',
'devicePixelRatio: ${devicePixelRatio.toStringAsFixed(1)}',
'textScaleFactor: ${textScaleFactor.toStringAsFixed(1)}',
'platformBrightness: $platformBrightness',
'padding: $padding',
'viewPadding: $viewPadding',
'viewInsets: $viewInsets',
'physicalDepth: $physicalDepth',
'alwaysUse24HourFormat: $alwaysUse24HourFormat',
'accessibleNavigation: $accessibleNavigation',
'highContrast: $highContrast',
'disableAnimations: $disableAnimations',
'invertColors: $invertColors',
'boldText: $boldText',
];
return '${objectRuntimeType(this, 'MediaQueryData')}(${properties.join(', ')})';
}
}
......
......@@ -724,7 +724,7 @@ void main() {
expect(tabsPainted, const <int> [0, 0, 1]);
});
testWidgets('Do not call dispose on a controller that we do not own'
testWidgets('Do not call dispose on a controller that we do not own '
'but do remove from its listeners when done listening to it',
(WidgetTester tester) async {
final MockCupertinoTabController mockController = MockCupertinoTabController(initialIndex: 0);
......@@ -798,7 +798,7 @@ void main() {
expect(find.text('Tab 3'), findsNothing);
});
testWidgets('A controller can control more than one CupertinoTabScaffold,'
testWidgets('A controller can control more than one CupertinoTabScaffold, '
'removal of listeners does not break the controller',
(WidgetTester tester) async {
final List<int> tabsPainted0 = <int>[];
......
......@@ -68,7 +68,7 @@ void main() {
' BackButton widgets require MaterialLocalizations to be provided\n'
' by a Localizations widget ancestor.\n'
' Localizations are used to generate many different messages,\n'
' labels,and abbreviations which are used by the material library.\n'
' labels, and abbreviations which are used by the material library.\n'
' To introduce a MaterialLocalizations, either use a MaterialApp at\n'
' the root of your application to include them automatically, or\n'
' add a Localization widget with a MaterialLocalizations delegate.\n'
......
......@@ -649,7 +649,7 @@ void main() {
});
testWidgets(
'didUpdateWidget accounts for toggling between ExpansionPanelList'
'didUpdateWidget accounts for toggling between ExpansionPanelList '
'and ExpansionPaneList.radio',
(WidgetTester tester) async {
bool isRadioList = false;
......
......@@ -1720,8 +1720,8 @@ void main() {
expect(error, isNotNull);
expect(error.toStringDeep(), equalsIgnoringHashCodes(
'FlutterError\n'
' Scaffold.bottomSheet cannot be specified while a bottom\n'
' sheetdisplayed with showBottomSheet() is still visible.\n'
' Scaffold.bottomSheet cannot be specified while a bottom sheet\n'
' displayed with showBottomSheet() is still visible.\n'
' Rebuild the Scaffold with a null bottomSheet before calling\n'
' showBottomSheet().\n',
));
......
......@@ -228,7 +228,7 @@ void main() {
),
),
);
fail('Should not be possible to create a toggle button with mismatching'
fail('Should not be possible to create a toggle button with mismatching '
'children.length and isSelected.length.');
} on AssertionError catch (e) {
expect(e.toString(), contains('children.length'));
......
......@@ -491,7 +491,7 @@ void main() {
);
});
test('AnnotatedRegionLayer.findAllAnnotations should still check children and return'
test('AnnotatedRegionLayer.findAllAnnotations should still check children and return '
'children\'s opacity (false) during a failed hit', () {
const Offset position = Offset(5, 5);
......@@ -513,7 +513,7 @@ void main() {
);
});
test('AnnotatedRegionLayer.findAllAnnotations should still check children and return'
test('AnnotatedRegionLayer.findAllAnnotations should still check children and return '
'children\'s opacity (true) during a failed hit', () {
const Offset position = Offset(5, 5);
......
......@@ -92,8 +92,8 @@ void main() {
' │ │ GrowthDirection.forward, ScrollDirection.idle, scrollOffset:\n'
' │ │ 0.0, remainingPaintExtent: 600.0, crossAxisExtent: 800.0,\n'
' │ │ crossAxisDirection: AxisDirection.right,\n'
' │ │ viewportMainAxisExtent: 600.0, remainingCacheExtent: 850.0\n'
' │ │ cacheOrigin: 0.0 )\n'
' │ │ viewportMainAxisExtent: 600.0, remainingCacheExtent: 850.0,\n'
' │ │ cacheOrigin: 0.0)\n'
' │ │ geometry: SliverGeometry(scrollExtent: 400.0, paintExtent: 400.0,\n'
' │ │ maxPaintExtent: 400.0, cacheExtent: 400.0)\n'
' │ │\n'
......@@ -108,8 +108,8 @@ void main() {
' │ │ GrowthDirection.forward, ScrollDirection.idle, scrollOffset:\n'
' │ │ 0.0, remainingPaintExtent: 200.0, crossAxisExtent: 800.0,\n'
' │ │ crossAxisDirection: AxisDirection.right,\n'
' │ │ viewportMainAxisExtent: 600.0, remainingCacheExtent: 450.0\n'
' │ │ cacheOrigin: 0.0 )\n'
' │ │ viewportMainAxisExtent: 600.0, remainingCacheExtent: 450.0,\n'
' │ │ cacheOrigin: 0.0)\n'
' │ │ geometry: SliverGeometry(scrollExtent: 400.0, paintExtent: 200.0,\n'
' │ │ maxPaintExtent: 400.0, hasVisualOverflow: true, cacheExtent:\n'
' │ │ 400.0)\n'
......@@ -125,8 +125,8 @@ void main() {
' │ │ GrowthDirection.forward, ScrollDirection.idle, scrollOffset:\n'
' │ │ 0.0, remainingPaintExtent: 0.0, crossAxisExtent: 800.0,\n'
' │ │ crossAxisDirection: AxisDirection.right,\n'
' │ │ viewportMainAxisExtent: 600.0, remainingCacheExtent: 50.0\n'
' │ │ cacheOrigin: 0.0 )\n'
' │ │ viewportMainAxisExtent: 600.0, remainingCacheExtent: 50.0,\n'
' │ │ cacheOrigin: 0.0)\n'
' │ │ geometry: SliverGeometry(scrollExtent: 400.0, hidden,\n'
' │ │ maxPaintExtent: 400.0, hasVisualOverflow: true, cacheExtent:\n'
' │ │ 50.0)\n'
......@@ -142,8 +142,8 @@ void main() {
' │ │ GrowthDirection.forward, ScrollDirection.idle, scrollOffset:\n'
' │ │ 0.0, remainingPaintExtent: 0.0, crossAxisExtent: 800.0,\n'
' │ │ crossAxisDirection: AxisDirection.right,\n'
' │ │ viewportMainAxisExtent: 600.0, remainingCacheExtent: 0.0\n'
' │ │ cacheOrigin: 0.0 )\n'
' │ │ viewportMainAxisExtent: 600.0, remainingCacheExtent: 0.0,\n'
' │ │ cacheOrigin: 0.0)\n'
' │ │ geometry: SliverGeometry(scrollExtent: 400.0, hidden,\n'
' │ │ maxPaintExtent: 400.0, hasVisualOverflow: true)\n'
' │ │\n'
......@@ -158,8 +158,8 @@ void main() {
' │ GrowthDirection.forward, ScrollDirection.idle, scrollOffset:\n'
' │ 0.0, remainingPaintExtent: 0.0, crossAxisExtent: 800.0,\n'
' │ crossAxisDirection: AxisDirection.right,\n'
' │ viewportMainAxisExtent: 600.0, remainingCacheExtent: 0.0\n'
' │ cacheOrigin: 0.0 )\n'
' │ viewportMainAxisExtent: 600.0, remainingCacheExtent: 0.0,\n'
' │ cacheOrigin: 0.0)\n'
' │ geometry: SliverGeometry(scrollExtent: 400.0, hidden,\n'
' │ maxPaintExtent: 400.0, hasVisualOverflow: true)\n'
' │\n'
......@@ -956,7 +956,7 @@ void main() {
' The "precedingScrollExtent" is NaN, expected greater than or equal to zero.\n'
' The constraints are not normalized.\n'
'The offending constraints were:\n'
' SliverConstraints(AxisDirection.down, GrowthDirection.forward, ScrollDirection.idle, scrollOffset: NaN, remainingPaintExtent: NaN, overlap: NaN, crossAxisExtent: NaN, crossAxisDirection: AxisDirection.left, viewportMainAxisExtent: NaN, remainingCacheExtent: NaN cacheOrigin: NaN )',
' SliverConstraints(AxisDirection.down, GrowthDirection.forward, ScrollDirection.idle, scrollOffset: NaN, remainingPaintExtent: NaN, overlap: NaN, crossAxisExtent: NaN, crossAxisDirection: AxisDirection.left, viewportMainAxisExtent: NaN, remainingCacheExtent: NaN, cacheOrigin: NaN)',
);
threw = true;
}
......@@ -992,7 +992,7 @@ void main() {
' The "precedingScrollExtent" is negative.\n'
' The constraints are not normalized.\n'
'The offending constraints were:\n'
' SliverConstraints(AxisDirection.down, GrowthDirection.forward, ScrollDirection.idle, scrollOffset: -1.0, remainingPaintExtent: -1.0, crossAxisExtent: 0.0, crossAxisDirection: AxisDirection.left, viewportMainAxisExtent: 0.0, remainingCacheExtent: -1.0 cacheOrigin: 1.0 )',
' SliverConstraints(AxisDirection.down, GrowthDirection.forward, ScrollDirection.idle, scrollOffset: -1.0, remainingPaintExtent: -1.0, crossAxisExtent: 0.0, crossAxisDirection: AxisDirection.left, viewportMainAxisExtent: 0.0, remainingCacheExtent: -1.0, cacheOrigin: 1.0)',
);
threw = true;
}
......
......@@ -1047,7 +1047,7 @@ void main() {
'FlutterError\n'
' Horizontal viewport was given unbounded width.\n'
' Viewports expand in the scrolling direction to fill their\n'
' container.In this case, a horizontal viewport was given an\n'
' container. In this case, a horizontal viewport was given an\n'
' unlimited amount of horizontal space in which to expand. This\n'
' situation typically happens when a scrollable widget is nested\n'
' inside another scrollable widget.\n'
......
......@@ -299,8 +299,8 @@ void main() {
' │ GrowthDirection.forward, ScrollDirection.idle, scrollOffset:\n'
' │ 0.0, remainingPaintExtent: 600.0, crossAxisExtent: 800.0,\n'
' │ crossAxisDirection: AxisDirection.right,\n'
' │ viewportMainAxisExtent: 600.0, remainingCacheExtent: 850.0\n'
' │ cacheOrigin: 0.0 )\n'
' │ viewportMainAxisExtent: 600.0, remainingCacheExtent: 850.0,\n'
' │ cacheOrigin: 0.0)\n'
' │ geometry: SliverGeometry(scrollExtent: 40000.0, paintExtent:\n'
' │ 600.0, maxPaintExtent: 40000.0, hasVisualOverflow: true,\n'
' │ cacheExtent: 850.0)\n'
......@@ -446,8 +446,8 @@ void main() {
' │ GrowthDirection.forward, ScrollDirection.idle, scrollOffset:\n'
' │ 2000.0, remainingPaintExtent: 600.0, crossAxisExtent: 800.0,\n'
' │ crossAxisDirection: AxisDirection.right,\n'
' │ viewportMainAxisExtent: 600.0, remainingCacheExtent: 1100.0\n'
' │ cacheOrigin: -250.0 )\n'
' │ viewportMainAxisExtent: 600.0, remainingCacheExtent: 1100.0,\n'
' │ cacheOrigin: -250.0)\n'
' │ geometry: SliverGeometry(scrollExtent: 40000.0, paintExtent:\n'
' │ 600.0, maxPaintExtent: 40000.0, hasVisualOverflow: true,\n'
' │ cacheExtent: 1100.0)\n'
......
......@@ -335,8 +335,8 @@ void main() {
' │ GrowthDirection.forward, ScrollDirection.idle, scrollOffset:\n'
' │ 0.0, remainingPaintExtent: 600.0, crossAxisExtent: 800.0,\n'
' │ crossAxisDirection: AxisDirection.right,\n'
' │ viewportMainAxisExtent: 600.0, remainingCacheExtent: 850.0\n'
' │ cacheOrigin: 0.0 )\n'
' │ viewportMainAxisExtent: 600.0, remainingCacheExtent: 850.0,\n'
' │ cacheOrigin: 0.0)\n'
' │ geometry: SliverGeometry(scrollExtent: 300.0, paintExtent: 300.0,\n'
' │ maxPaintExtent: 300.0, cacheExtent: 300.0)\n'
' │ currently live children: 0 to 2\n'
......
......@@ -72,8 +72,8 @@ void main() {
' │ GrowthDirection.forward, ScrollDirection.idle, scrollOffset:\n'
' │ 0.0, remainingPaintExtent: 600.0, crossAxisExtent: 800.0,\n'
' │ crossAxisDirection: AxisDirection.right,\n'
' │ viewportMainAxisExtent: 600.0, remainingCacheExtent: 850.0\n'
' │ cacheOrigin: 0.0 )\n'
' │ viewportMainAxisExtent: 600.0, remainingCacheExtent: 850.0,\n'
' │ cacheOrigin: 0.0)\n'
' │ geometry: SliverGeometry(scrollExtent: 12000.0, paintExtent:\n'
' │ 600.0, maxPaintExtent: 12000.0, hasVisualOverflow: true,\n'
' │ cacheExtent: 850.0)\n'
......@@ -85,8 +85,8 @@ void main() {
' │ GrowthDirection.forward, ScrollDirection.idle, scrollOffset:\n'
' │ 0.0, remainingPaintExtent: 600.0, crossAxisExtent: 800.0,\n'
' │ crossAxisDirection: AxisDirection.right,\n'
' │ viewportMainAxisExtent: 600.0, remainingCacheExtent: 850.0\n'
' │ cacheOrigin: 0.0 )\n'
' │ viewportMainAxisExtent: 600.0, remainingCacheExtent: 850.0,\n'
' │ cacheOrigin: 0.0)\n'
' │ geometry: SliverGeometry(scrollExtent: 12000.0, paintExtent:\n'
' │ 600.0, maxPaintExtent: 12000.0, hasVisualOverflow: true,\n'
' │ cacheExtent: 850.0)\n'
......
......@@ -90,8 +90,8 @@ void main() {
' │ GrowthDirection.forward, ScrollDirection.idle, scrollOffset:\n'
' │ 0.0, remainingPaintExtent: 600.0, crossAxisExtent: 800.0,\n'
' │ crossAxisDirection: AxisDirection.right,\n'
' │ viewportMainAxisExtent: 600.0, remainingCacheExtent: 850.0\n'
' │ cacheOrigin: 0.0 )\n'
' │ viewportMainAxisExtent: 600.0, remainingCacheExtent: 850.0,\n'
' │ cacheOrigin: 0.0)\n'
' │ geometry: SliverGeometry(scrollExtent: 200.0, paintExtent: 200.0,\n'
' │ maxPaintExtent: 200.0, hasVisualOverflow: true, cacheExtent:\n'
' │ 200.0)\n'
......
......@@ -772,8 +772,7 @@ void main() {
// Each word takes up more than a half of a line. Together they
// wrap onto two lines, but leave a lot of extra space.
child: Text(
'twowordsthateachtakeupmorethanhalfof alineoftextsothattheywr'
'apwithlotsofextraspace',
'twowordsthateachtakeupmorethanhalfof alineoftextsothattheywrapwithlotsofextraspace',
textDirection: TextDirection.ltr,
textWidthBasis: textWidthBasis,
),
......
......@@ -220,7 +220,7 @@ class VMServiceFlutterDriver extends FlutterDriver {
rethrow;
}
_log(
'Check Health failed, try to wait for the service extensions to be'
'Check Health failed, try to wait for the service extensions to be '
'registered.'
);
await enableIsolateStreams();
......
......@@ -195,16 +195,17 @@ class TestAsyncUtils {
final _StackEntry originalGuarder = _findResponsibleMethod(scope.creationStack, 'guard', information);
final _StackEntry collidingGuarder = _findResponsibleMethod(StackTrace.current, 'guardSync', information);
if (originalGuarder != null && collidingGuarder != null) {
final String originalKind = originalGuarder.className == null ? 'function' : 'method';
String originalName;
if (originalGuarder.className == null) {
originalName = '(${originalGuarder.methodName}) ';
originalName = '$originalKind (${originalGuarder.methodName})';
information.add(ErrorDescription(
'The guarded "${originalGuarder.methodName}" function '
'was called from ${originalGuarder.callerFile} '
'on line ${originalGuarder.callerLine}.'
));
} else {
originalName = '(${originalGuarder.className}.${originalGuarder.methodName}) ';
originalName = '$originalKind (${originalGuarder.className}.${originalGuarder.methodName})';
information.add(ErrorDescription(
'The guarded method "${originalGuarder.methodName}" '
'from class ${originalGuarder.className} '
......@@ -215,25 +216,26 @@ class TestAsyncUtils {
final String again = (originalGuarder.callerFile == collidingGuarder.callerFile) &&
(originalGuarder.callerLine == collidingGuarder.callerLine) ?
'again ' : '';
final String collidingKind = collidingGuarder.className == null ? 'function' : 'method';
String collidingName;
if ((originalGuarder.className == collidingGuarder.className) &&
(originalGuarder.methodName == collidingGuarder.methodName)) {
originalName = '';
collidingName = '';
originalName = originalKind;
collidingName = collidingKind;
information.add(ErrorDescription(
'Then, it '
'was called ${again}from ${collidingGuarder.callerFile} '
'on line ${collidingGuarder.callerLine}.'
));
} else if (collidingGuarder.className == null) {
collidingName = '(${collidingGuarder.methodName}) ';
collidingName = '$collidingKind (${collidingGuarder.methodName})';
information.add(ErrorDescription(
'Then, the "${collidingGuarder.methodName}" function '
'was called ${again}from ${collidingGuarder.callerFile} '
'on line ${collidingGuarder.callerLine}.'
));
} else {
collidingName = '(${collidingGuarder.className}.${collidingGuarder.methodName}) ';
collidingName = '$collidingKind (${collidingGuarder.className}.${collidingGuarder.methodName})';
information.add(ErrorDescription(
'Then, the "${collidingGuarder.methodName}" method '
'${originalGuarder.className == collidingGuarder.className ? "(also from class ${collidingGuarder.className})"
......@@ -243,9 +245,9 @@ class TestAsyncUtils {
));
}
information.add(ErrorDescription(
'The first ${originalGuarder.className == null ? "function" : "method"} $originalName'
'The first $originalName '
'had not yet finished executing at the time that '
'the second ${collidingGuarder.className == null ? "function" : "method"} $collidingName'
'the second $collidingName '
'was called. Since both are guarded, and the second was not a nested call inside the first, the '
'first must complete its execution before the second can be called. Typically, this is achieved by '
'putting an "await" statement in front of the call to the first.'
......@@ -259,9 +261,7 @@ class TestAsyncUtils {
));
}
information.add(DiagnosticsStackTrace(
'\nWhen the first ${originalGuarder.className == null ? "function" : "method"} '
'$originalName'
'was called, this was the stack',
'\nWhen the first $originalName was called, this was the stack',
scope.creationStack,
));
}
......
......@@ -23,7 +23,7 @@ class TestDragData {
void main() {
testWidgets(
'WidgetTester.drag must break the offset into multiple parallel components if'
'WidgetTester.drag must break the offset into multiple parallel components if '
'the drag goes outside the touch slop values',
(WidgetTester tester) async {
// This test checks to make sure that the total drag will be correctly split into
......
......@@ -642,7 +642,7 @@ ${globals.terminal.bolden('Consuming the Module')}
''');
}
globals.printStatus('To learn more, visit https://flutter.dev/go/build-aar''');
globals.printStatus('To learn more, visit https://flutter.dev/go/build-aar');
}
String _hex(List<int> bytes) {
......@@ -877,7 +877,7 @@ String _getLocalArtifactVersion(String pomPath) {
);
} on FileSystemException {
throwToolExit(
'Error reading $pomPath. Please ensure that you have read permission to this'
'Error reading $pomPath. Please ensure that you have read permission to this '
'file and try again.');
}
final Iterable<xml.XmlElement> project = document.findElements('project');
......
......@@ -236,8 +236,7 @@ final GradleHandledError licenseNotAcceptedHandler = GradleHandledError(
bool shouldBuildPluginAsAar,
}) async {
const String licenseNotAcceptedMatcher =
r'You have not accepted the license agreements of the following SDK components:'
r'\s*\[(.+)\]';
r'You have not accepted the license agreements of the following SDK components:\s*\[(.+)\]';
final RegExp licenseFailure = RegExp(licenseNotAcceptedMatcher, multiLine: true);
assert(licenseFailure != null);
......
......@@ -110,7 +110,7 @@ class CodeGeneratingKernelCompiler implements KernelCompiler {
List<String> dartDefines,
}) async {
if (fileSystemRoots != null || fileSystemScheme != null || depFilePath != null || targetModel != null || sdkRoot != null || packagesPath != null) {
globals.printTrace('fileSystemRoots, fileSystemScheme, depFilePath, targetModel,'
globals.printTrace('fileSystemRoots, fileSystemScheme, depFilePath, targetModel, '
'sdkRoot, packagesPath are not supported when using the experimental '
'build* pipeline');
}
......
......@@ -47,7 +47,7 @@ class BuildAarCommand extends BuildSubCommand {
)
..addOption(
'output-dir',
help: 'The absolute path to the directory where the repository is generated.'
help: 'The absolute path to the directory where the repository is generated. '
'By default, this is \'<current-directory>android/build\'. ',
);
}
......
......@@ -28,7 +28,7 @@ class BuildWebCommand extends BuildSubCommand {
argParser.addFlag('csp',
defaultsTo: false,
negatable: false,
help: 'Disable dynamic generation of code in the generated output.'
help: 'Disable dynamic generation of code in the generated output. '
'This is necessary to satisfy CSP restrictions (see http://www.w3.org/TR/CSP/).'
);
}
......
......@@ -857,8 +857,10 @@ String _validateProjectDir(String dirPath, { String flutterRoot, bool overwrite
// If the destination directory is actually a file, then we refuse to
// overwrite, on the theory that the user probably didn't expect it to exist.
if (globals.fs.isFileSync(dirPath)) {
return "Invalid project name: '$dirPath' - refers to an existing file."
'${overwrite ? ' Refusing to overwrite a file with a directory.' : ''}';
final String message = "Invalid project name: '$dirPath' - refers to an existing file.";
return overwrite
? '$message Refusing to overwrite a file with a directory.'
: message;
}
if (overwrite) {
......
......@@ -52,7 +52,7 @@ class IdeConfigCommand extends FlutterCommand {
'missing. If --overwrite is specified, will revert existing files to '
'the template versions, reset the module list, and return configuration '
'settings to the template versions.\n\n'
'This command is intended for Flutter developers to help them set up the'
'This command is intended for Flutter developers to help them set up the '
"Flutter tree for development in an IDE. It doesn't affect other projects.\n\n"
'Currently, IntelliJ is the default (and only) IDE that may be configured.';
......
......@@ -32,7 +32,7 @@ class ScreenshotCommand extends FlutterCommand {
valueHelp: 'URI',
help: 'The observatory URI to connect to.\n'
'This is required when --$_kType is "$_kSkiaType" or "$_kRasterizerType".\n'
'To find the observatory URI, use "flutter run" and look for'
'To find the observatory URI, use "flutter run" and look for '
'"An Observatory ... is available at" in the output.',
);
argParser.addOption(
......
......@@ -61,7 +61,7 @@ class UpdatePackagesCommand extends FlutterCommand {
)
..addFlag(
'consumer-only',
help: 'Only prints the dependency graph that is the transitive closure'
help: 'Only prints the dependency graph that is the transitive closure '
'that a consumer of the Flutter SDK will observe (When combined '
'with transitive-closure)',
defaultsTo: false,
......
......@@ -163,8 +163,8 @@ class UpgradeCommandRunner {
} on ProcessException catch (error) {
throwToolExit(
'The tool could not verify the status of the current flutter checkout. '
'This might be due to git not being installed or an internal error.'
'If it is okay to ignore potential local changes, then re-run this'
'This might be due to git not being installed or an internal error. '
'If it is okay to ignore potential local changes, then re-run this '
'command with --force.'
'\nError: $error.'
);
......@@ -212,7 +212,7 @@ class UpgradeCommandRunner {
} on ProcessException catch (error) {
throwToolExit(
'Unable to upgrade Flutter: The tool could not update to the version $tag. '
'This may be due to git not being installed or an internal error.'
'This may be due to git not being installed or an internal error. '
'Please ensure that git is installed on your computer and retry again.'
'\nError: $error.'
);
......
......@@ -74,8 +74,8 @@ class VersionCommand extends FlutterCommand {
if (targetVersion < minSupportedVersion) {
if (!boolArg('force')) {
globals.printError(
'Version command is not supported in $targetVersion and it is supported since version $minSupportedVersion'
'which means if you switch to version $minSupportedVersion then you can not use version command.'
'Version command is not supported in $targetVersion and it is supported since version $minSupportedVersion '
'which means if you switch to version $minSupportedVersion then you can not use version command. '
'If you really want to switch to version $targetVersion, please use `--force` flag: `flutter version --force $targetVersion`.'
);
return const FlutterCommandResult(ExitStatus.success);
......
......@@ -40,7 +40,7 @@ class Utf8Decoder extends cnv.Utf8Decoder {
if (reportErrors && result.contains('\u{FFFD}')) {
throwToolExit(
'Bad UTF-8 encoding found while decoding string: $result. '
'The Flutter team would greatly appreciate if you could file a bug or leave a'
'The Flutter team would greatly appreciate if you could file a bug or leave a '
'comment on the issue https://github.com/flutter/flutter/issues/15646.\n'
'The source bytes were:\n$codeUnits\n\n');
}
......
......@@ -38,7 +38,7 @@ Future<void> validateBitcode(BuildMode buildMode, TargetPlatform targetPlatform)
throwToolExit(
'The Flutter.framework at $flutterFrameworkPath was built '
'with "${engineClangVersion ?? 'unknown'}", but the current version '
'of clang is "$clangVersion". This will result in failures when trying to'
'of clang is "$clangVersion". This will result in failures when trying to '
'archive an IPA. To resolve this issue, update your version of Xcode to '
'at least $engineClangSemVer.',
);
......
......@@ -195,7 +195,7 @@ class MDnsObservatoryDiscovery {
'The mDNS query for an attached iOS device failed. It may '
'be necessary to disable the "Personal Hotspot" on the device, and '
'to ensure that the "Disable unless needed" setting is unchecked '
'under System Preferences > Network > iPhone USB.'
'under System Preferences > Network > iPhone USB. '
'See https://github.com/flutter/flutter/issues/46698 for details.'
);
break;
......
......@@ -187,8 +187,8 @@ class Plugin {
if (usesOldPluginFormat && usesNewPluginFormat) {
const String errorMessage =
'The flutter.plugin.platforms key cannot be used in combination with the old'
'flutter.plugin.{androidPackage,iosPrefix,pluginClass} keys.'
'The flutter.plugin.platforms key cannot be used in combination with the old '
'flutter.plugin.{androidPackage,iosPrefix,pluginClass} keys. '
'See: https://flutter.dev/docs/development/packages-and-plugins/developing-packages#plugin';
return <String>[errorMessage];
}
......
......@@ -229,7 +229,7 @@ abstract class FlutterCommand extends Command<void> {
/// Adds options for connecting to the Dart VM observatory port.
void usesPortOptions() {
argParser.addOption(observatoryPortOption,
help: '(deprecated use host-vmservice-port instead)'
help: '(deprecated use host-vmservice-port instead) '
'Listen to the given port for an observatory debugger connection.\n'
'Specifying port 0 (the default) will find a random free port.',
);
......@@ -368,11 +368,11 @@ abstract class FlutterCommand extends Command<void> {
argParser.addFlag('shrink',
negatable: true,
defaultsTo: true,
help: 'Whether to enable code shrinking on release mode.'
help: 'Whether to enable code shrinking on release mode. '
'When enabling shrinking, you also benefit from obfuscation, '
'which shortens the names of your app’s classes and members, '
'and optimization, which applies more aggressive strategies to '
'further reduce the size of your app.'
'further reduce the size of your app. '
'To learn more, see: https://developer.android.com/studio/build/shrink-code',
);
}
......
......@@ -150,7 +150,7 @@ void main() {
validateBitcode(BuildMode.release, TargetPlatform.ios),
equals('The Flutter.framework at ios_profile/Flutter.framework was built with "Apple LLVM version 10.0.1 '
'(clang-1234.1.12.1)", but the current version of clang is "Apple LLVM version 10.0.0 (clang-4567.1.1.1)". '
'This will result in failures when trying toarchive an IPA. To resolve this issue, update your version '
'This will result in failures when trying to archive an IPA. To resolve this issue, update your version '
'of Xcode to at least 10.0.1.'),
);
}, overrides: <Type, Generator>{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment