Version 2.16.0-134.0.dev

Merge commit '2edc9f4ea870b9a960abbe1a409eefa943fb65e9' into 'dev'
diff --git a/pkg/analyzer/lib/src/summary2/element_builder.dart b/pkg/analyzer/lib/src/summary2/element_builder.dart
index 4b84ce8..f0d5965 100644
--- a/pkg/analyzer/lib/src/summary2/element_builder.dart
+++ b/pkg/analyzer/lib/src/summary2/element_builder.dart
@@ -957,15 +957,14 @@
     element.fields = holder.properties.whereType<FieldElement>().toList();
     element.methods = holder.methods;
 
-    var constructors = holder.constructors;
-    if (constructors.isEmpty) {
-      var containerRef = element.reference!.getChild('@constructor');
-      constructors = [
-        ConstructorElementImpl('', -1)
-          ..isSynthetic = true
-          ..reference = containerRef.getChild(''),
-      ];
+    if (holder.constructors.isEmpty) {
+      holder.addConstructor(
+        '',
+        ConstructorElementImpl('', -1)..isSynthetic = true,
+      );
     }
+
+    var constructors = holder.constructors;
     element.constructors = constructors;
 
     // We have all fields and constructors.
diff --git a/pkg/analyzer/test/src/summary/element_text.dart b/pkg/analyzer/test/src/summary/element_text.dart
index 6040d05..4fb0b3a 100644
--- a/pkg/analyzer/test/src/summary/element_text.dart
+++ b/pkg/analyzer/test/src/summary/element_text.dart
@@ -355,6 +355,19 @@
   void _writeConstructorElement(ConstructorElement e) {
     e as ConstructorElementImpl;
 
+    // Check that the reference exists, and filled with the element.
+    var reference = e.reference;
+    if (reference == null) {
+      fail('Every constructor must have a reference.');
+    } else {
+      var classReference = reference.parent!.parent!;
+      // We need this `if` for duplicate declarations.
+      // The reference might be filled by another declaration.
+      if (identical(classReference.element, e.enclosingElement)) {
+        expect(reference.element, same(e));
+      }
+    }
+
     _writeIndentedLine(() {
       _writeIf(e.isSynthetic, 'synthetic ');
       _writeIf(e.isExternal, 'external ');
diff --git a/tools/VERSION b/tools/VERSION
index 5cbc6ee..e3f97717 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 16
 PATCH 0
-PRERELEASE 133
+PRERELEASE 134
 PRERELEASE_PATCH 0
\ No newline at end of file