diff --git a/pkg/front_end/lib/src/api_unstable/bazel_worker.dart b/pkg/front_end/lib/src/api_unstable/bazel_worker.dart index 95ca894e164..66f4a23a1be 100644 --- a/pkg/front_end/lib/src/api_unstable/bazel_worker.dart +++ b/pkg/front_end/lib/src/api_unstable/bazel_worker.dart @@ -25,6 +25,8 @@ import '../api_prototype/file_system.dart' show FileSystem; import '../api_prototype/front_end.dart' show CompilerResult; +import '../base/nnbd_mode.dart' show NnbdMode; + import '../base/processed_options.dart' show ProcessedOptions; import '../kernel_generator_impl.dart' show generateKernel; @@ -50,6 +52,8 @@ export '../api_prototype/standard_file_system.dart' show StandardFileSystem; export '../api_prototype/terminal_color_support.dart' show printDiagnosticMessage; +export '../base/nnbd_mode.dart' show NnbdMode; + export '../fasta/kernel/utils.dart' show serializeComponent; export 'compiler_state.dart' show InitializedCompilerState; @@ -72,7 +76,8 @@ Future initializeIncrementalCompiler( bool outlineOnly, Map environmentDefines, {bool trackNeededDillLibraries: false, - bool verbose: false}) async { + bool verbose: false, + NnbdMode nnbdMode: NnbdMode.Weak}) async { List outputLoadedAdditionalDills = new List(additionalDills.length); Map experimentalFlags = parseExperimentalFlags( @@ -94,7 +99,8 @@ Future initializeIncrementalCompiler( omitPlatform: true, trackNeededDillLibraries: trackNeededDillLibraries, environmentDefines: environmentDefines, - verbose: verbose); + verbose: verbose, + nnbdMode: nnbdMode); } Future initializeCompiler( @@ -108,6 +114,7 @@ Future initializeCompiler( Iterable experiments, Map environmentDefines, { bool verbose: false, + NnbdMode nnbdMode: NnbdMode.Weak, }) async { // TODO(sigmund): use incremental compiler when it supports our use case. // Note: it is common for the summary worker to invoke the compiler with the @@ -125,7 +132,8 @@ Future initializeCompiler( ..experimentalFlags = parseExperimentalFlags( parseExperimentalArguments(experiments), onError: (e) => throw e) - ..verbose = verbose; + ..verbose = verbose + ..nnbdMode = nnbdMode; ProcessedOptions processedOpts = new ProcessedOptions(options: options); diff --git a/utils/bazel/kernel_worker.dart b/utils/bazel/kernel_worker.dart index 779ec623c4d..194fe5527a0 100644 --- a/utils/bazel/kernel_worker.dart +++ b/utils/bazel/kernel_worker.dart @@ -144,7 +144,8 @@ final summaryArgsParser = new ArgParser() ..addMultiOption('enable-experiment', help: 'Enable a language experiment when invoking the CFE.') ..addMultiOption('define', abbr: 'D') - ..addFlag('verbose', defaultsTo: false); + ..addFlag('verbose', defaultsTo: false) + ..addFlag('sound-null-safety', defaultsTo: false); class ComputeKernelResult { final bool succeeded; @@ -187,6 +188,9 @@ Future computeKernel(List args, var sources = (parsedArgs['source'] as List).map(_toUri).toList(); var excludeNonSources = parsedArgs['exclude-non-sources'] as bool; + var nnbdMode = parsedArgs['sound-null-safety'] as bool + ? fe.NnbdMode.Strong + : fe.NnbdMode.Weak; var summaryOnly = parsedArgs['summary-only'] as bool; var trackWidgetCreation = parsedArgs['track-widget-creation'] as bool; @@ -294,7 +298,8 @@ Future computeKernel(List args, summaryOnly, environmentDefines, trackNeededDillLibraries: recordUsedInputs, - verbose: verbose); + verbose: verbose, + nnbdMode: nnbdMode); } else { state = await fe.initializeCompiler( // TODO(sigmund): pass an old state once we can make use of it. @@ -307,7 +312,8 @@ Future computeKernel(List args, fileSystem, parsedArgs['enable-experiment'] as List, environmentDefines, - verbose: verbose); + verbose: verbose, + nnbdMode: nnbdMode); } void onDiagnostic(fe.DiagnosticMessage message) {