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