remove hard coded feature index
Change-Id: Ib01f2c9b1516987ec39591a5a320bab81138718d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/104786
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Dan Rubel <danrubel@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 4eab087..3d782f0 100644
--- a/pkg/analyzer/lib/src/dart/analysis/experiments.g.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/experiments.g.dart
@@ -22,12 +22,12 @@
List<bool> _buildExperimentalFlagsArray() => <bool>[
IsEnabledByDefault.constant_update_2018,
- IsEnabledByDefault.non_nullable,
true, // control-flow-collections
- true, // spread-collections
- true, // set-literals
- IsEnabledByDefault.triple_shift,
IsEnabledByDefault.extension_methods,
+ IsEnabledByDefault.non_nullable,
+ true, // set-literals
+ true, // spread-collections
+ IsEnabledByDefault.triple_shift,
false, // bogus-disabled
true, // bogus-enabled
];
@@ -71,28 +71,27 @@
IsExpired.constant_update_2018,
'Enhanced constant expressions');
- static const non_nullable = const ExperimentalFeature(
- 1,
- EnableString.non_nullable,
- IsEnabledByDefault.non_nullable,
- IsExpired.non_nullable,
- 'Non Nullable by default');
-
static const control_flow_collections = const ExperimentalFeature(
- 2,
+ 1,
EnableString.control_flow_collections,
IsEnabledByDefault.control_flow_collections,
IsExpired.control_flow_collections,
'Control Flow Collections',
firstSupportedVersion: '2.2.2');
- static const spread_collections = const ExperimentalFeature(
+ static const extension_methods = const ExperimentalFeature(
+ 2,
+ EnableString.extension_methods,
+ IsEnabledByDefault.extension_methods,
+ IsExpired.extension_methods,
+ 'Extension Methods');
+
+ static const non_nullable = const ExperimentalFeature(
3,
- EnableString.spread_collections,
- IsEnabledByDefault.spread_collections,
- IsExpired.spread_collections,
- 'Spread Collections',
- firstSupportedVersion: '2.2.2');
+ EnableString.non_nullable,
+ IsEnabledByDefault.non_nullable,
+ IsExpired.non_nullable,
+ 'Non Nullable by default');
static const set_literals = const ExperimentalFeature(
4,
@@ -102,20 +101,21 @@
'Set Literals',
firstSupportedVersion: '2.2.0');
- static const triple_shift = const ExperimentalFeature(
+ static const spread_collections = const ExperimentalFeature(
5,
+ EnableString.spread_collections,
+ IsEnabledByDefault.spread_collections,
+ IsExpired.spread_collections,
+ 'Spread Collections',
+ firstSupportedVersion: '2.2.2');
+
+ static const triple_shift = const ExperimentalFeature(
+ 6,
EnableString.triple_shift,
IsEnabledByDefault.triple_shift,
IsExpired.triple_shift,
'Triple-shift operator');
- static const extension_methods = const ExperimentalFeature(
- 6,
- EnableString.extension_methods,
- IsEnabledByDefault.extension_methods,
- IsExpired.extension_methods,
- 'Extension Methods');
-
static const bogus_disabled = const ExperimentalFeature(
7,
EnableString.bogus_disabled,
diff --git a/pkg/analyzer/tool/experiments/generate.dart b/pkg/analyzer/tool/experiments/generate.dart
index 497238a..d74f223 100644
--- a/pkg/analyzer/tool/experiments/generate.dart
+++ b/pkg/analyzer/tool/experiments/generate.dart
@@ -46,18 +46,6 @@
class _ExperimentsGenerator {
final Map experimentsYaml;
- var keysInIndexOrder = [
-// TODO(danrubel): Cleanup this hardcoded list of keys
-// once all lists indexed by ExperimentalFeature.index are generated.
- 'constant-update-2018',
- 'non-nullable',
- 'control-flow-collections',
- 'spread-collections',
- 'set-literals',
- 'triple-shift',
- 'extension-methods',
- ];
-
List<String> keysSorted;
final out = new StringBuffer('''
@@ -88,7 +76,7 @@
List<bool> _buildExperimentalFlagsArray() => <bool>[
''');
- for (var key in keysInIndexOrder) {
+ for (var key in keysSorted) {
var id = keyToIdentifier(key);
var entry = experimentsYaml[key] as YamlMap;
bool shipped = entry['enabledIn'] != null;
@@ -161,7 +149,7 @@
class ExperimentalFeatures {
''');
int index = 0;
- for (var key in keysInIndexOrder) {
+ for (var key in keysSorted) {
var id = keyToIdentifier(key);
var help = (experimentsYaml[key] as YamlMap)['help'] ?? '';
var enabledIn = (experimentsYaml[key] as YamlMap)['enabledIn'];