Build local elements in constructor initializers.
R=brianwilkerson@google.com
Change-Id: Idb4645bc46a6f4804167d45e6ad809be33be8d53
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/101560
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/analyzer/lib/src/summary2/constructor_initializer_resolver.dart b/pkg/analyzer/lib/src/summary2/constructor_initializer_resolver.dart
index dd7dd8e..4a6d796 100644
--- a/pkg/analyzer/lib/src/summary2/constructor_initializer_resolver.dart
+++ b/pkg/analyzer/lib/src/summary2/constructor_initializer_resolver.dart
@@ -4,8 +4,10 @@
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/src/dart/ast/ast.dart';
+import 'package:analyzer/src/dart/element/builder.dart';
import 'package:analyzer/src/dart/element/element.dart';
import 'package:analyzer/src/dart/resolver/scope.dart';
+import 'package:analyzer/src/generated/resolver.dart';
import 'package:analyzer/src/summary2/ast_resolver.dart';
import 'package:analyzer/src/summary2/link.dart';
import 'package:analyzer/src/summary2/linking_node_scope.dart';
@@ -14,6 +16,7 @@
final Linker _linker;
final LibraryElementImpl _libraryElement;
+ CompilationUnitElement _unitElement;
ClassElement _classElement;
ConstructorElement _constructorElement;
ConstructorDeclarationImpl _constructorNode;
@@ -23,6 +26,7 @@
void resolve() {
for (var unit in _libraryElement.units) {
+ _unitElement = unit;
for (var classElement in unit.types) {
_classElement = classElement;
for (var constructorElement in classElement.constructors) {
@@ -62,6 +66,10 @@
return;
}
+ var holder = ElementHolder();
+ var elementBuilder = LocalElementBuilder(holder, _unitElement);
+ initializers.accept(elementBuilder);
+
for (var initializer in initializers) {
_astResolver.resolve(
initializer,