[flutter_tools] add flag for sound-null-safety, unify with experiments (#58533)
Also combines experiments into extraGenSnapshot/ExtraFrontEndOptions. Allows providing --no-sound-null-safety to allow out of order migration and running.
diff --git a/dev/bots/test.dart b/dev/bots/test.dart
index d4598c9..815522a 100644
--- a/dev/bots/test.dart
+++ b/dev/bots/test.dart
@@ -340,8 +340,7 @@
/// target app.
Future<void> _runBuildTests() async {
final List<FileSystemEntity> exampleDirectories = Directory(path.join(flutterRoot, 'examples')).listSync()
- // TODO(jonahwilliams): re-enable once https://github.com/flutter/flutter/issues/57234 is done.
- // ..add(Directory(path.join(flutterRoot, 'dev', 'integration_tests', 'non_nullable')))
+ ..add(Directory(path.join(flutterRoot, 'dev', 'integration_tests', 'non_nullable')))
..add(Directory(path.join(flutterRoot, 'dev', 'integration_tests', 'flutter_gallery')));
final String branch = Platform.environment['CIRRUS_BRANCH'];
@@ -377,7 +376,7 @@
final String examplePath = exampleDirectory.path;
final bool hasNullSafety = File(path.join(examplePath, 'null_safety')).existsSync();
final List<String> additionalArgs = hasNullSafety
- ? <String>['--enable-experiment', 'non-nullable']
+ ? <String>['--enable-experiment', 'non-nullable', '--no-sound-null-safety']
: <String>[];
if (Directory(path.join(examplePath, 'android')).existsSync()) {
await _flutterBuildApk(examplePath, release: false, additionalArgs: additionalArgs, verifyCaching: verifyCaching);
@@ -603,10 +602,9 @@
await _runFlutterTest(path.join(flutterRoot, 'packages', 'flutter_localizations'), tableData: bigqueryApi?.tabledata);
await _runFlutterTest(path.join(flutterRoot, 'packages', 'flutter_test'), tableData: bigqueryApi?.tabledata);
await _runFlutterTest(path.join(flutterRoot, 'packages', 'fuchsia_remote_debug_protocol'), tableData: bigqueryApi?.tabledata);
- // TODO(jonahwilliams): re-enable once https://github.com/flutter/flutter/issues/57234 is done.
- // await _runFlutterTest(path.join(flutterRoot, 'dev', 'integration_tests', 'non_nullable'),
- // options: <String>['--enable-experiment=non-nullable'],
- // );
+ await _runFlutterTest(path.join(flutterRoot, 'dev', 'integration_tests', 'non_nullable'),
+ options: <String>['--enable-experiment=non-nullable', '--no-sound-null-safety'],
+ );
await _runFlutterTest(
path.join(flutterRoot, 'dev', 'tracing_tests'),
options: <String>['--enable-vmservice'],
@@ -756,8 +754,7 @@
await _runWebDebugTest('lib/stack_trace.dart');
await _runWebDebugTest('lib/web_directory_loading.dart');
await _runWebDebugTest('test/test.dart');
- // TODO(jonahwilliams): re-enable once https://github.com/flutter/flutter/issues/57234 is done.
- // await _runWebDebugTest('lib/null_safe_main.dart', enableNullSafety: true);
+ await _runWebDebugTest('lib/null_safe_main.dart', enableNullSafety: true);
await _runWebDebugTest('lib/web_define_loading.dart',
additionalArguments: <String>[
'--dart-define=test.valueA=Example',
@@ -875,6 +872,7 @@
...<String>[
'--enable-experiment',
'non-nullable',
+ '--no-sound-null-safety'
],
'-d',
'chrome',