Resynthesize fields.
R=brianwilkerson@google.com
Change-Id: I79110c2e2316eebe349604f24e8b6073e40f3458
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/100465
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/analyzer/lib/src/summary2/linked_element_factory.dart b/pkg/analyzer/lib/src/summary2/linked_element_factory.dart
index b8b69b6..e6dab46 100644
--- a/pkg/analyzer/lib/src/summary2/linked_element_factory.dart
+++ b/pkg/analyzer/lib/src/summary2/linked_element_factory.dart
@@ -139,6 +139,11 @@
return _enum(unit, reference);
}
+ if (parentName == '@field') {
+ var enclosing = elementOfReference(parent2);
+ return _field(enclosing, reference);
+ }
+
if (parentName == '@function') {
CompilationUnitElementImpl enclosing = elementOfReference(parent2);
return _function(enclosing, reference);
@@ -287,6 +292,13 @@
return reference.element;
}
+ FieldElementImpl _field(ClassElementImpl enclosing, Reference reference) {
+ enclosing.fields;
+ // Requesting fields sets elements for all fields.
+ assert(reference.element != null);
+ return reference.element;
+ }
+
Element _function(CompilationUnitElementImpl enclosing, Reference reference) {
enclosing.functions;
assert(reference.element != null);