Skip to content

Commit

Permalink
Enable read-only access to initializing formals (issue 27895)
Browse files Browse the repository at this point in the history
R=scheglov@google.com

Review URL: https://codereview.chromium.org/2532953004 .
  • Loading branch information
bwilkerson committed Nov 29, 2016
1 parent 987ed06 commit 7e067a6
Show file tree
Hide file tree
Showing 9 changed files with 9 additions and 38 deletions.
2 changes: 0 additions & 2 deletions pkg/analyzer/lib/src/command_line/arguments.dart
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,6 @@ ContextBuilderOptions createContextBuilderOptions(ArgResults args) {
// Analysis options.
//
AnalysisOptionsImpl defaultOptions = new AnalysisOptionsImpl();
defaultOptions.enableInitializingFormalAccess =
args[enableInitializingFormalAccessFlag];
defaultOptions.enableStrictCallChecks = args[enableStrictCallChecksFlag];
defaultOptions.enableSuperMixins = args[enableSuperInMixinFlag];
defaultOptions.implicitCasts = !args[noImplicitCastsFlag];
Expand Down
4 changes: 0 additions & 4 deletions pkg/analyzer/lib/src/context/context.dart
Original file line number Diff line number Diff line change
Expand Up @@ -283,8 +283,6 @@ class AnalysisContextImpl implements InternalAnalysisContext {
this._options.enableAssertInitializer !=
options.enableAssertInitializer ||
this._options.enableAssertMessage != options.enableAssertMessage ||
this._options.enableInitializingFormalAccess !=
options.enableInitializingFormalAccess ||
this._options.enableLazyAssignmentOperators !=
options.enableLazyAssignmentOperators ||
((options is AnalysisOptionsImpl)
Expand All @@ -311,8 +309,6 @@ class AnalysisContextImpl implements InternalAnalysisContext {
this._options.enableAssertInitializer = options.enableAssertInitializer;
this._options.enableAssertMessage = options.enableAssertMessage;
this._options.enableStrictCallChecks = options.enableStrictCallChecks;
this._options.enableInitializingFormalAccess =
options.enableInitializingFormalAccess;
this._options.enableLazyAssignmentOperators =
options.enableLazyAssignmentOperators;
this._options.enableSuperMixins = options.enableSuperMixins;
Expand Down
12 changes: 8 additions & 4 deletions pkg/analyzer/lib/src/generated/engine.dart
Original file line number Diff line number Diff line change
Expand Up @@ -1129,6 +1129,7 @@ abstract class AnalysisOptions {
* Return `true` if access to field formal parameters should be allowed in a
* constructor's initializer list.
*/
@deprecated
bool get enableInitializingFormalAccess;

/**
Expand Down Expand Up @@ -1329,9 +1330,6 @@ class AnalysisOptionsImpl implements AnalysisOptions {
@override
bool enableAssertMessage = false;

@override
bool enableInitializingFormalAccess = false;

@override
bool enableLazyAssignmentOperators = false;

Expand Down Expand Up @@ -1453,7 +1451,6 @@ class AnalysisOptionsImpl implements AnalysisOptions {
enableAssertInitializer = options.enableAssertInitializer;
enableAssertMessage = options.enableAssertMessage;
enableStrictCallChecks = options.enableStrictCallChecks;
enableInitializingFormalAccess = options.enableInitializingFormalAccess;
enableLazyAssignmentOperators = options.enableLazyAssignmentOperators;
enableSuperMixins = options.enableSuperMixins;
enableTiming = options.enableTiming;
Expand Down Expand Up @@ -1533,6 +1530,13 @@ class AnalysisOptionsImpl implements AnalysisOptions {
@deprecated
void set enableGenericMethods(bool enable) {}

@deprecated
@override
bool get enableInitializingFormalAccess => true;

@deprecated
void set enableInitializingFormalAccess(bool enable) {}

@override
List<ErrorProcessor> get errorProcessors =>
_errorProcessors ??= const <ErrorProcessor>[];
Expand Down
10 changes: 1 addition & 9 deletions pkg/analyzer/lib/src/generated/resolver.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7168,12 +7168,6 @@ abstract class ScopedVisitor extends UnifyingAstVisitor<Object> {
*/
LabelScope labelScope;

/**
* A flag indicating whether to enable support for allowing access to field
* formal parameters in a constructor's initializer list.
*/
bool enableInitializingFormalAccess = false;

/**
* The class containing the AST nodes being visited,
* or `null` if we are not in the scope of a class.
Expand Down Expand Up @@ -7205,8 +7199,6 @@ abstract class ScopedVisitor extends UnifyingAstVisitor<Object> {
} else {
this.nameScope = nameScope;
}
enableInitializingFormalAccess =
definingLibrary.context.analysisOptions.enableInitializingFormalAccess;
}

/**
Expand Down Expand Up @@ -7368,7 +7360,7 @@ abstract class ScopedVisitor extends UnifyingAstVisitor<Object> {
node.parameters?.accept(this);
Scope functionScope = nameScope;
try {
if (constructorElement != null && enableInitializingFormalAccess) {
if (constructorElement != null) {
nameScope =
new ConstructorInitializerScope(nameScope, constructorElement);
}
Expand Down
2 changes: 0 additions & 2 deletions pkg/analyzer/lib/src/task/options.dart
Original file line number Diff line number Diff line change
Expand Up @@ -635,8 +635,6 @@ class _OptionsProcessor {
if (boolValue != null) {
if (feature == AnalyzerOptions.enableAssertInitializer) {
options.enableAssertInitializer = boolValue;
} else if (feature == AnalyzerOptions.enableInitializingFormalAccess) {
options.enableInitializingFormalAccess = boolValue;
} else if (feature == AnalyzerOptions.enableSuperMixins) {
options.enableSuperMixins = boolValue;
}
Expand Down
3 changes: 0 additions & 3 deletions pkg/analyzer/test/generated/simple_resolver_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -656,9 +656,6 @@ class A {
}

void test_fieldFormalParameter() {
AnalysisOptionsImpl options = new AnalysisOptionsImpl();
options.enableInitializingFormalAccess = true;
resetWithOptions(options);
Source source = addSource(r'''
class A {
int x;
Expand Down
3 changes: 0 additions & 3 deletions pkg/analyzer/test/src/command_line/arguments_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ class ArgumentsTest {
'-Dfoo=1',
'-Dbar=2',
'--enable-strict-call-checks',
'--initializing-formal-access',
'--no-implicit-casts',
'--no-implicit-dynamic',
'--options=$defaultAnalysisOptionsFilePath',
Expand All @@ -58,7 +57,6 @@ class ArgumentsTest {
expect(options.defaultPackagesDirectoryPath, defaultPackagesDirectoryPath);
AnalysisOptionsImpl defaultOptions = options.defaultOptions;
expect(defaultOptions, isNotNull);
expect(defaultOptions.enableInitializingFormalAccess, true);
expect(defaultOptions.enableStrictCallChecks, true);
expect(defaultOptions.strongMode, true);
expect(defaultOptions.implicitCasts, false);
Expand All @@ -81,7 +79,6 @@ class ArgumentsTest {
expect(options.defaultPackagesDirectoryPath, isNull);
AnalysisOptionsImpl defaultOptions = options.defaultOptions;
expect(defaultOptions, isNotNull);
expect(defaultOptions.enableInitializingFormalAccess, false);
expect(defaultOptions.enableStrictCallChecks, false);
expect(defaultOptions.strongMode, false);
expect(defaultOptions.implicitCasts, true);
Expand Down
6 changes: 0 additions & 6 deletions pkg/analyzer_cli/lib/src/driver.dart
Original file line number Diff line number Diff line change
Expand Up @@ -280,10 +280,6 @@ class Driver implements CommandLineStarter {
if (options.disableHints != _previousOptions.disableHints) {
return false;
}
if (options.enableInitializingFormalAccess !=
_previousOptions.enableInitializingFormalAccess) {
return false;
}
if (options.enableStrictCallChecks !=
_previousOptions.enableStrictCallChecks) {
return false;
Expand Down Expand Up @@ -671,8 +667,6 @@ class Driver implements CommandLineStarter {
contextOptions.trackCacheDependencies = false;
contextOptions.disableCacheFlushing = options.disableCacheFlushing;
contextOptions.hint = !options.disableHints;
contextOptions.enableInitializingFormalAccess =
options.enableInitializingFormalAccess;
contextOptions.enableStrictCallChecks = options.enableStrictCallChecks;
contextOptions.enableSuperMixins = options.enableSuperMixins;
contextOptions.generateImplicitErrors = options.showPackageWarnings;
Expand Down
5 changes: 0 additions & 5 deletions pkg/analyzer_cli/lib/src/options.dart
Original file line number Diff line number Diff line change
Expand Up @@ -85,10 +85,6 @@ class CommandLineOptions {
/// Whether to display version information
final bool displayVersion;

/// A flag indicating whether access to field formal parameters should be
/// allowed in a constructor's initializer list.
final bool enableInitializingFormalAccess;

/// Whether to enable null-aware operators (DEP 9).
final bool enableNullAwareOperators;

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

0 comments on commit 7e067a6

Please sign in to comment.