Skip to content

Commit cfa5d6c

Browse files
Chloe Stefantsovacommit-bot@chromium.org
Chloe Stefantsova
authored andcommitted
Add "enhanced-enums" experiment flag
Part of #47453. Change-Id: I6d1fdc4bc170354985a9d216b13ad8f153717adf Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/216662 Reviewed-by: Johnni Winther <[email protected]> Commit-Queue: Chloe Stefantsova <[email protected]>
1 parent 2d2dace commit cfa5d6c

File tree

3 files changed

+45
-11
lines changed

3 files changed

+45
-11
lines changed

pkg/analyzer/lib/src/dart/analysis/experiments.g.dart

Lines changed: 34 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ final _knownFeatures = <String, ExperimentalFeature>{
1717
EnableString.constructor_tearoffs: ExperimentalFeatures.constructor_tearoffs,
1818
EnableString.control_flow_collections:
1919
ExperimentalFeatures.control_flow_collections,
20+
EnableString.enhanced_enums: ExperimentalFeatures.enhanced_enums,
2021
EnableString.extension_methods: ExperimentalFeatures.extension_methods,
2122
EnableString.extension_types: ExperimentalFeatures.extension_types,
2223
EnableString.generic_metadata: ExperimentalFeatures.generic_metadata,
@@ -46,6 +47,9 @@ class EnableString {
4647
/// String to enable the experiment "control-flow-collections"
4748
static const String control_flow_collections = 'control-flow-collections';
4849

50+
/// String to enable the experiment "enhanced-enums"
51+
static const String enhanced_enums = 'enhanced-enums';
52+
4953
/// String to enable the experiment "extension-methods"
5054
static const String extension_methods = 'extension-methods';
5155

@@ -123,8 +127,18 @@ class ExperimentalFeatures {
123127
releaseVersion: Version.parse('2.0.0'),
124128
);
125129

126-
static final extension_methods = ExperimentalFeature(
130+
static final enhanced_enums = ExperimentalFeature(
127131
index: 4,
132+
enableString: EnableString.enhanced_enums,
133+
isEnabledByDefault: IsEnabledByDefault.enhanced_enums,
134+
isExpired: IsExpired.enhanced_enums,
135+
documentation: 'Enhanced Enums',
136+
experimentalReleaseVersion: null,
137+
releaseVersion: null,
138+
);
139+
140+
static final extension_methods = ExperimentalFeature(
141+
index: 5,
128142
enableString: EnableString.extension_methods,
129143
isEnabledByDefault: IsEnabledByDefault.extension_methods,
130144
isExpired: IsExpired.extension_methods,
@@ -134,7 +148,7 @@ class ExperimentalFeatures {
134148
);
135149

136150
static final extension_types = ExperimentalFeature(
137-
index: 5,
151+
index: 6,
138152
enableString: EnableString.extension_types,
139153
isEnabledByDefault: IsEnabledByDefault.extension_types,
140154
isExpired: IsExpired.extension_types,
@@ -144,7 +158,7 @@ class ExperimentalFeatures {
144158
);
145159

146160
static final generic_metadata = ExperimentalFeature(
147-
index: 6,
161+
index: 7,
148162
enableString: EnableString.generic_metadata,
149163
isEnabledByDefault: IsEnabledByDefault.generic_metadata,
150164
isExpired: IsExpired.generic_metadata,
@@ -155,7 +169,7 @@ class ExperimentalFeatures {
155169
);
156170

157171
static final non_nullable = ExperimentalFeature(
158-
index: 7,
172+
index: 8,
159173
enableString: EnableString.non_nullable,
160174
isEnabledByDefault: IsEnabledByDefault.non_nullable,
161175
isExpired: IsExpired.non_nullable,
@@ -165,7 +179,7 @@ class ExperimentalFeatures {
165179
);
166180

167181
static final nonfunction_type_aliases = ExperimentalFeature(
168-
index: 8,
182+
index: 9,
169183
enableString: EnableString.nonfunction_type_aliases,
170184
isEnabledByDefault: IsEnabledByDefault.nonfunction_type_aliases,
171185
isExpired: IsExpired.nonfunction_type_aliases,
@@ -175,7 +189,7 @@ class ExperimentalFeatures {
175189
);
176190

177191
static final set_literals = ExperimentalFeature(
178-
index: 9,
192+
index: 10,
179193
enableString: EnableString.set_literals,
180194
isEnabledByDefault: IsEnabledByDefault.set_literals,
181195
isExpired: IsExpired.set_literals,
@@ -185,7 +199,7 @@ class ExperimentalFeatures {
185199
);
186200

187201
static final spread_collections = ExperimentalFeature(
188-
index: 10,
202+
index: 11,
189203
enableString: EnableString.spread_collections,
190204
isEnabledByDefault: IsEnabledByDefault.spread_collections,
191205
isExpired: IsExpired.spread_collections,
@@ -195,7 +209,7 @@ class ExperimentalFeatures {
195209
);
196210

197211
static final test_experiment = ExperimentalFeature(
198-
index: 11,
212+
index: 12,
199213
enableString: EnableString.test_experiment,
200214
isEnabledByDefault: IsEnabledByDefault.test_experiment,
201215
isExpired: IsExpired.test_experiment,
@@ -206,7 +220,7 @@ class ExperimentalFeatures {
206220
);
207221

208222
static final triple_shift = ExperimentalFeature(
209-
index: 12,
223+
index: 13,
210224
enableString: EnableString.triple_shift,
211225
isEnabledByDefault: IsEnabledByDefault.triple_shift,
212226
isExpired: IsExpired.triple_shift,
@@ -216,7 +230,7 @@ class ExperimentalFeatures {
216230
);
217231

218232
static final value_class = ExperimentalFeature(
219-
index: 13,
233+
index: 14,
220234
enableString: EnableString.value_class,
221235
isEnabledByDefault: IsEnabledByDefault.value_class,
222236
isExpired: IsExpired.value_class,
@@ -226,7 +240,7 @@ class ExperimentalFeatures {
226240
);
227241

228242
static final variance = ExperimentalFeature(
229-
index: 14,
243+
index: 15,
230244
enableString: EnableString.variance,
231245
isEnabledByDefault: IsEnabledByDefault.variance,
232246
isExpired: IsExpired.variance,
@@ -251,6 +265,9 @@ class IsEnabledByDefault {
251265
/// Default state of the experiment "control-flow-collections"
252266
static const bool control_flow_collections = true;
253267

268+
/// Default state of the experiment "enhanced-enums"
269+
static const bool enhanced_enums = false;
270+
254271
/// Default state of the experiment "extension-methods"
255272
static const bool extension_methods = true;
256273

@@ -301,6 +318,9 @@ class IsExpired {
301318
/// Expiration status of the experiment "control-flow-collections"
302319
static const bool control_flow_collections = true;
303320

321+
/// Expiration status of the experiment "enhanced-enums"
322+
static const bool enhanced_enums = false;
323+
304324
/// Expiration status of the experiment "extension-methods"
305325
static const bool extension_methods = false;
306326

@@ -351,6 +371,9 @@ mixin _CurrentState {
351371
bool get control_flow_collections =>
352372
isEnabled(ExperimentalFeatures.control_flow_collections);
353373

374+
/// Current state for the flag "enhanced-enums"
375+
bool get enhanced_enums => isEnabled(ExperimentalFeatures.enhanced_enums);
376+
354377
/// Current state for the flag "extension-methods"
355378
bool get extension_methods =>
356379
isEnabled(ExperimentalFeatures.extension_methods);

pkg/front_end/lib/src/api_prototype/experimental_flags_generated.dart

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ enum ExperimentalFlag {
1515
constantUpdate2018,
1616
constructorTearoffs,
1717
controlFlowCollections,
18+
enhancedEnums,
1819
extensionMethods,
1920
extensionTypes,
2021
genericMetadata,
@@ -34,6 +35,7 @@ const Version enableConstFunctionsVersion = const Version(2, 15);
3435
const Version enableConstantUpdate2018Version = const Version(2, 0);
3536
const Version enableConstructorTearoffsVersion = const Version(2, 15);
3637
const Version enableControlFlowCollectionsVersion = const Version(2, 0);
38+
const Version enableEnhancedEnumsVersion = const Version(2, 15);
3739
const Version enableExtensionMethodsVersion = const Version(2, 6);
3840
const Version enableExtensionTypesVersion = const Version(2, 15);
3941
const Version enableGenericMetadataVersion = const Version(2, 14);
@@ -58,6 +60,8 @@ ExperimentalFlag? parseExperimentalFlag(String flag) {
5860
return ExperimentalFlag.constructorTearoffs;
5961
case "control-flow-collections":
6062
return ExperimentalFlag.controlFlowCollections;
63+
case "enhanced-enums":
64+
return ExperimentalFlag.enhancedEnums;
6165
case "extension-methods":
6266
return ExperimentalFlag.extensionMethods;
6367
case "extension-types":
@@ -90,6 +94,7 @@ const Map<ExperimentalFlag, bool> defaultExperimentalFlags = {
9094
ExperimentalFlag.constantUpdate2018: true,
9195
ExperimentalFlag.constructorTearoffs: true,
9296
ExperimentalFlag.controlFlowCollections: true,
97+
ExperimentalFlag.enhancedEnums: false,
9398
ExperimentalFlag.extensionMethods: true,
9499
ExperimentalFlag.extensionTypes: false,
95100
ExperimentalFlag.genericMetadata: true,
@@ -109,6 +114,7 @@ const Map<ExperimentalFlag, bool> expiredExperimentalFlags = {
109114
ExperimentalFlag.constantUpdate2018: true,
110115
ExperimentalFlag.constructorTearoffs: false,
111116
ExperimentalFlag.controlFlowCollections: true,
117+
ExperimentalFlag.enhancedEnums: false,
112118
ExperimentalFlag.extensionMethods: false,
113119
ExperimentalFlag.extensionTypes: false,
114120
ExperimentalFlag.genericMetadata: false,
@@ -128,6 +134,7 @@ const Map<ExperimentalFlag, Version> experimentEnabledVersion = {
128134
ExperimentalFlag.constantUpdate2018: const Version(2, 0),
129135
ExperimentalFlag.constructorTearoffs: const Version(2, 15),
130136
ExperimentalFlag.controlFlowCollections: const Version(2, 0),
137+
ExperimentalFlag.enhancedEnums: const Version(2, 15),
131138
ExperimentalFlag.extensionMethods: const Version(2, 6),
132139
ExperimentalFlag.extensionTypes: const Version(2, 15),
133140
ExperimentalFlag.genericMetadata: const Version(2, 14),
@@ -147,6 +154,7 @@ const Map<ExperimentalFlag, Version> experimentReleasedVersion = {
147154
ExperimentalFlag.constantUpdate2018: const Version(2, 0),
148155
ExperimentalFlag.constructorTearoffs: const Version(2, 15),
149156
ExperimentalFlag.controlFlowCollections: const Version(2, 0),
157+
ExperimentalFlag.enhancedEnums: const Version(2, 15),
150158
ExperimentalFlag.extensionMethods: const Version(2, 6),
151159
ExperimentalFlag.extensionTypes: const Version(2, 15),
152160
ExperimentalFlag.genericMetadata: const Version(2, 14),

tools/experimental_features.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,9 @@ features:
122122
const-functions:
123123
help: "Allow more of the Dart language to be executed in const expressions."
124124

125+
enhanced-enums:
126+
help: "Enhanced Enums"
127+
125128
# Experiment flag only used for testing.
126129
test-experiment:
127130
help: >-

0 commit comments

Comments
 (0)