Make checked flag again only enable assertions in Dart 2.0
This regressed when we swap the default to Dart 2.0 because the strongMode flag
is no longer explicit.
Fixes #33639
Change-Id: If808987efda0d11e15a9b53b81c0979c239749df
Reviewed-on: https://dart-review.googlesource.com/62442
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
diff --git a/pkg/compiler/lib/src/dart2js.dart b/pkg/compiler/lib/src/dart2js.dart
index a06b868..fe5a7c0 100644
--- a/pkg/compiler/lib/src/dart2js.dart
+++ b/pkg/compiler/lib/src/dart2js.dart
@@ -438,7 +438,8 @@
if (checkedMode && strongMode) {
checkedMode = false;
- hints.add("Option '${Flags.enableCheckedMode}' is not needed in Dart 2.0.");
+ hints.add("Option '${Flags.enableCheckedMode}' is not needed in Dart 2.0. "
+ "To enable assertions use '${Flags.enableAsserts}' instead.");
}
if (trustTypeAnnotations && strongMode) {
diff --git a/pkg/compiler/lib/src/options.dart b/pkg/compiler/lib/src/options.dart
index 866d70c..fc870e9 100644
--- a/pkg/compiler/lib/src/options.dart
+++ b/pkg/compiler/lib/src/options.dart
@@ -277,6 +277,8 @@
/// Create an options object by parsing flags from [options].
static CompilerOptions parse(List<String> options,
{Uri libraryRoot, Uri platformBinaries}) {
+ bool isStrong = _hasOption(options, Flags.strongMode) ||
+ !_hasOption(options, Flags.noPreviewDart2);
return new CompilerOptions()
..libraryRoot = libraryRoot
..allowMockCompilation = _hasOption(options, Flags.allowMockCompilation)
@@ -307,8 +309,8 @@
..enableMinification = _hasOption(options, Flags.minify)
..enableNativeLiveTypeAnalysis =
!_hasOption(options, Flags.disableNativeLiveTypeAnalysis)
- ..enableTypeAssertions = _hasOption(options, Flags.enableCheckedMode) &&
- !_hasOption(options, Flags.strongMode)
+ ..enableTypeAssertions =
+ _hasOption(options, Flags.enableCheckedMode) && !isStrong
..enableUserAssertions = _hasOption(options, Flags.enableCheckedMode) ||
_hasOption(options, Flags.enableAsserts)
..experimentalTrackAllocations =
@@ -325,8 +327,7 @@
..platformBinaries =
platformBinaries ?? _extractUriOption(options, '--platform-binaries=')
..sourceMapUri = _extractUriOption(options, '--source-map=')
- ..strongMode = _hasOption(options, Flags.strongMode) ||
- !_hasOption(options, Flags.noPreviewDart2)
+ ..strongMode = isStrong
..omitImplicitChecks = _hasOption(options, Flags.omitImplicitChecks)
..laxRuntimeTypeToString =
_hasOption(options, Flags.laxRuntimeTypeToString)
diff --git a/tests/compiler/dart2js/rti/bound_check_test.dart b/tests/compiler/dart2js/rti/bound_check_test.dart
index 10f1b35..e767d28 100644
--- a/tests/compiler/dart2js/rti/bound_check_test.dart
+++ b/tests/compiler/dart2js/rti/bound_check_test.dart
@@ -82,7 +82,7 @@
], expectedOutput: OUTPUT1, printJs: args.contains('-v'));
await runWithD8(
memorySourceFiles: {'main.dart': SOURCE2},
- options: [Flags.enableCheckedMode],
+ options: [Flags.noPreviewDart2, Flags.enableCheckedMode],
expectedOutput: OUTPUT2,
printJs: args.contains('-v'));
});