Skip to content

Commit 5d99c6b

Browse files
kallentucommit-bot@chromium.org
authored andcommitted
Added 'const-functions' experiment flag.
Change-Id: I907c17e8a2039574505273b1f12f706be6121b76 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/185680 Commit-Queue: Kallen Tu <[email protected]> Reviewed-by: Dmitry Stefantsov <[email protected]> Reviewed-by: Jake Macdonald <[email protected]> Reviewed-by: Bob Nystrom <[email protected]>
1 parent 4e1c79d commit 5d99c6b

File tree

3 files changed

+47
-12
lines changed

3 files changed

+47
-12
lines changed

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

+36-12
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ const _currentVersion = '2.13.0';
1212

1313
/// A map containing information about all known experimental flags.
1414
final _knownFeatures = <String, ExperimentalFeature>{
15+
EnableString.const_functions: ExperimentalFeatures.const_functions,
1516
EnableString.constant_update_2018: ExperimentalFeatures.constant_update_2018,
1617
EnableString.control_flow_collections:
1718
ExperimentalFeatures.control_flow_collections,
@@ -31,6 +32,9 @@ final _knownFeatures = <String, ExperimentalFeature>{
3132
/// Constant strings for enabling each of the currently known experimental
3233
/// flags.
3334
class EnableString {
35+
/// String to enable the experiment "const-functions"
36+
static const String const_functions = 'const-functions';
37+
3438
/// String to enable the experiment "constant-update-2018"
3539
static const String constant_update_2018 = 'constant-update-2018';
3640

@@ -69,8 +73,19 @@ class EnableString {
6973
}
7074

7175
class ExperimentalFeatures {
72-
static final constant_update_2018 = ExperimentalFeature(
76+
static final const_functions = ExperimentalFeature(
7377
index: 0,
78+
enableString: EnableString.const_functions,
79+
isEnabledByDefault: IsEnabledByDefault.const_functions,
80+
isExpired: IsExpired.const_functions,
81+
documentation:
82+
'Allow more of the Dart language to be executed in const expressions.',
83+
experimentalReleaseVersion: null,
84+
releaseVersion: null,
85+
);
86+
87+
static final constant_update_2018 = ExperimentalFeature(
88+
index: 1,
7489
enableString: EnableString.constant_update_2018,
7590
isEnabledByDefault: IsEnabledByDefault.constant_update_2018,
7691
isExpired: IsExpired.constant_update_2018,
@@ -80,7 +95,7 @@ class ExperimentalFeatures {
8095
);
8196

8297
static final control_flow_collections = ExperimentalFeature(
83-
index: 1,
98+
index: 2,
8499
enableString: EnableString.control_flow_collections,
85100
isEnabledByDefault: IsEnabledByDefault.control_flow_collections,
86101
isExpired: IsExpired.control_flow_collections,
@@ -90,7 +105,7 @@ class ExperimentalFeatures {
90105
);
91106

92107
static final extension_methods = ExperimentalFeature(
93-
index: 2,
108+
index: 3,
94109
enableString: EnableString.extension_methods,
95110
isEnabledByDefault: IsEnabledByDefault.extension_methods,
96111
isExpired: IsExpired.extension_methods,
@@ -100,7 +115,7 @@ class ExperimentalFeatures {
100115
);
101116

102117
static final extension_types = ExperimentalFeature(
103-
index: 3,
118+
index: 4,
104119
enableString: EnableString.extension_types,
105120
isEnabledByDefault: IsEnabledByDefault.extension_types,
106121
isExpired: IsExpired.extension_types,
@@ -110,7 +125,7 @@ class ExperimentalFeatures {
110125
);
111126

112127
static final generic_metadata = ExperimentalFeature(
113-
index: 4,
128+
index: 5,
114129
enableString: EnableString.generic_metadata,
115130
isEnabledByDefault: IsEnabledByDefault.generic_metadata,
116131
isExpired: IsExpired.generic_metadata,
@@ -121,7 +136,7 @@ class ExperimentalFeatures {
121136
);
122137

123138
static final non_nullable = ExperimentalFeature(
124-
index: 5,
139+
index: 6,
125140
enableString: EnableString.non_nullable,
126141
isEnabledByDefault: IsEnabledByDefault.non_nullable,
127142
isExpired: IsExpired.non_nullable,
@@ -131,7 +146,7 @@ class ExperimentalFeatures {
131146
);
132147

133148
static final nonfunction_type_aliases = ExperimentalFeature(
134-
index: 6,
149+
index: 7,
135150
enableString: EnableString.nonfunction_type_aliases,
136151
isEnabledByDefault: IsEnabledByDefault.nonfunction_type_aliases,
137152
isExpired: IsExpired.nonfunction_type_aliases,
@@ -141,7 +156,7 @@ class ExperimentalFeatures {
141156
);
142157

143158
static final set_literals = ExperimentalFeature(
144-
index: 7,
159+
index: 8,
145160
enableString: EnableString.set_literals,
146161
isEnabledByDefault: IsEnabledByDefault.set_literals,
147162
isExpired: IsExpired.set_literals,
@@ -151,7 +166,7 @@ class ExperimentalFeatures {
151166
);
152167

153168
static final spread_collections = ExperimentalFeature(
154-
index: 8,
169+
index: 9,
155170
enableString: EnableString.spread_collections,
156171
isEnabledByDefault: IsEnabledByDefault.spread_collections,
157172
isExpired: IsExpired.spread_collections,
@@ -161,7 +176,7 @@ class ExperimentalFeatures {
161176
);
162177

163178
static final triple_shift = ExperimentalFeature(
164-
index: 9,
179+
index: 10,
165180
enableString: EnableString.triple_shift,
166181
isEnabledByDefault: IsEnabledByDefault.triple_shift,
167182
isExpired: IsExpired.triple_shift,
@@ -171,7 +186,7 @@ class ExperimentalFeatures {
171186
);
172187

173188
static final value_class = ExperimentalFeature(
174-
index: 10,
189+
index: 11,
175190
enableString: EnableString.value_class,
176191
isEnabledByDefault: IsEnabledByDefault.value_class,
177192
isExpired: IsExpired.value_class,
@@ -181,7 +196,7 @@ class ExperimentalFeatures {
181196
);
182197

183198
static final variance = ExperimentalFeature(
184-
index: 11,
199+
index: 12,
185200
enableString: EnableString.variance,
186201
isEnabledByDefault: IsEnabledByDefault.variance,
187202
isExpired: IsExpired.variance,
@@ -194,6 +209,9 @@ class ExperimentalFeatures {
194209
/// Constant bools indicating whether each experimental flag is currently
195210
/// enabled by default.
196211
class IsEnabledByDefault {
212+
/// Default state of the experiment "const-functions"
213+
static const bool const_functions = false;
214+
197215
/// Default state of the experiment "constant-update-2018"
198216
static const bool constant_update_2018 = true;
199217

@@ -235,6 +253,9 @@ class IsEnabledByDefault {
235253
/// expired (meaning its enable/disable status can no longer be altered from the
236254
/// value in [IsEnabledByDefault]).
237255
class IsExpired {
256+
/// Expiration status of the experiment "const-functions"
257+
static const bool const_functions = false;
258+
238259
/// Expiration status of the experiment "constant-update-2018"
239260
static const bool constant_update_2018 = true;
240261

@@ -273,6 +294,9 @@ class IsExpired {
273294
}
274295

275296
mixin _CurrentState {
297+
/// Current state for the flag "const-functions"
298+
bool get const_functions => isEnabled(ExperimentalFeatures.const_functions);
299+
276300
/// Current state for the flag "constant-update-2018"
277301
bool get constant_update_2018 =>
278302
isEnabled(ExperimentalFeatures.constant_update_2018);

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

+8
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ part of 'experimental_flags.dart';
1313

1414
enum ExperimentalFlag {
1515
alternativeInvalidationStrategy,
16+
constFunctions,
1617
constantUpdate2018,
1718
controlFlowCollections,
1819
extensionMethods,
@@ -29,6 +30,7 @@ enum ExperimentalFlag {
2930

3031
const Version enableAlternativeInvalidationStrategyVersion =
3132
const Version(2, 13);
33+
const Version enableConstFunctionsVersion = const Version(2, 13);
3234
const Version enableConstantUpdate2018Version = const Version(2, 0);
3335
const Version enableControlFlowCollectionsVersion = const Version(2, 0);
3436
const Version enableExtensionMethodsVersion = const Version(2, 6);
@@ -46,6 +48,8 @@ ExperimentalFlag parseExperimentalFlag(String flag) {
4648
switch (flag) {
4749
case "alternative-invalidation-strategy":
4850
return ExperimentalFlag.alternativeInvalidationStrategy;
51+
case "const-functions":
52+
return ExperimentalFlag.constFunctions;
4953
case "constant-update-2018":
5054
return ExperimentalFlag.constantUpdate2018;
5155
case "control-flow-collections":
@@ -76,6 +80,7 @@ ExperimentalFlag parseExperimentalFlag(String flag) {
7680

7781
const Map<ExperimentalFlag, bool> defaultExperimentalFlags = {
7882
ExperimentalFlag.alternativeInvalidationStrategy: false,
83+
ExperimentalFlag.constFunctions: false,
7984
ExperimentalFlag.constantUpdate2018: true,
8085
ExperimentalFlag.controlFlowCollections: true,
8186
ExperimentalFlag.extensionMethods: true,
@@ -92,6 +97,7 @@ const Map<ExperimentalFlag, bool> defaultExperimentalFlags = {
9297

9398
const Map<ExperimentalFlag, bool> expiredExperimentalFlags = {
9499
ExperimentalFlag.alternativeInvalidationStrategy: false,
100+
ExperimentalFlag.constFunctions: false,
95101
ExperimentalFlag.constantUpdate2018: true,
96102
ExperimentalFlag.controlFlowCollections: true,
97103
ExperimentalFlag.extensionMethods: false,
@@ -108,6 +114,7 @@ const Map<ExperimentalFlag, bool> expiredExperimentalFlags = {
108114

109115
const Map<ExperimentalFlag, Version> experimentEnabledVersion = {
110116
ExperimentalFlag.alternativeInvalidationStrategy: const Version(2, 13),
117+
ExperimentalFlag.constFunctions: const Version(2, 13),
111118
ExperimentalFlag.constantUpdate2018: const Version(2, 0),
112119
ExperimentalFlag.controlFlowCollections: const Version(2, 0),
113120
ExperimentalFlag.extensionMethods: const Version(2, 6),
@@ -124,6 +131,7 @@ const Map<ExperimentalFlag, Version> experimentEnabledVersion = {
124131

125132
const Map<ExperimentalFlag, Version> experimentReleasedVersion = {
126133
ExperimentalFlag.alternativeInvalidationStrategy: const Version(2, 13),
134+
ExperimentalFlag.constFunctions: const Version(2, 13),
127135
ExperimentalFlag.constantUpdate2018: const Version(2, 0),
128136
ExperimentalFlag.controlFlowCollections: const Version(2, 0),
129137
ExperimentalFlag.extensionMethods: const Version(2, 6),

tools/experimental_features.yaml

+3
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,9 @@ features:
122122
extension-types:
123123
help: "Extension Types"
124124

125+
const-functions:
126+
help: "Allow more of the Dart language to be executed in const expressions."
127+
125128
#
126129
# Flags below this line are shipped, retired, or rejected, cannot be specified
127130
# on the command line, and will eventually be removed.

0 commit comments

Comments
 (0)