mark ExperimentalFeature bogus_enabled and bogus_disabled as deprecated

... and update comment and test output to indicate how files should be
regenerated from tools/experimental_features.yaml

Change-Id: I369b93c35b91f7a93c915f0abf9cebdd00c13f8e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106003
Commit-Queue: Paul Berry <paulberry@google.com>
Auto-Submit: Dan Rubel <danrubel@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
diff --git a/pkg/analyzer/lib/src/dart/analysis/experiments.g.dart b/pkg/analyzer/lib/src/dart/analysis/experiments.g.dart
index 3d782f0..abd0bd5 100644
--- a/pkg/analyzer/lib/src/dart/analysis/experiments.g.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/experiments.g.dart
@@ -16,7 +16,10 @@
   EnableString.set_literals: ExperimentalFeatures.set_literals,
   EnableString.spread_collections: ExperimentalFeatures.spread_collections,
   EnableString.triple_shift: ExperimentalFeatures.triple_shift,
+
+  // ignore: deprecated_member_use_from_same_package
   EnableString.bogus_disabled: ExperimentalFeatures.bogus_disabled,
+  // ignore: deprecated_member_use_from_same_package
   EnableString.bogus_enabled: ExperimentalFeatures.bogus_enabled,
 };
 
@@ -57,9 +60,11 @@
   static const String triple_shift = 'triple-shift';
 
   /// String to enable the experiment "bogus-disabled"
+  @deprecated
   static const String bogus_disabled = 'bogus-disabled';
 
   /// String to enable the experiment "bogus-enabled"
+  @deprecated
   static const String bogus_enabled = 'bogus-enabled';
 }
 
@@ -116,15 +121,19 @@
       IsExpired.triple_shift,
       'Triple-shift operator');
 
+  @deprecated
   static const bogus_disabled = const ExperimentalFeature(
       7,
+      // ignore: deprecated_member_use_from_same_package
       EnableString.bogus_disabled,
       IsEnabledByDefault.bogus_disabled,
       IsExpired.bogus_disabled,
       null);
 
+  @deprecated
   static const bogus_enabled = const ExperimentalFeature(
       8,
+      // ignore: deprecated_member_use_from_same_package
       EnableString.bogus_enabled,
       IsEnabledByDefault.bogus_enabled,
       IsExpired.bogus_enabled,
@@ -157,9 +166,11 @@
   static const bool triple_shift = false;
 
   /// Default state of the experiment "bogus-disabled"
+  @deprecated
   static const bool bogus_disabled = false;
 
   /// Default state of the experiment "bogus-enabled"
+  @deprecated
   static const bool bogus_enabled = true;
 }
 
@@ -197,9 +208,11 @@
 
 mixin _CurrentState {
   /// Current state for the flag "bogus-disabled"
+  @deprecated
   bool get bogus_disabled => isEnabled(ExperimentalFeatures.bogus_disabled);
 
   /// Current state for the flag "bogus-enabled"
+  @deprecated
   bool get bogus_enabled => isEnabled(ExperimentalFeatures.bogus_enabled);
 
   /// Current state for the flag "constant-update-2018"
diff --git a/pkg/analyzer/tool/experiments/generate.dart b/pkg/analyzer/tool/experiments/generate.dart
index d74f223..6527331 100644
--- a/pkg/analyzer/tool/experiments/generate.dart
+++ b/pkg/analyzer/tool/experiments/generate.dart
@@ -101,9 +101,11 @@
 
 mixin _CurrentState {
   /// Current state for the flag "bogus-disabled"
+  @deprecated
   bool get bogus_disabled => isEnabled(ExperimentalFeatures.bogus_disabled);
 
   /// Current state for the flag "bogus-enabled"
+  @deprecated
   bool get bogus_enabled => isEnabled(ExperimentalFeatures.bogus_enabled);
 ''');
     for (var key in keysSorted) {
@@ -136,9 +138,11 @@
     out.write('''
 
       /// String to enable the experiment "bogus-disabled"
+      @deprecated
       static const String bogus_disabled = 'bogus-disabled';
 
       /// String to enable the experiment "bogus-enabled"
+      @deprecated
       static const String bogus_enabled = 'bogus-enabled';
     }''');
   }
@@ -174,15 +178,19 @@
     // TODO(danrubel): Remove bogus entries
     out.write('''
 
+      @deprecated
       static const bogus_disabled = const ExperimentalFeature(
         $index,
+        // ignore: deprecated_member_use_from_same_package
         EnableString.bogus_disabled,
         IsEnabledByDefault.bogus_disabled,
         IsExpired.bogus_disabled,
         null);
 
+      @deprecated
       static const bogus_enabled = const ExperimentalFeature(
         ${index + 1},
+        // ignore: deprecated_member_use_from_same_package
         EnableString.bogus_enabled,
         IsEnabledByDefault.bogus_enabled,
         IsExpired.bogus_enabled,
@@ -210,9 +218,11 @@
     out.write('''
 
       /// Default state of the experiment "bogus-disabled"
+      @deprecated
       static const bool bogus_disabled = false;
 
       /// Default state of the experiment "bogus-enabled"
+      @deprecated
       static const bool bogus_enabled = true;
     }''');
   }
@@ -263,7 +273,9 @@
     // TODO(danrubel): Remove bogus entries
     out.write('''
 
+  // ignore: deprecated_member_use_from_same_package
   EnableString.bogus_disabled: ExperimentalFeatures.bogus_disabled,
+  // ignore: deprecated_member_use_from_same_package
   EnableString.bogus_enabled: ExperimentalFeatures.bogus_enabled,
 };
 ''');
diff --git a/pkg/front_end/tool/_fasta/generate_experimental_flags_test.dart b/pkg/front_end/tool/_fasta/generate_experimental_flags_test.dart
index 81fdca0..ad1ac6e 100644
--- a/pkg/front_end/tool/_fasta/generate_experimental_flags_test.dart
+++ b/pkg/front_end/tool/_fasta/generate_experimental_flags_test.dart
@@ -17,7 +17,16 @@
     String generated = await generateMessagesFile();
     String actual = (await new File.fromUri(generatedFile).readAsString())
         .replaceAll('\r\n', '\n');
-    Expect.stringEquals(
-        generated, actual, "${generatedFile.path} is out of date");
+    Expect.stringEquals(generated, actual, """
+------------------------
+
+The generated file
+  ${generatedFile.path}
+
+is out of date. To regenerate the file, run
+  pkg/front_end/tool/fasta generate-experimental-flags
+
+------------------------
+""");
   });
 }
diff --git a/tools/experimental_features.yaml b/tools/experimental_features.yaml
index 0fa456c..1a82f0f 100644
--- a/tools/experimental_features.yaml
+++ b/tools/experimental_features.yaml
@@ -8,6 +8,18 @@
 # developed and are not yet shipped. Experimental feature flags are expected
 # to be relatively short-lived.
 #
+# ### Code Generation
+#
+# When you change this file, run the following to update analyzer and kernel:
+#
+# analyzer:
+#   dart pkg/analyzer/tool/experiments/generate.dart
+#
+# kernel:
+#   pkg/front_end/tool/fasta generate-experimental-flags
+#
+# ### Overview
+#
 # Each entry in this map corresponds to an experiment,
 # and contains the following parts:
 #