@@ -42,13 +42,11 @@ void main(List<String> args) async {
42
42
help: 'Option to (compile|run|all). Default is all (compile and run).' ,
43
43
allowed: ['compile' , 'run' , 'all' ],
44
44
defaultsTo: 'all' )
45
- ..addOption ('nnbd' ,
46
- help: 'Runtime null safety mode (strong|weak|disabled). When enabled '
47
- 'will automatically enable the "non-nullable" experiment. Defaults '
48
- 'to strong if the experiment is also passed manually, otherwise '
49
- 'to disabled.' ,
50
- allowed: ['strong' , 'weak' , 'disabled' ],
51
- defaultsTo: 'disabled' )
45
+ ..addFlag ('sound-null-safety' ,
46
+ help: 'Compile for sound null safety at runtime. Passed through to the '
47
+ 'DDC binary. Defaults to false.' ,
48
+ defaultsTo: false ,
49
+ negatable: true )
52
50
..addFlag ('observe' ,
53
51
help:
54
52
'Run the compiler in the Dart VM with --observe. Implies --debug.' ,
@@ -77,10 +75,7 @@ void main(List<String> args) async {
77
75
negatable: false ,
78
76
defaultsTo: false )
79
77
..addOption ('vm-service-port' ,
80
- help: 'Specify the observatory port. Implied --observe.' )
81
- ..addSeparator ('Deprecated and will be removed:' )
82
- ..addFlag ('kernel' ,
83
- abbr: 'k' , help: 'Ignored. The kernel based DDC is always used.' );
78
+ help: 'Specify the observatory port. Implied --observe.' );
84
79
85
80
var options = parser.parse (args);
86
81
if (options['help' ] as bool ) {
@@ -107,14 +102,13 @@ void main(List<String> args) async {
107
102
var run = mode == 'run' || mode == 'all' ;
108
103
var verbose = options['verbose' ] as bool ;
109
104
110
- // Enable null-safety either by passing the experiment flag
111
- // or by requesting an nnbd mode:
112
- var nnbd =
113
- experiments.contains ('non-nullable' ) || options['nnbd' ] != 'disabled' ;
114
- // Unless weak-mode is specified, default to strict checks
115
- var isNnbdStrong = nnbd && options['nnbd' ] != 'weak' ;
116
- // Ensure non-nullable is passed as a flag
117
- if (nnbd && ! experiments.contains ('non-nullable' )) {
105
+ var soundNullSafety = options['sound-null-safety' ] as bool ;
106
+ // Enable null safety either by passing the `non-nullable` experiment flag or
107
+ // `sound-null-safety`.
108
+ var nnbd = experiments.contains ('non-nullable' ) || soundNullSafety;
109
+
110
+ // Ensure non-nullable is passed as a flag.
111
+ if (soundNullSafety && ! experiments.contains ('non-nullable' )) {
118
112
experiments.add ('non-nullable' );
119
113
}
120
114
@@ -210,14 +204,14 @@ void main(List<String> args) async {
210
204
String ddcSdk;
211
205
String sdkJsPath;
212
206
String requirePath;
213
- var suffix = isNnbdStrong ? p.join ('sound' , mod) : p.join ('kernel' , mod);
207
+ var suffix = soundNullSafety ? p.join ('sound' , mod) : p.join ('kernel' , mod);
214
208
if (debug) {
215
209
var sdkRoot = p.dirname (p.dirname (ddcPath));
216
210
var buildDir =
217
211
p.join (sdkRoot, Platform .isMacOS ? 'xcodebuild' : 'out' , 'ReleaseX64' );
218
212
dartSdk = p.join (buildDir, 'dart-sdk' );
219
- ddcSdk = p.join (
220
- buildDir, isNnbdStrong ? 'ddc_outline_sound.dill' : 'ddc_outline.dill' );
213
+ ddcSdk = p.join (buildDir,
214
+ soundNullSafety ? 'ddc_outline_sound.dill' : 'ddc_outline.dill' );
221
215
sdkJsPath = p.join (buildDir, 'gen' , 'utils' , 'dartdevc' , suffix);
222
216
requirePath = p.join (sdkRoot, 'third_party' , 'requirejs' );
223
217
} else {
@@ -233,13 +227,12 @@ void main(List<String> args) async {
233
227
234
228
if (compile) {
235
229
var ddcArgs = [
236
- '--kernel' ,
237
230
if (summarizeText) '--summarize-text' ,
238
231
'--modules=$mod ' ,
239
232
'--dart-sdk-summary=$ddcSdk ' ,
240
233
for (var summary in summaries) '--summary=$summary ' ,
241
234
for (var experiment in experiments) '--enable-experiment=$experiment ' ,
242
- if (isNnbdStrong ) '--sound-null-safety' ,
235
+ if (soundNullSafety ) '--sound-null-safety' ,
243
236
if (options['packages' ] != null ) '--packages=${options ['packages' ]}' ,
244
237
'-o' ,
245
238
out,
@@ -277,8 +270,8 @@ void main(List<String> args) async {
277
270
function(sdk, app) {
278
271
'use strict';
279
272
if ($nnbd ) {
280
- sdk.dart.nullSafety($isNnbdStrong );
281
- sdk.dart.weakNullSafetyWarnings(!$isNnbdStrong );
273
+ sdk.dart.nullSafety($soundNullSafety );
274
+ sdk.dart.weakNullSafetyWarnings(!$soundNullSafety );
282
275
}
283
276
sdk._debugger.registerDevtoolsFormatter();
284
277
app.$libname .main();
@@ -310,8 +303,8 @@ let sdk = require(\"dart_sdk\");
310
303
let main = require(\" ./$basename \" ).$libname .main;
311
304
try {
312
305
if ($nnbd ) {
313
- sdk.dart.nullSafety($isNnbdStrong );
314
- sdk.dart.weakNullSafetyWarnings(!$isNnbdStrong );
306
+ sdk.dart.nullSafety($soundNullSafety );
307
+ sdk.dart.weakNullSafetyWarnings(!$soundNullSafety );
315
308
}
316
309
sdk._isolate_helper.startRootIsolate(main, []);
317
310
} catch(e) {
@@ -344,8 +337,8 @@ import { $libname } from '$basename.js';
344
337
let main = $libname .main;
345
338
try {
346
339
if ($nnbd ) {
347
- dart.nullSafety($isNnbdStrong );
348
- dart.weakNullSafetyWarnings(!$isNnbdStrong );
340
+ dart.nullSafety($soundNullSafety );
341
+ dart.weakNullSafetyWarnings(!$soundNullSafety );
349
342
}
350
343
_isolate_helper.startRootIsolate(() => {}, []);
351
344
main();
0 commit comments