Add "super-parameters" experiment flag
Part of https://github.com/dart-lang/sdk/issues/47525.
Change-Id: If7bf6f39b9b3ade1769f158ea1ca45515f859a2a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/217640
Auto-Submit: Chloe Stefantsova <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
diff --git a/pkg/analyzer/lib/src/dart/analysis/driver.dart b/pkg/analyzer/lib/src/dart/analysis/driver.dart
index 0c9499c..557a2e8 100644
--- a/pkg/analyzer/lib/src/dart/analysis/driver.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/driver.dart
@@ -80,7 +80,7 @@
/// TODO(scheglov) Clean up the list of implicitly analyzed files.
class AnalysisDriver implements AnalysisDriverGeneric {
/// The version of data format, should be incremented on every format change.
- static const int DATA_VERSION = 189;
+ static const int DATA_VERSION = 190;
/// The number of exception contexts allowed to write. Once this field is
/// zero, we stop writing any new exception contexts in this process.
diff --git a/pkg/analyzer/lib/src/dart/analysis/experiments.g.dart b/pkg/analyzer/lib/src/dart/analysis/experiments.g.dart
index e4c3cc4..ce99ad0 100644
--- a/pkg/analyzer/lib/src/dart/analysis/experiments.g.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/experiments.g.dart
@@ -28,6 +28,7 @@
ExperimentalFeatures.nonfunction_type_aliases,
EnableString.set_literals: ExperimentalFeatures.set_literals,
EnableString.spread_collections: ExperimentalFeatures.spread_collections,
+ EnableString.super_parameters: ExperimentalFeatures.super_parameters,
EnableString.test_experiment: ExperimentalFeatures.test_experiment,
EnableString.triple_shift: ExperimentalFeatures.triple_shift,
EnableString.value_class: ExperimentalFeatures.value_class,
@@ -76,6 +77,9 @@
/// String to enable the experiment "spread-collections"
static const String spread_collections = 'spread-collections';
+ /// String to enable the experiment "super-parameters"
+ static const String super_parameters = 'super-parameters';
+
/// String to enable the experiment "test-experiment"
static const String test_experiment = 'test-experiment';
@@ -223,8 +227,18 @@
releaseVersion: Version.parse('2.0.0'),
);
- static final test_experiment = ExperimentalFeature(
+ static final super_parameters = ExperimentalFeature(
index: 13,
+ enableString: EnableString.super_parameters,
+ isEnabledByDefault: IsEnabledByDefault.super_parameters,
+ isExpired: IsExpired.super_parameters,
+ documentation: 'Super-Initializer Parameters',
+ experimentalReleaseVersion: null,
+ releaseVersion: null,
+ );
+
+ static final test_experiment = ExperimentalFeature(
+ index: 14,
enableString: EnableString.test_experiment,
isEnabledByDefault: IsEnabledByDefault.test_experiment,
isExpired: IsExpired.test_experiment,
@@ -235,7 +249,7 @@
);
static final triple_shift = ExperimentalFeature(
- index: 14,
+ index: 15,
enableString: EnableString.triple_shift,
isEnabledByDefault: IsEnabledByDefault.triple_shift,
isExpired: IsExpired.triple_shift,
@@ -245,7 +259,7 @@
);
static final value_class = ExperimentalFeature(
- index: 15,
+ index: 16,
enableString: EnableString.value_class,
isEnabledByDefault: IsEnabledByDefault.value_class,
isExpired: IsExpired.value_class,
@@ -255,7 +269,7 @@
);
static final variance = ExperimentalFeature(
- index: 16,
+ index: 17,
enableString: EnableString.variance,
isEnabledByDefault: IsEnabledByDefault.variance,
isExpired: IsExpired.variance,
@@ -307,6 +321,9 @@
/// Default state of the experiment "spread-collections"
static const bool spread_collections = true;
+ /// Default state of the experiment "super-parameters"
+ static const bool super_parameters = false;
+
/// Default state of the experiment "test-experiment"
static const bool test_experiment = false;
@@ -363,6 +380,9 @@
/// Expiration status of the experiment "spread-collections"
static const bool spread_collections = true;
+ /// Expiration status of the experiment "super-parameters"
+ static const bool super_parameters = false;
+
/// Expiration status of the experiment "test-experiment"
static const bool test_experiment = false;
@@ -423,6 +443,9 @@
bool get spread_collections =>
isEnabled(ExperimentalFeatures.spread_collections);
+ /// Current state for the flag "super-parameters"
+ bool get super_parameters => isEnabled(ExperimentalFeatures.super_parameters);
+
/// Current state for the flag "test-experiment"
bool get test_experiment => isEnabled(ExperimentalFeatures.test_experiment);
diff --git a/pkg/front_end/lib/src/api_prototype/experimental_flags_generated.dart b/pkg/front_end/lib/src/api_prototype/experimental_flags_generated.dart
index 82414c9..4102f5a 100644
--- a/pkg/front_end/lib/src/api_prototype/experimental_flags_generated.dart
+++ b/pkg/front_end/lib/src/api_prototype/experimental_flags_generated.dart
@@ -24,6 +24,7 @@
nonfunctionTypeAliases,
setLiterals,
spreadCollections,
+ superParameters,
testExperiment,
tripleShift,
valueClass,
@@ -45,6 +46,7 @@
const Version enableNonfunctionTypeAliasesVersion = const Version(2, 13);
const Version enableSetLiteralsVersion = const Version(2, 0);
const Version enableSpreadCollectionsVersion = const Version(2, 0);
+const Version enableSuperParametersVersion = const Version(2, 15);
const Version enableTestExperimentVersion = const Version(2, 15);
const Version enableTripleShiftVersion = const Version(2, 14);
const Version enableValueClassVersion = const Version(2, 15);
@@ -80,6 +82,8 @@
return ExperimentalFlag.setLiterals;
case "spread-collections":
return ExperimentalFlag.spreadCollections;
+ case "super-parameters":
+ return ExperimentalFlag.superParameters;
case "test-experiment":
return ExperimentalFlag.testExperiment;
case "triple-shift":
@@ -107,6 +111,7 @@
ExperimentalFlag.nonfunctionTypeAliases: true,
ExperimentalFlag.setLiterals: true,
ExperimentalFlag.spreadCollections: true,
+ ExperimentalFlag.superParameters: false,
ExperimentalFlag.testExperiment: false,
ExperimentalFlag.tripleShift: true,
ExperimentalFlag.valueClass: false,
@@ -128,6 +133,7 @@
ExperimentalFlag.nonfunctionTypeAliases: false,
ExperimentalFlag.setLiterals: true,
ExperimentalFlag.spreadCollections: true,
+ ExperimentalFlag.superParameters: false,
ExperimentalFlag.testExperiment: false,
ExperimentalFlag.tripleShift: false,
ExperimentalFlag.valueClass: false,
@@ -149,6 +155,7 @@
ExperimentalFlag.nonfunctionTypeAliases: const Version(2, 13),
ExperimentalFlag.setLiterals: const Version(2, 0),
ExperimentalFlag.spreadCollections: const Version(2, 0),
+ ExperimentalFlag.superParameters: const Version(2, 15),
ExperimentalFlag.testExperiment: const Version(2, 15),
ExperimentalFlag.tripleShift: const Version(2, 14),
ExperimentalFlag.valueClass: const Version(2, 15),
@@ -170,6 +177,7 @@
ExperimentalFlag.nonfunctionTypeAliases: const Version(2, 13),
ExperimentalFlag.setLiterals: const Version(2, 0),
ExperimentalFlag.spreadCollections: const Version(2, 0),
+ ExperimentalFlag.superParameters: const Version(2, 15),
ExperimentalFlag.testExperiment: const Version(2, 15),
ExperimentalFlag.tripleShift: const Version(2, 14),
ExperimentalFlag.valueClass: const Version(2, 15),
diff --git a/tools/experimental_features.yaml b/tools/experimental_features.yaml
index bf28d56..3c3b0a7 100644
--- a/tools/experimental_features.yaml
+++ b/tools/experimental_features.yaml
@@ -128,6 +128,9 @@
named-arguments-anywhere:
help: "Named Arguments Anywhere"
+ super-parameters:
+ help: "Super-Initializer Parameters"
+
# Experiment flag only used for testing.
test-experiment:
help: >-