Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(780)

Unified Diff: lib/analyzer/ast_from_analyzer.dart

Issue 2431623002: Revert "Add null initializers to fields that have no initializer." (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/analyzer/ast_from_analyzer.dart
diff --git a/lib/analyzer/ast_from_analyzer.dart b/lib/analyzer/ast_from_analyzer.dart
index 24620fc510367252d8ff300f4736a7cb512d1098..17531457e2c28788c852a100700e186b3e577a26 100644
--- a/lib/analyzer/ast_from_analyzer.dart
+++ b/lib/analyzer/ast_from_analyzer.dart
@@ -2340,8 +2340,6 @@ class ClassBodyBuilder extends GeneralizingAstVisitor<Null> {
buildDefaultConstructor(memberNode, defaultConstructor);
}
}
-
- addDefaultFieldInitializers(classNode);
}
void buildDefaultConstructor(
@@ -2370,38 +2368,6 @@ class ClassBodyBuilder extends GeneralizingAstVisitor<Null> {
}
}
- /// Adds initializers to fields that are have no initializer and are not
- /// initialized by all constructors in the class.
- void addDefaultFieldInitializers(ast.Class node) {
- List<ast.Field> uninitializedFields = new List<ast.Field>();
- for (var field in node.fields) {
- if (field.initializer != null || field.isExternal) continue;
- if (field.isStatic) {
- field.initializer = new ast.NullLiteral()..parent = field;
- } else {
- uninitializedFields.add(field);
- }
- }
- if (uninitializedFields.isEmpty) return;
- constructorLoop:
- for (var constructor in node.constructors) {
- var remainingFields = uninitializedFields.toSet();
- for (var initializer in constructor.initializers) {
- if (initializer is ast.FieldInitializer) {
- remainingFields.remove(initializer.field);
- } else if (initializer is ast.RedirectingInitializer) {
- // The target constructor will be checked in another iteration.
- continue constructorLoop;
- }
- }
- for (var field in remainingFields) {
- if (field.initializer == null) {
- field.initializer = new ast.NullLiteral()..parent = field;
- }
- }
- }
- }
-
/// True for the `values` field of an `enum` class.
static bool _isValuesField(FieldElement field) => field.name == 'values';
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698