Add experiment flag for "Private Named Parameters".
Fix #61631. Change-Id: If797277e0ff294f11515ccfec845381b07c34a11 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/453643 Commit-Queue: Paul Berry <paulberry@google.com> Reviewed-by: Paul Berry <paulberry@google.com> Reviewed-by: Kallen Tu <kallentu@google.com> Auto-Submit: Bob Nystrom <rnystrom@google.com> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Reviewed-by: Nate Bosch <nbosch@google.com>
This commit is contained in:
committed by
Commit Queue
parent
f1aa58931d
commit
557db62620
@@ -234,6 +234,14 @@ enum ExperimentalFlag {
|
||||
experimentReleasedVersion: const Version(3, 0),
|
||||
),
|
||||
|
||||
privateNamedParameters(
|
||||
name: 'private-named-parameters',
|
||||
isEnabledByDefault: false,
|
||||
isExpired: false,
|
||||
experimentEnabledVersion: defaultLanguageVersion,
|
||||
experimentReleasedVersion: defaultLanguageVersion,
|
||||
),
|
||||
|
||||
recordUse(
|
||||
name: 'record-use',
|
||||
isEnabledByDefault: false,
|
||||
|
||||
@@ -409,6 +409,7 @@ package:analyzer/dart/analysis/features.dart:
|
||||
nonfunction_type_aliases (static getter: ExperimentalFeature)
|
||||
null_aware_elements (static getter: ExperimentalFeature)
|
||||
patterns (static getter: ExperimentalFeature)
|
||||
private_named_parameters (static getter: ExperimentalFeature)
|
||||
records (static getter: ExperimentalFeature)
|
||||
sealed_class (static getter: ExperimentalFeature)
|
||||
set_literals (static getter: ExperimentalFeature)
|
||||
|
||||
@@ -81,6 +81,10 @@ abstract class Feature {
|
||||
/// Feature information for patterns.
|
||||
static final patterns = ExperimentalFeatures.patterns;
|
||||
|
||||
/// Feature information for private named parameters.
|
||||
static final private_named_parameters =
|
||||
ExperimentalFeatures.private_named_parameters;
|
||||
|
||||
/// Feature information for records.
|
||||
static final records = ExperimentalFeatures.records;
|
||||
|
||||
|
||||
@@ -107,7 +107,7 @@ testFineAfterLibraryAnalyzerHook;
|
||||
// TODO(scheglov): Clean up the list of implicitly analyzed files.
|
||||
class AnalysisDriver {
|
||||
/// The version of data format, should be incremented on every format change.
|
||||
static const int DATA_VERSION = 572;
|
||||
static const int DATA_VERSION = 573;
|
||||
|
||||
/// The number of exception contexts allowed to write. Once this field is
|
||||
/// zero, we stop writing any new exception contexts in this process.
|
||||
|
||||
@@ -49,6 +49,8 @@ final _knownFeatures = <String, ExperimentalFeature>{
|
||||
ExperimentalFeatures.nonfunction_type_aliases,
|
||||
EnableString.null_aware_elements: ExperimentalFeatures.null_aware_elements,
|
||||
EnableString.patterns: ExperimentalFeatures.patterns,
|
||||
EnableString.private_named_parameters:
|
||||
ExperimentalFeatures.private_named_parameters,
|
||||
EnableString.record_use: ExperimentalFeatures.record_use,
|
||||
EnableString.records: ExperimentalFeatures.records,
|
||||
EnableString.sealed_class: ExperimentalFeatures.sealed_class,
|
||||
@@ -152,6 +154,9 @@ class EnableString {
|
||||
/// String to enable the experiment "patterns"
|
||||
static const String patterns = 'patterns';
|
||||
|
||||
/// String to enable the experiment "private-named-parameters"
|
||||
static const String private_named_parameters = 'private-named-parameters';
|
||||
|
||||
/// String to enable the experiment "record-use"
|
||||
static const String record_use = 'record-use';
|
||||
|
||||
@@ -511,8 +516,20 @@ class ExperimentalFeatures {
|
||||
channels: ["stable", "beta", "dev", "main"],
|
||||
);
|
||||
|
||||
static final record_use = ExperimentalFeature(
|
||||
static final private_named_parameters = ExperimentalFeature(
|
||||
index: 28,
|
||||
enableString: EnableString.private_named_parameters,
|
||||
isEnabledByDefault: IsEnabledByDefault.private_named_parameters,
|
||||
isExpired: IsExpired.private_named_parameters,
|
||||
documentation:
|
||||
'Allow named parameters with private names that refer to fields.',
|
||||
experimentalReleaseVersion: null,
|
||||
releaseVersion: null,
|
||||
channels: ["stable", "beta", "dev", "main"],
|
||||
);
|
||||
|
||||
static final record_use = ExperimentalFeature(
|
||||
index: 29,
|
||||
enableString: EnableString.record_use,
|
||||
isEnabledByDefault: IsEnabledByDefault.record_use,
|
||||
isExpired: IsExpired.record_use,
|
||||
@@ -523,7 +540,7 @@ class ExperimentalFeatures {
|
||||
);
|
||||
|
||||
static final records = ExperimentalFeature(
|
||||
index: 29,
|
||||
index: 30,
|
||||
enableString: EnableString.records,
|
||||
isEnabledByDefault: IsEnabledByDefault.records,
|
||||
isExpired: IsExpired.records,
|
||||
@@ -534,7 +551,7 @@ class ExperimentalFeatures {
|
||||
);
|
||||
|
||||
static final sealed_class = ExperimentalFeature(
|
||||
index: 30,
|
||||
index: 31,
|
||||
enableString: EnableString.sealed_class,
|
||||
isEnabledByDefault: IsEnabledByDefault.sealed_class,
|
||||
isExpired: IsExpired.sealed_class,
|
||||
@@ -545,7 +562,7 @@ class ExperimentalFeatures {
|
||||
);
|
||||
|
||||
static final set_literals = ExperimentalFeature(
|
||||
index: 31,
|
||||
index: 32,
|
||||
enableString: EnableString.set_literals,
|
||||
isEnabledByDefault: IsEnabledByDefault.set_literals,
|
||||
isExpired: IsExpired.set_literals,
|
||||
@@ -556,7 +573,7 @@ class ExperimentalFeatures {
|
||||
);
|
||||
|
||||
static final sound_flow_analysis = ExperimentalFeature(
|
||||
index: 32,
|
||||
index: 33,
|
||||
enableString: EnableString.sound_flow_analysis,
|
||||
isEnabledByDefault: IsEnabledByDefault.sound_flow_analysis,
|
||||
isExpired: IsExpired.sound_flow_analysis,
|
||||
@@ -568,7 +585,7 @@ class ExperimentalFeatures {
|
||||
);
|
||||
|
||||
static final spread_collections = ExperimentalFeature(
|
||||
index: 33,
|
||||
index: 34,
|
||||
enableString: EnableString.spread_collections,
|
||||
isEnabledByDefault: IsEnabledByDefault.spread_collections,
|
||||
isExpired: IsExpired.spread_collections,
|
||||
@@ -579,7 +596,7 @@ class ExperimentalFeatures {
|
||||
);
|
||||
|
||||
static final static_extensions = ExperimentalFeature(
|
||||
index: 34,
|
||||
index: 35,
|
||||
enableString: EnableString.static_extensions,
|
||||
isEnabledByDefault: IsEnabledByDefault.static_extensions,
|
||||
isExpired: IsExpired.static_extensions,
|
||||
@@ -590,7 +607,7 @@ class ExperimentalFeatures {
|
||||
);
|
||||
|
||||
static final super_parameters = ExperimentalFeature(
|
||||
index: 35,
|
||||
index: 36,
|
||||
enableString: EnableString.super_parameters,
|
||||
isEnabledByDefault: IsEnabledByDefault.super_parameters,
|
||||
isExpired: IsExpired.super_parameters,
|
||||
@@ -601,7 +618,7 @@ class ExperimentalFeatures {
|
||||
);
|
||||
|
||||
static final test_experiment = ExperimentalFeature(
|
||||
index: 36,
|
||||
index: 37,
|
||||
enableString: EnableString.test_experiment,
|
||||
isEnabledByDefault: IsEnabledByDefault.test_experiment,
|
||||
isExpired: IsExpired.test_experiment,
|
||||
@@ -613,7 +630,7 @@ class ExperimentalFeatures {
|
||||
);
|
||||
|
||||
static final triple_shift = ExperimentalFeature(
|
||||
index: 37,
|
||||
index: 38,
|
||||
enableString: EnableString.triple_shift,
|
||||
isEnabledByDefault: IsEnabledByDefault.triple_shift,
|
||||
isExpired: IsExpired.triple_shift,
|
||||
@@ -624,7 +641,7 @@ class ExperimentalFeatures {
|
||||
);
|
||||
|
||||
static final unnamed_libraries = ExperimentalFeature(
|
||||
index: 38,
|
||||
index: 39,
|
||||
enableString: EnableString.unnamed_libraries,
|
||||
isEnabledByDefault: IsEnabledByDefault.unnamed_libraries,
|
||||
isExpired: IsExpired.unnamed_libraries,
|
||||
@@ -635,7 +652,7 @@ class ExperimentalFeatures {
|
||||
);
|
||||
|
||||
static final unquoted_imports = ExperimentalFeature(
|
||||
index: 39,
|
||||
index: 40,
|
||||
enableString: EnableString.unquoted_imports,
|
||||
isEnabledByDefault: IsEnabledByDefault.unquoted_imports,
|
||||
isExpired: IsExpired.unquoted_imports,
|
||||
@@ -646,7 +663,7 @@ class ExperimentalFeatures {
|
||||
);
|
||||
|
||||
static final variance = ExperimentalFeature(
|
||||
index: 40,
|
||||
index: 41,
|
||||
enableString: EnableString.variance,
|
||||
isEnabledByDefault: IsEnabledByDefault.variance,
|
||||
isExpired: IsExpired.variance,
|
||||
@@ -657,7 +674,7 @@ class ExperimentalFeatures {
|
||||
);
|
||||
|
||||
static final wildcard_variables = ExperimentalFeature(
|
||||
index: 41,
|
||||
index: 42,
|
||||
enableString: EnableString.wildcard_variables,
|
||||
isEnabledByDefault: IsEnabledByDefault.wildcard_variables,
|
||||
isExpired: IsExpired.wildcard_variables,
|
||||
@@ -756,6 +773,9 @@ class IsEnabledByDefault {
|
||||
/// Default state of the experiment "patterns"
|
||||
static const bool patterns = true;
|
||||
|
||||
/// Default state of the experiment "private-named-parameters"
|
||||
static const bool private_named_parameters = false;
|
||||
|
||||
/// Default state of the experiment "record-use"
|
||||
static const bool record_use = false;
|
||||
|
||||
@@ -887,6 +907,9 @@ class IsExpired {
|
||||
/// Expiration status of the experiment "patterns"
|
||||
static const bool patterns = true;
|
||||
|
||||
/// Expiration status of the experiment "private-named-parameters"
|
||||
static const bool private_named_parameters = false;
|
||||
|
||||
/// Expiration status of the experiment "record-use"
|
||||
static const bool record_use = false;
|
||||
|
||||
@@ -1029,6 +1052,10 @@ mixin _CurrentState {
|
||||
/// Current state for the flag "patterns"
|
||||
bool get patterns => isEnabled(ExperimentalFeatures.patterns);
|
||||
|
||||
/// Current state for the flag "private-named-parameters"
|
||||
bool get private_named_parameters =>
|
||||
isEnabled(ExperimentalFeatures.private_named_parameters);
|
||||
|
||||
/// Current state for the flag "record-use"
|
||||
bool get record_use => isEnabled(ExperimentalFeatures.record_use);
|
||||
|
||||
|
||||
@@ -19,5 +19,6 @@ List<String> experimentsForTests = [
|
||||
Feature.declaring_constructors.enableString,
|
||||
Feature.enhanced_parts.enableString,
|
||||
Feature.macros.enableString,
|
||||
Feature.private_named_parameters.enableString,
|
||||
Feature.variance.enableString,
|
||||
];
|
||||
|
||||
@@ -314,6 +314,15 @@ class ExperimentalFlag {
|
||||
experimentReleasedVersion: const Version(3, 0),
|
||||
);
|
||||
|
||||
static const ExperimentalFlag privateNamedParameters = const ExperimentalFlag(
|
||||
name: 'private-named-parameters',
|
||||
isEnabledByDefault: false,
|
||||
isExpired: false,
|
||||
enabledVersion: defaultLanguageVersion,
|
||||
experimentEnabledVersion: defaultLanguageVersion,
|
||||
experimentReleasedVersion: defaultLanguageVersion,
|
||||
);
|
||||
|
||||
static const ExperimentalFlag recordUse = const ExperimentalFlag(
|
||||
name: 'record-use',
|
||||
isEnabledByDefault: false,
|
||||
@@ -623,6 +632,10 @@ class GlobalFeatures {
|
||||
GlobalFeature get patterns =>
|
||||
_patterns ??= _computeGlobalFeature(ExperimentalFlag.patterns);
|
||||
|
||||
GlobalFeature? _privateNamedParameters;
|
||||
GlobalFeature get privateNamedParameters => _privateNamedParameters ??=
|
||||
_computeGlobalFeature(ExperimentalFlag.privateNamedParameters);
|
||||
|
||||
GlobalFeature? _recordUse;
|
||||
GlobalFeature get recordUse =>
|
||||
_recordUse ??= _computeGlobalFeature(ExperimentalFlag.recordUse);
|
||||
@@ -923,6 +936,14 @@ class LibraryFeatures {
|
||||
libraryVersion,
|
||||
);
|
||||
|
||||
LibraryFeature? _privateNamedParameters;
|
||||
LibraryFeature get privateNamedParameters =>
|
||||
_privateNamedParameters ??= globalFeatures._computeLibraryFeature(
|
||||
ExperimentalFlag.privateNamedParameters,
|
||||
canonicalUri,
|
||||
libraryVersion,
|
||||
);
|
||||
|
||||
LibraryFeature? _recordUse;
|
||||
LibraryFeature get recordUse =>
|
||||
_recordUse ??= globalFeatures._computeLibraryFeature(
|
||||
@@ -1096,6 +1117,8 @@ class LibraryFeatures {
|
||||
return nullAwareElements;
|
||||
case shared.ExperimentalFlag.patterns:
|
||||
return patterns;
|
||||
case shared.ExperimentalFlag.privateNamedParameters:
|
||||
return privateNamedParameters;
|
||||
case shared.ExperimentalFlag.recordUse:
|
||||
return recordUse;
|
||||
case shared.ExperimentalFlag.records:
|
||||
@@ -1188,6 +1211,8 @@ ExperimentalFlag? parseExperimentalFlag(String flag) {
|
||||
return ExperimentalFlag.nullAwareElements;
|
||||
case "patterns":
|
||||
return ExperimentalFlag.patterns;
|
||||
case "private-named-parameters":
|
||||
return ExperimentalFlag.privateNamedParameters;
|
||||
case "record-use":
|
||||
return ExperimentalFlag.recordUse;
|
||||
case "records":
|
||||
@@ -1274,6 +1299,8 @@ final Map<ExperimentalFlag, bool> defaultExperimentalFlags = {
|
||||
ExperimentalFlag.nullAwareElements:
|
||||
ExperimentalFlag.nullAwareElements.isEnabledByDefault,
|
||||
ExperimentalFlag.patterns: ExperimentalFlag.patterns.isEnabledByDefault,
|
||||
ExperimentalFlag.privateNamedParameters:
|
||||
ExperimentalFlag.privateNamedParameters.isEnabledByDefault,
|
||||
ExperimentalFlag.recordUse: ExperimentalFlag.recordUse.isEnabledByDefault,
|
||||
ExperimentalFlag.records: ExperimentalFlag.records.isEnabledByDefault,
|
||||
ExperimentalFlag.sealedClass: ExperimentalFlag.sealedClass.isEnabledByDefault,
|
||||
@@ -1341,6 +1368,8 @@ const Map<shared.ExperimentalFlag, ExperimentalFlag> sharedExperimentalFlags = {
|
||||
ExperimentalFlag.nonfunctionTypeAliases,
|
||||
shared.ExperimentalFlag.nullAwareElements: ExperimentalFlag.nullAwareElements,
|
||||
shared.ExperimentalFlag.patterns: ExperimentalFlag.patterns,
|
||||
shared.ExperimentalFlag.privateNamedParameters:
|
||||
ExperimentalFlag.privateNamedParameters,
|
||||
shared.ExperimentalFlag.recordUse: ExperimentalFlag.recordUse,
|
||||
shared.ExperimentalFlag.records: ExperimentalFlag.records,
|
||||
shared.ExperimentalFlag.sealedClass: ExperimentalFlag.sealedClass,
|
||||
|
||||
@@ -164,6 +164,18 @@ features:
|
||||
static-extensions:
|
||||
help: "Extensions with static capabilities."
|
||||
|
||||
private-named-parameters:
|
||||
help: "Allow named parameters with private names that refer to fields."
|
||||
# TODO(rnystrom): Enable this when the feature is implemented.
|
||||
# validation: |
|
||||
# class C {
|
||||
# String _message;
|
||||
# C({this._message});
|
||||
# }
|
||||
# main() {
|
||||
# print(C(message: 'feature enabled')._message);
|
||||
# }
|
||||
|
||||
declaring-constructors:
|
||||
help: "Less verbose constructors."
|
||||
|
||||
|
||||
Reference in New Issue
Block a user