Skip to content

Commit 7e067a6

Browse files
committed
Enable read-only access to initializing formals (issue 27895)
[email protected] Review URL: https://codereview.chromium.org/2532953004 .
1 parent 987ed06 commit 7e067a6

File tree

9 files changed

+9
-38
lines changed

9 files changed

+9
-38
lines changed

pkg/analyzer/lib/src/command_line/arguments.dart

-2
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,6 @@ ContextBuilderOptions createContextBuilderOptions(ArgResults args) {
4646
// Analysis options.
4747
//
4848
AnalysisOptionsImpl defaultOptions = new AnalysisOptionsImpl();
49-
defaultOptions.enableInitializingFormalAccess =
50-
args[enableInitializingFormalAccessFlag];
5149
defaultOptions.enableStrictCallChecks = args[enableStrictCallChecksFlag];
5250
defaultOptions.enableSuperMixins = args[enableSuperInMixinFlag];
5351
defaultOptions.implicitCasts = !args[noImplicitCastsFlag];

pkg/analyzer/lib/src/context/context.dart

-4
Original file line numberDiff line numberDiff line change
@@ -283,8 +283,6 @@ class AnalysisContextImpl implements InternalAnalysisContext {
283283
this._options.enableAssertInitializer !=
284284
options.enableAssertInitializer ||
285285
this._options.enableAssertMessage != options.enableAssertMessage ||
286-
this._options.enableInitializingFormalAccess !=
287-
options.enableInitializingFormalAccess ||
288286
this._options.enableLazyAssignmentOperators !=
289287
options.enableLazyAssignmentOperators ||
290288
((options is AnalysisOptionsImpl)
@@ -311,8 +309,6 @@ class AnalysisContextImpl implements InternalAnalysisContext {
311309
this._options.enableAssertInitializer = options.enableAssertInitializer;
312310
this._options.enableAssertMessage = options.enableAssertMessage;
313311
this._options.enableStrictCallChecks = options.enableStrictCallChecks;
314-
this._options.enableInitializingFormalAccess =
315-
options.enableInitializingFormalAccess;
316312
this._options.enableLazyAssignmentOperators =
317313
options.enableLazyAssignmentOperators;
318314
this._options.enableSuperMixins = options.enableSuperMixins;

pkg/analyzer/lib/src/generated/engine.dart

+8-4
Original file line numberDiff line numberDiff line change
@@ -1129,6 +1129,7 @@ abstract class AnalysisOptions {
11291129
* Return `true` if access to field formal parameters should be allowed in a
11301130
* constructor's initializer list.
11311131
*/
1132+
@deprecated
11321133
bool get enableInitializingFormalAccess;
11331134

11341135
/**
@@ -1329,9 +1330,6 @@ class AnalysisOptionsImpl implements AnalysisOptions {
13291330
@override
13301331
bool enableAssertMessage = false;
13311332

1332-
@override
1333-
bool enableInitializingFormalAccess = false;
1334-
13351333
@override
13361334
bool enableLazyAssignmentOperators = false;
13371335

@@ -1453,7 +1451,6 @@ class AnalysisOptionsImpl implements AnalysisOptions {
14531451
enableAssertInitializer = options.enableAssertInitializer;
14541452
enableAssertMessage = options.enableAssertMessage;
14551453
enableStrictCallChecks = options.enableStrictCallChecks;
1456-
enableInitializingFormalAccess = options.enableInitializingFormalAccess;
14571454
enableLazyAssignmentOperators = options.enableLazyAssignmentOperators;
14581455
enableSuperMixins = options.enableSuperMixins;
14591456
enableTiming = options.enableTiming;
@@ -1533,6 +1530,13 @@ class AnalysisOptionsImpl implements AnalysisOptions {
15331530
@deprecated
15341531
void set enableGenericMethods(bool enable) {}
15351532

1533+
@deprecated
1534+
@override
1535+
bool get enableInitializingFormalAccess => true;
1536+
1537+
@deprecated
1538+
void set enableInitializingFormalAccess(bool enable) {}
1539+
15361540
@override
15371541
List<ErrorProcessor> get errorProcessors =>
15381542
_errorProcessors ??= const <ErrorProcessor>[];

pkg/analyzer/lib/src/generated/resolver.dart

+1-9
Original file line numberDiff line numberDiff line change
@@ -7168,12 +7168,6 @@ abstract class ScopedVisitor extends UnifyingAstVisitor<Object> {
71687168
*/
71697169
LabelScope labelScope;
71707170

7171-
/**
7172-
* A flag indicating whether to enable support for allowing access to field
7173-
* formal parameters in a constructor's initializer list.
7174-
*/
7175-
bool enableInitializingFormalAccess = false;
7176-
71777171
/**
71787172
* The class containing the AST nodes being visited,
71797173
* or `null` if we are not in the scope of a class.
@@ -7205,8 +7199,6 @@ abstract class ScopedVisitor extends UnifyingAstVisitor<Object> {
72057199
} else {
72067200
this.nameScope = nameScope;
72077201
}
7208-
enableInitializingFormalAccess =
7209-
definingLibrary.context.analysisOptions.enableInitializingFormalAccess;
72107202
}
72117203

72127204
/**
@@ -7368,7 +7360,7 @@ abstract class ScopedVisitor extends UnifyingAstVisitor<Object> {
73687360
node.parameters?.accept(this);
73697361
Scope functionScope = nameScope;
73707362
try {
7371-
if (constructorElement != null && enableInitializingFormalAccess) {
7363+
if (constructorElement != null) {
73727364
nameScope =
73737365
new ConstructorInitializerScope(nameScope, constructorElement);
73747366
}

pkg/analyzer/lib/src/task/options.dart

-2
Original file line numberDiff line numberDiff line change
@@ -635,8 +635,6 @@ class _OptionsProcessor {
635635
if (boolValue != null) {
636636
if (feature == AnalyzerOptions.enableAssertInitializer) {
637637
options.enableAssertInitializer = boolValue;
638-
} else if (feature == AnalyzerOptions.enableInitializingFormalAccess) {
639-
options.enableInitializingFormalAccess = boolValue;
640638
} else if (feature == AnalyzerOptions.enableSuperMixins) {
641639
options.enableSuperMixins = boolValue;
642640
}

pkg/analyzer/test/generated/simple_resolver_test.dart

-3
Original file line numberDiff line numberDiff line change
@@ -656,9 +656,6 @@ class A {
656656
}
657657

658658
void test_fieldFormalParameter() {
659-
AnalysisOptionsImpl options = new AnalysisOptionsImpl();
660-
options.enableInitializingFormalAccess = true;
661-
resetWithOptions(options);
662659
Source source = addSource(r'''
663660
class A {
664661
int x;

pkg/analyzer/test/src/command_line/arguments_test.dart

-3
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ class ArgumentsTest {
3535
'-Dfoo=1',
3636
'-Dbar=2',
3737
'--enable-strict-call-checks',
38-
'--initializing-formal-access',
3938
'--no-implicit-casts',
4039
'--no-implicit-dynamic',
4140
'--options=$defaultAnalysisOptionsFilePath',
@@ -58,7 +57,6 @@ class ArgumentsTest {
5857
expect(options.defaultPackagesDirectoryPath, defaultPackagesDirectoryPath);
5958
AnalysisOptionsImpl defaultOptions = options.defaultOptions;
6059
expect(defaultOptions, isNotNull);
61-
expect(defaultOptions.enableInitializingFormalAccess, true);
6260
expect(defaultOptions.enableStrictCallChecks, true);
6361
expect(defaultOptions.strongMode, true);
6462
expect(defaultOptions.implicitCasts, false);
@@ -81,7 +79,6 @@ class ArgumentsTest {
8179
expect(options.defaultPackagesDirectoryPath, isNull);
8280
AnalysisOptionsImpl defaultOptions = options.defaultOptions;
8381
expect(defaultOptions, isNotNull);
84-
expect(defaultOptions.enableInitializingFormalAccess, false);
8582
expect(defaultOptions.enableStrictCallChecks, false);
8683
expect(defaultOptions.strongMode, false);
8784
expect(defaultOptions.implicitCasts, true);

pkg/analyzer_cli/lib/src/driver.dart

-6
Original file line numberDiff line numberDiff line change
@@ -280,10 +280,6 @@ class Driver implements CommandLineStarter {
280280
if (options.disableHints != _previousOptions.disableHints) {
281281
return false;
282282
}
283-
if (options.enableInitializingFormalAccess !=
284-
_previousOptions.enableInitializingFormalAccess) {
285-
return false;
286-
}
287283
if (options.enableStrictCallChecks !=
288284
_previousOptions.enableStrictCallChecks) {
289285
return false;
@@ -671,8 +667,6 @@ class Driver implements CommandLineStarter {
671667
contextOptions.trackCacheDependencies = false;
672668
contextOptions.disableCacheFlushing = options.disableCacheFlushing;
673669
contextOptions.hint = !options.disableHints;
674-
contextOptions.enableInitializingFormalAccess =
675-
options.enableInitializingFormalAccess;
676670
contextOptions.enableStrictCallChecks = options.enableStrictCallChecks;
677671
contextOptions.enableSuperMixins = options.enableSuperMixins;
678672
contextOptions.generateImplicitErrors = options.showPackageWarnings;

pkg/analyzer_cli/lib/src/options.dart

-5
Original file line numberDiff line numberDiff line change
@@ -85,10 +85,6 @@ class CommandLineOptions {
8585
/// Whether to display version information
8686
final bool displayVersion;
8787

88-
/// A flag indicating whether access to field formal parameters should be
89-
/// allowed in a constructor's initializer list.
90-
final bool enableInitializingFormalAccess;
91-
9288
/// Whether to enable null-aware operators (DEP 9).
9389
final bool enableNullAwareOperators;
9490

@@ -179,7 +175,6 @@ class CommandLineOptions {
179175
disableCacheFlushing = args['disable-cache-flushing'],
180176
disableHints = args['no-hints'],
181177
displayVersion = args['version'],
182-
enableInitializingFormalAccess = args['initializing-formal-access'],
183178
enableNullAwareOperators = args['enable-null-aware-operators'],
184179
enableStrictCallChecks = args['enable-strict-call-checks'],
185180
enableSuperMixins = args['supermixin'],

0 commit comments

Comments
 (0)