Skip to content

Commit 69d66d9

Browse files
stereotype441Commit Bot
authored and
Commit Bot
committed
Add experimental flag inference-update-1.
This is intended to be an umbrella for several features we plan to implement during Q2: - Improved type inference for methods like `Iterable.fold` (dart-lang/language#731). - Promotion of final fields (dart-lang/language#2020). - Other type inference and type promotion issues as time allows. Change-Id: I31db3c15d3f6a2654650f056866c61f3d1023600 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/237924 Reviewed-by: Konstantin Shcheglov <[email protected]> Reviewed-by: Johnni Winther <[email protected]> Reviewed-by: William Hesse <[email protected]> Commit-Queue: Paul Berry <[email protected]>
1 parent c2339ee commit 69d66d9

File tree

4 files changed

+47
-12
lines changed

4 files changed

+47
-12
lines changed

pkg/analyzer/lib/src/dart/analysis/driver.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ import 'package:meta/meta.dart';
8383
/// TODO(scheglov) Clean up the list of implicitly analyzed files.
8484
class AnalysisDriver implements AnalysisDriverGeneric {
8585
/// The version of data format, should be incremented on every format change.
86-
static const int DATA_VERSION = 211;
86+
static const int DATA_VERSION = 212;
8787

8888
static const bool _applyFileChangesSynchronously = true;
8989

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

Lines changed: 35 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ final _knownFeatures = <String, ExperimentalFeature>{
2121
EnableString.extension_methods: ExperimentalFeatures.extension_methods,
2222
EnableString.extension_types: ExperimentalFeatures.extension_types,
2323
EnableString.generic_metadata: ExperimentalFeatures.generic_metadata,
24+
EnableString.inference_update_1: ExperimentalFeatures.inference_update_1,
2425
EnableString.macros: ExperimentalFeatures.macros,
2526
EnableString.named_arguments_anywhere:
2627
ExperimentalFeatures.named_arguments_anywhere,
@@ -63,6 +64,9 @@ class EnableString {
6364
/// String to enable the experiment "generic-metadata"
6465
static const String generic_metadata = 'generic-metadata';
6566

67+
/// String to enable the experiment "inference-update-1"
68+
static const String inference_update_1 = 'inference-update-1';
69+
6670
/// String to enable the experiment "macros"
6771
static const String macros = 'macros';
6872

@@ -181,8 +185,18 @@ class ExperimentalFeatures {
181185
releaseVersion: Version.parse('2.14.0'),
182186
);
183187

184-
static final macros = ExperimentalFeature(
188+
static final inference_update_1 = ExperimentalFeature(
185189
index: 8,
190+
enableString: EnableString.inference_update_1,
191+
isEnabledByDefault: IsEnabledByDefault.inference_update_1,
192+
isExpired: IsExpired.inference_update_1,
193+
documentation: 'Enhanced type inference',
194+
experimentalReleaseVersion: null,
195+
releaseVersion: null,
196+
);
197+
198+
static final macros = ExperimentalFeature(
199+
index: 9,
186200
enableString: EnableString.macros,
187201
isEnabledByDefault: IsEnabledByDefault.macros,
188202
isExpired: IsExpired.macros,
@@ -192,7 +206,7 @@ class ExperimentalFeatures {
192206
);
193207

194208
static final named_arguments_anywhere = ExperimentalFeature(
195-
index: 9,
209+
index: 10,
196210
enableString: EnableString.named_arguments_anywhere,
197211
isEnabledByDefault: IsEnabledByDefault.named_arguments_anywhere,
198212
isExpired: IsExpired.named_arguments_anywhere,
@@ -202,7 +216,7 @@ class ExperimentalFeatures {
202216
);
203217

204218
static final non_nullable = ExperimentalFeature(
205-
index: 10,
219+
index: 11,
206220
enableString: EnableString.non_nullable,
207221
isEnabledByDefault: IsEnabledByDefault.non_nullable,
208222
isExpired: IsExpired.non_nullable,
@@ -212,7 +226,7 @@ class ExperimentalFeatures {
212226
);
213227

214228
static final nonfunction_type_aliases = ExperimentalFeature(
215-
index: 11,
229+
index: 12,
216230
enableString: EnableString.nonfunction_type_aliases,
217231
isEnabledByDefault: IsEnabledByDefault.nonfunction_type_aliases,
218232
isExpired: IsExpired.nonfunction_type_aliases,
@@ -222,7 +236,7 @@ class ExperimentalFeatures {
222236
);
223237

224238
static final set_literals = ExperimentalFeature(
225-
index: 12,
239+
index: 13,
226240
enableString: EnableString.set_literals,
227241
isEnabledByDefault: IsEnabledByDefault.set_literals,
228242
isExpired: IsExpired.set_literals,
@@ -232,7 +246,7 @@ class ExperimentalFeatures {
232246
);
233247

234248
static final spread_collections = ExperimentalFeature(
235-
index: 13,
249+
index: 14,
236250
enableString: EnableString.spread_collections,
237251
isEnabledByDefault: IsEnabledByDefault.spread_collections,
238252
isExpired: IsExpired.spread_collections,
@@ -242,7 +256,7 @@ class ExperimentalFeatures {
242256
);
243257

244258
static final super_parameters = ExperimentalFeature(
245-
index: 14,
259+
index: 15,
246260
enableString: EnableString.super_parameters,
247261
isEnabledByDefault: IsEnabledByDefault.super_parameters,
248262
isExpired: IsExpired.super_parameters,
@@ -252,7 +266,7 @@ class ExperimentalFeatures {
252266
);
253267

254268
static final test_experiment = ExperimentalFeature(
255-
index: 15,
269+
index: 16,
256270
enableString: EnableString.test_experiment,
257271
isEnabledByDefault: IsEnabledByDefault.test_experiment,
258272
isExpired: IsExpired.test_experiment,
@@ -263,7 +277,7 @@ class ExperimentalFeatures {
263277
);
264278

265279
static final triple_shift = ExperimentalFeature(
266-
index: 16,
280+
index: 17,
267281
enableString: EnableString.triple_shift,
268282
isEnabledByDefault: IsEnabledByDefault.triple_shift,
269283
isExpired: IsExpired.triple_shift,
@@ -273,7 +287,7 @@ class ExperimentalFeatures {
273287
);
274288

275289
static final value_class = ExperimentalFeature(
276-
index: 17,
290+
index: 18,
277291
enableString: EnableString.value_class,
278292
isEnabledByDefault: IsEnabledByDefault.value_class,
279293
isExpired: IsExpired.value_class,
@@ -283,7 +297,7 @@ class ExperimentalFeatures {
283297
);
284298

285299
static final variance = ExperimentalFeature(
286-
index: 18,
300+
index: 19,
287301
enableString: EnableString.variance,
288302
isEnabledByDefault: IsEnabledByDefault.variance,
289303
isExpired: IsExpired.variance,
@@ -320,6 +334,9 @@ class IsEnabledByDefault {
320334
/// Default state of the experiment "generic-metadata"
321335
static const bool generic_metadata = true;
322336

337+
/// Default state of the experiment "inference-update-1"
338+
static const bool inference_update_1 = false;
339+
323340
/// Default state of the experiment "macros"
324341
static const bool macros = false;
325342

@@ -382,6 +399,9 @@ class IsExpired {
382399
/// Expiration status of the experiment "generic-metadata"
383400
static const bool generic_metadata = true;
384401

402+
/// Expiration status of the experiment "inference-update-1"
403+
static const bool inference_update_1 = false;
404+
385405
/// Expiration status of the experiment "macros"
386406
static const bool macros = false;
387407

@@ -445,6 +465,10 @@ mixin _CurrentState {
445465
/// Current state for the flag "generic-metadata"
446466
bool get generic_metadata => isEnabled(ExperimentalFeatures.generic_metadata);
447467

468+
/// Current state for the flag "inference-update-1"
469+
bool get inference_update_1 =>
470+
isEnabled(ExperimentalFeatures.inference_update_1);
471+
448472
/// Current state for the flag "macros"
449473
bool get macros => isEnabled(ExperimentalFeatures.macros);
450474

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
@@ -19,6 +19,7 @@ enum ExperimentalFlag {
1919
extensionMethods,
2020
extensionTypes,
2121
genericMetadata,
22+
inferenceUpdate1,
2223
macros,
2324
namedArgumentsAnywhere,
2425
nonNullable,
@@ -42,6 +43,7 @@ const Version enableEnhancedEnumsVersion = const Version(2, 17);
4243
const Version enableExtensionMethodsVersion = const Version(2, 6);
4344
const Version enableExtensionTypesVersion = const Version(2, 17);
4445
const Version enableGenericMetadataVersion = const Version(2, 14);
46+
const Version enableInferenceUpdate1Version = const Version(2, 17);
4547
const Version enableMacrosVersion = const Version(2, 17);
4648
const Version enableNamedArgumentsAnywhereVersion = const Version(2, 17);
4749
const Version enableNonNullableVersion = const Version(2, 12);
@@ -74,6 +76,8 @@ ExperimentalFlag? parseExperimentalFlag(String flag) {
7476
return ExperimentalFlag.extensionTypes;
7577
case "generic-metadata":
7678
return ExperimentalFlag.genericMetadata;
79+
case "inference-update-1":
80+
return ExperimentalFlag.inferenceUpdate1;
7781
case "macros":
7882
return ExperimentalFlag.macros;
7983
case "named-arguments-anywhere":
@@ -110,6 +114,7 @@ const Map<ExperimentalFlag, bool> defaultExperimentalFlags = {
110114
ExperimentalFlag.extensionMethods: true,
111115
ExperimentalFlag.extensionTypes: false,
112116
ExperimentalFlag.genericMetadata: true,
117+
ExperimentalFlag.inferenceUpdate1: false,
113118
ExperimentalFlag.macros: false,
114119
ExperimentalFlag.namedArgumentsAnywhere: true,
115120
ExperimentalFlag.nonNullable: true,
@@ -133,6 +138,7 @@ const Map<ExperimentalFlag, bool> expiredExperimentalFlags = {
133138
ExperimentalFlag.extensionMethods: true,
134139
ExperimentalFlag.extensionTypes: false,
135140
ExperimentalFlag.genericMetadata: true,
141+
ExperimentalFlag.inferenceUpdate1: false,
136142
ExperimentalFlag.macros: false,
137143
ExperimentalFlag.namedArgumentsAnywhere: false,
138144
ExperimentalFlag.nonNullable: true,
@@ -156,6 +162,7 @@ const Map<ExperimentalFlag, Version> experimentEnabledVersion = {
156162
ExperimentalFlag.extensionMethods: const Version(2, 6),
157163
ExperimentalFlag.extensionTypes: const Version(2, 17),
158164
ExperimentalFlag.genericMetadata: const Version(2, 14),
165+
ExperimentalFlag.inferenceUpdate1: const Version(2, 17),
159166
ExperimentalFlag.macros: const Version(2, 17),
160167
ExperimentalFlag.namedArgumentsAnywhere: const Version(2, 17),
161168
ExperimentalFlag.nonNullable: const Version(2, 12),
@@ -179,6 +186,7 @@ const Map<ExperimentalFlag, Version> experimentReleasedVersion = {
179186
ExperimentalFlag.extensionMethods: const Version(2, 6),
180187
ExperimentalFlag.extensionTypes: const Version(2, 17),
181188
ExperimentalFlag.genericMetadata: const Version(2, 14),
189+
ExperimentalFlag.inferenceUpdate1: const Version(2, 17),
182190
ExperimentalFlag.macros: const Version(2, 17),
183191
ExperimentalFlag.namedArgumentsAnywhere: const Version(2, 17),
184192
ExperimentalFlag.nonNullable: const Version(2, 10),

tools/experimental_features.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,9 @@ features:
125125
macros:
126126
help: "Static meta-programming"
127127

128+
inference-update-1:
129+
help: "Enhanced type inference"
130+
128131
# Experiment flag only used for testing.
129132
test-experiment:
130133
help: >-

0 commit comments

Comments
 (0)