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'));
   });