Issue 48124. Set enclosingElement for synthetic FieldElementImpl in top-merge.

Bug: https://github.com/dart-lang/sdk/issues/48124
Change-Id: I0ad7cfe46edd4333fe292c7ddbe1b0044335ec0a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/228723
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/analyzer/lib/src/dart/element/inheritance_manager3.dart b/pkg/analyzer/lib/src/dart/element/inheritance_manager3.dart
index 168cc9a..6195260 100644
--- a/pkg/analyzer/lib/src/dart/element/inheritance_manager3.dart
+++ b/pkg/analyzer/lib/src/dart/element/inheritance_manager3.dart
@@ -863,6 +863,7 @@
       result.parameters = resultType.parameters;
 
       var field = FieldElementImpl(variableName, -1);
+      field.enclosingElement = targetClass;
       if (firstAccessor.isGetter) {
         field.getter = result;
         field.type = result.returnType;
diff --git a/pkg/analyzer/test/src/dart/element/inheritance_manager3_test.dart b/pkg/analyzer/test/src/dart/element/inheritance_manager3_test.dart
index ba5aa89..73da833 100644
--- a/pkg/analyzer/test/src/dart/element/inheritance_manager3_test.dart
+++ b/pkg/analyzer/test/src/dart/element/inheritance_manager3_test.dart
@@ -1425,6 +1425,7 @@
 
       if (element is PropertyAccessorElement) {
         var variable = element.variable;
+        expect(variable.enclosingElement, same(element.enclosingElement));
         expect(variable.name, element.displayName);
         if (element.isGetter) {
           expect(variable.type, element.returnType);