Version 2.12.0-141.0.dev

Merge commit '64226729c13d430f1123c8837ddf0030a5a0d7f6' into 'dev'
diff --git a/CHANGELOG.md b/CHANGELOG.md
index bb2772f..d045819 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -14,6 +14,16 @@
 
 ### Core libraries
 
+#### `dart:collection`
+
+* Added `UnmodifiableSetView` class, which allows users to guarantee that
+  methods that could change underlying `Set` instance can not be invoked.
+
+#### `dart:core`
+
+* Added `unmodifiable` constructor to class `Set`, which allows users to create
+  unmodifiable `Set` instances.
+
 #### `dart:io`
 
 * `HttpRequest` will now correctly follow HTTP 308 redirects
diff --git a/pkg/dev_compiler/tool/dartdevc_nnbd_sdk_error_golden.txt b/pkg/dev_compiler/tool/dartdevc_nnbd_sdk_error_golden.txt
index 0336282..b550ffc 100644
--- a/pkg/dev_compiler/tool/dartdevc_nnbd_sdk_error_golden.txt
+++ b/pkg/dev_compiler/tool/dartdevc_nnbd_sdk_error_golden.txt
@@ -1,11 +1,11 @@
 ERROR|COMPILE_TIME_ERROR|CONST_CONSTRUCTOR_THROWS_EXCEPTION|lib/core/core.dart|3679|5|94|Const constructors can't throw exceptions.
-ERROR|COMPILE_TIME_ERROR|CONST_CONSTRUCTOR_THROWS_EXCEPTION|lib/core/core.dart|7878|5|97|Const constructors can't throw exceptions.
+ERROR|COMPILE_TIME_ERROR|CONST_CONSTRUCTOR_THROWS_EXCEPTION|lib/core/core.dart|7887|5|97|Const constructors can't throw exceptions.
 ERROR|COMPILE_TIME_ERROR|CONST_CONSTRUCTOR_THROWS_EXCEPTION|lib/core/core.dart|893|5|95|Const constructors can't throw exceptions.
 ERROR|COMPILE_TIME_ERROR|CONST_CONSTRUCTOR_THROWS_EXCEPTION|lib/core/core.dart|926|5|94|Const constructors can't throw exceptions.
 ERROR|COMPILE_TIME_ERROR|INVALID_ASSIGNMENT|lib/_internal/js_dev_runtime/private/interceptors.dart|1358|18|27|A value of type 'double' can't be assigned to a variable of type 'int'.
 ERROR|COMPILE_TIME_ERROR|RETURN_OF_INVALID_TYPE|lib/_internal/js_dev_runtime/private/interceptors.dart|1225|14|38|A value of type 'double' can't be returned from method '%' because it has a return type of 'JSNumber'.
 ERROR|COMPILE_TIME_ERROR|RETURN_OF_INVALID_TYPE|lib/_internal/js_dev_runtime/private/interceptors.dart|1227|14|38|A value of type 'double' can't be returned from method '%' because it has a return type of 'JSNumber'.
 ERROR|SYNTACTIC_ERROR|CONST_FACTORY|lib/core/core.dart|3677|3|5|Only redirecting factory constructors can be declared to be 'const'.
-ERROR|SYNTACTIC_ERROR|CONST_FACTORY|lib/core/core.dart|7876|3|5|Only redirecting factory constructors can be declared to be 'const'.
+ERROR|SYNTACTIC_ERROR|CONST_FACTORY|lib/core/core.dart|7885|3|5|Only redirecting factory constructors can be declared to be 'const'.
 ERROR|SYNTACTIC_ERROR|CONST_FACTORY|lib/core/core.dart|891|3|5|Only redirecting factory constructors can be declared to be 'const'.
 ERROR|SYNTACTIC_ERROR|CONST_FACTORY|lib/core/core.dart|924|3|5|Only redirecting factory constructors can be declared to be 'const'.
diff --git a/pkg/front_end/lib/src/fasta/builder/member_builder.dart b/pkg/front_end/lib/src/fasta/builder/member_builder.dart
index 58d5882..2d3168d 100644
--- a/pkg/front_end/lib/src/fasta/builder/member_builder.dart
+++ b/pkg/front_end/lib/src/fasta/builder/member_builder.dart
@@ -98,10 +98,10 @@
 
   MemberDataForTesting dataForTesting;
 
-  MemberBuilderImpl(this.parent, int charOffset)
+  MemberBuilderImpl(this.parent, int charOffset, [Uri fileUri])
       : dataForTesting =
             retainDataForTesting ? new MemberDataForTesting() : null,
-        super(parent, charOffset);
+        super(parent, charOffset, fileUri);
 
   @override
   bool get isDeclarationInstanceMember => isDeclarationMember && !isStatic;
diff --git a/pkg/front_end/lib/src/fasta/dill/dill_member_builder.dart b/pkg/front_end/lib/src/fasta/dill/dill_member_builder.dart
index 331b581..272a08b 100644
--- a/pkg/front_end/lib/src/fasta/dill/dill_member_builder.dart
+++ b/pkg/front_end/lib/src/fasta/dill/dill_member_builder.dart
@@ -27,7 +27,7 @@
 
   DillMemberBuilder(Member member, Builder parent)
       : modifiers = computeModifiers(member),
-        super(parent, member.fileOffset);
+        super(parent, member.fileOffset, member.fileUri);
 
   Member get member;
 
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
index 5f55924..9d3f663 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
@@ -130,10 +130,6 @@
 
   Component component;
 
-  /// Temporary field meant for testing only. Follow-up CLs should get rid of
-  /// this and integrate coverage properly.
-  constants.ConstantCoverage constantCoverageForTesting;
-
   // 'dynamic' is always nullable.
   // TODO(johnniwinther): Why isn't this using a FixedTypeBuilder?
   final TypeBuilder dynamicType = new NamedTypeBuilder(
@@ -1251,7 +1247,6 @@
             isExperimentEnabledGlobally(ExperimentalFlag.tripleShift),
         errorOnUnevaluatedConstant: errorOnUnevaluatedConstant);
     ticker.logMs("Evaluated constants");
-    constantCoverageForTesting = coverage;
 
     coverage.constructorCoverage.forEach((Uri fileUri, Set<Reference> value) {
       Source source = uriToSource[fileUri];
diff --git a/pkg/front_end/test/fasta/testing/suite.dart b/pkg/front_end/test/fasta/testing/suite.dart
index 44c9145..7e4bc88 100644
--- a/pkg/front_end/test/fasta/testing/suite.dart
+++ b/pkg/front_end/test/fasta/testing/suite.dart
@@ -1113,16 +1113,16 @@
             await instrumentation.fixSource(description.uri, false);
           } else {
             return new Result<ComponentResult>(
-                new ComponentResult(description, p, userLibraries, options,
-                    sourceTarget, sourceTarget.constantCoverageForTesting),
+                new ComponentResult(
+                    description, p, userLibraries, options, sourceTarget),
                 context.expectationSet["InstrumentationMismatch"],
                 instrumentation.problemsAsString,
                 autoFixCommand: '${UPDATE_COMMENTS}=true');
           }
         }
       }
-      return pass(new ComponentResult(description, p, userLibraries, options,
-          sourceTarget, sourceTarget.constantCoverageForTesting));
+      return pass(new ComponentResult(
+          description, p, userLibraries, options, sourceTarget));
     });
   }
 
diff --git a/pkg/front_end/test/utils/kernel_chain.dart b/pkg/front_end/test/utils/kernel_chain.dart
index f5f4ba8..397879a 100644
--- a/pkg/front_end/test/utils/kernel_chain.dart
+++ b/pkg/front_end/test/utils/kernel_chain.dart
@@ -23,8 +23,6 @@
 import 'package:front_end/src/fasta/compiler_context.dart' show CompilerContext;
 
 import 'package:front_end/src/fasta/fasta_codes.dart' show templateUnspecified;
-import 'package:front_end/src/fasta/kernel/constant_evaluator.dart'
-    show ConstantCoverage;
 
 import 'package:front_end/src/fasta/kernel/kernel_target.dart'
     show KernelTarget;
@@ -34,7 +32,7 @@
 import 'package:front_end/src/fasta/messages.dart'
     show DiagnosticMessageFromJson, LocatedMessage;
 
-import 'package:kernel/ast.dart' show Component, Library;
+import 'package:kernel/ast.dart' show Component, Library, Reference, Source;
 
 import 'package:kernel/binary/ast_from_binary.dart' show BinaryBuilder;
 
@@ -295,24 +293,26 @@
         buffer.writeln(extraConstantString);
       }
     }
-    // TODO(jensj): Don't comment this out. Will be done in a follow-up-CL.
-    // if (result.constantCoverage != null) {
-    //   ConstantCoverage constantCoverage = result.constantCoverage;
-    //   if (constantCoverage.constructorCoverage.isNotEmpty) {
-    //     buffer.writeln("");
-    //     buffer.writeln("");
-    //     buffer.writeln("Constructor coverage from constants:");
-    //     for (MapEntry<Uri, Set<Reference>> entry
-    //         in constantCoverage.constructorCoverage.entries) {
-    //       buffer.writeln("${entry.key}:");
-    //       for (Reference reference in entry.value) {
-    //         buffer.writeln(
-    //             "- ${reference.node} (from ${reference.node.location})");
-    //       }
-    //       buffer.writeln("");
-    //     }
-    //   }
-    // }
+    bool printedConstantCoverageHeader = false;
+    for (Source source in result.component.uriToSource.values) {
+      if (!result.isUserLibraryImportUri(source.importUri)) continue;
+
+      if (source.constantCoverageConstructors != null &&
+          source.constantCoverageConstructors.isNotEmpty) {
+        if (!printedConstantCoverageHeader) {
+          buffer.writeln("");
+          buffer.writeln("");
+          buffer.writeln("Constructor coverage from constants:");
+          printedConstantCoverageHeader = true;
+        }
+        buffer.writeln("${source.fileUri}:");
+        for (Reference reference in source.constantCoverageConstructors) {
+          buffer
+              .writeln("- ${reference.node} (from ${reference.node.location})");
+        }
+        buffer.writeln("");
+      }
+    }
 
     String actual = "$buffer";
     String binariesPath =
@@ -413,14 +413,8 @@
     Uri uri = tmp.uri.resolve("generated.dill");
     File generated = new File.fromUri(uri);
     IOSink sink = generated.openWrite();
-    result = new ComponentResult(
-        result.description,
-        result.component,
-        result.userLibraries,
-        result.options,
-        result.sourceTarget,
-        result.constantCoverage,
-        uri);
+    result = new ComponentResult(result.description, result.component,
+        result.userLibraries, result.options, result.sourceTarget, uri);
     try {
       new BinaryPrinter(sink).writeComponentFile(component);
     } catch (e, s) {
@@ -519,13 +513,16 @@
   final ProcessedOptions options;
   final KernelTarget sourceTarget;
   final List<String> extraConstantStrings = [];
-  final ConstantCoverage constantCoverage;
 
   ComponentResult(this.description, this.component, this.userLibraries,
-      this.options, this.sourceTarget, this.constantCoverage,
+      this.options, this.sourceTarget,
       [this.outputUri]);
 
   bool isUserLibrary(Library library) {
-    return userLibraries.contains(library.importUri);
+    return isUserLibraryImportUri(library.importUri);
+  }
+
+  bool isUserLibraryImportUri(Uri importUri) {
+    return userLibraries.contains(importUri);
   }
 }
diff --git a/pkg/front_end/testcases/extensions/annotations.dart.strong.expect b/pkg/front_end/testcases/extensions/annotations.dart.strong.expect
index 441d5bd..0ff4213 100644
--- a/pkg/front_end/testcases/extensions/annotations.dart.strong.expect
+++ b/pkg/front_end/testcases/extensions/annotations.dart.strong.expect
@@ -41,3 +41,8 @@
   #C2 = null
   #C3 = core::pragma {name:#C1, options:#C2}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///annotations.dart:
+- pragma._ (from org-dartlang-sdk:///sdk/lib/core/annotations.dart:193:9)
diff --git a/pkg/front_end/testcases/extensions/annotations.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/annotations.dart.strong.transformed.expect
index 441d5bd..0ff4213 100644
--- a/pkg/front_end/testcases/extensions/annotations.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/annotations.dart.strong.transformed.expect
@@ -41,3 +41,8 @@
   #C2 = null
   #C3 = core::pragma {name:#C1, options:#C2}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///annotations.dart:
+- pragma._ (from org-dartlang-sdk:///sdk/lib/core/annotations.dart:193:9)
diff --git a/pkg/front_end/testcases/general/DeltaBlue.dart.strong.expect b/pkg/front_end/testcases/general/DeltaBlue.dart.strong.expect
index d1cc44e..e101f55 100644
--- a/pkg/front_end/testcases/general/DeltaBlue.dart.strong.expect
+++ b/pkg/front_end/testcases/general/DeltaBlue.dart.strong.expect
@@ -533,3 +533,9 @@
   #C21 = "required"
   #C22 = self::Strength {value:#C20, name:#C21}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///DeltaBlue.dart:
+- Strength. (from org-dartlang-testcase:///DeltaBlue.dart:59:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/general/DeltaBlue.dart.strong.transformed.expect b/pkg/front_end/testcases/general/DeltaBlue.dart.strong.transformed.expect
index d1cc44e..e101f55 100644
--- a/pkg/front_end/testcases/general/DeltaBlue.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/DeltaBlue.dart.strong.transformed.expect
@@ -533,3 +533,9 @@
   #C21 = "required"
   #C22 = self::Strength {value:#C20, name:#C21}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///DeltaBlue.dart:
+- Strength. (from org-dartlang-testcase:///DeltaBlue.dart:59:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/general/annotation_on_enum_values.dart.strong.expect b/pkg/front_end/testcases/general/annotation_on_enum_values.dart.strong.expect
index 742c6ea..0ca7e54 100644
--- a/pkg/front_end/testcases/general/annotation_on_enum_values.dart.strong.expect
+++ b/pkg/front_end/testcases/general/annotation_on_enum_values.dart.strong.expect
@@ -59,3 +59,10 @@
   #C11 = 42
   #C12 = self::Fisk<core::int*> {x:#C11}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///annotation_on_enum_values.dart:
+- Foo. (from org-dartlang-testcase:///annotation_on_enum_values.dart:15:6)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Fisk.fisk (from org-dartlang-testcase:///annotation_on_enum_values.dart:12:9)
diff --git a/pkg/front_end/testcases/general/annotation_on_enum_values.dart.strong.transformed.expect b/pkg/front_end/testcases/general/annotation_on_enum_values.dart.strong.transformed.expect
index 742c6ea..0ca7e54 100644
--- a/pkg/front_end/testcases/general/annotation_on_enum_values.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/annotation_on_enum_values.dart.strong.transformed.expect
@@ -59,3 +59,10 @@
   #C11 = 42
   #C12 = self::Fisk<core::int*> {x:#C11}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///annotation_on_enum_values.dart:
+- Foo. (from org-dartlang-testcase:///annotation_on_enum_values.dart:15:6)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Fisk.fisk (from org-dartlang-testcase:///annotation_on_enum_values.dart:12:9)
diff --git a/pkg/front_end/testcases/general/annotation_top.dart.strong.expect b/pkg/front_end/testcases/general/annotation_top.dart.strong.expect
index e0a2535..30c7443 100644
--- a/pkg/front_end/testcases/general/annotation_top.dart.strong.expect
+++ b/pkg/front_end/testcases/general/annotation_top.dart.strong.expect
@@ -57,3 +57,9 @@
   #C1 = core::Object {}
   #C2 = self::A {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///annotation_top.dart:
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- A. (from org-dartlang-testcase:///annotation_top.dart:12:9)
diff --git a/pkg/front_end/testcases/general/annotation_top.dart.strong.transformed.expect b/pkg/front_end/testcases/general/annotation_top.dart.strong.transformed.expect
index e0a2535..30c7443 100644
--- a/pkg/front_end/testcases/general/annotation_top.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/annotation_top.dart.strong.transformed.expect
@@ -57,3 +57,9 @@
   #C1 = core::Object {}
   #C2 = self::A {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///annotation_top.dart:
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- A. (from org-dartlang-testcase:///annotation_top.dart:12:9)
diff --git a/pkg/front_end/testcases/general/annotation_variable_declaration.dart.strong.expect b/pkg/front_end/testcases/general/annotation_variable_declaration.dart.strong.expect
index 4c86065..3b25c96 100644
--- a/pkg/front_end/testcases/general/annotation_variable_declaration.dart.strong.expect
+++ b/pkg/front_end/testcases/general/annotation_variable_declaration.dart.strong.expect
@@ -60,3 +60,10 @@
   #C2 = self::Bar {}
   #C3 = null
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///annotation_variable_declaration.dart:
+- Bar. (from org-dartlang-testcase:///annotation_variable_declaration.dart:8:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Bar.named (from org-dartlang-testcase:///annotation_variable_declaration.dart:9:9)
diff --git a/pkg/front_end/testcases/general/annotation_variable_declaration.dart.strong.transformed.expect b/pkg/front_end/testcases/general/annotation_variable_declaration.dart.strong.transformed.expect
index 4c86065..3b25c96 100644
--- a/pkg/front_end/testcases/general/annotation_variable_declaration.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/annotation_variable_declaration.dart.strong.transformed.expect
@@ -60,3 +60,10 @@
   #C2 = self::Bar {}
   #C3 = null
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///annotation_variable_declaration.dart:
+- Bar. (from org-dartlang-testcase:///annotation_variable_declaration.dart:8:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Bar.named (from org-dartlang-testcase:///annotation_variable_declaration.dart:9:9)
diff --git a/pkg/front_end/testcases/general/bug33099.dart.strong.expect b/pkg/front_end/testcases/general/bug33099.dart.strong.expect
index 6e4306c..3c88091 100644
--- a/pkg/front_end/testcases/general/bug33099.dart.strong.expect
+++ b/pkg/front_end/testcases/general/bug33099.dart.strong.expect
@@ -82,3 +82,9 @@
   #C1 = self::_FailingTest {}
   #C2 = #foo
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///bug33099.dart:
+- _FailingTest. (from org-dartlang-testcase:///bug33099.dart:10:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/general/bug33099.dart.strong.transformed.expect b/pkg/front_end/testcases/general/bug33099.dart.strong.transformed.expect
index 1c01215..d3b4b3a 100644
--- a/pkg/front_end/testcases/general/bug33099.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/bug33099.dart.strong.transformed.expect
@@ -88,3 +88,9 @@
 Extra constant evaluation status:
 Evaluated: TypeLiteral @ org-dartlang-testcase:///bug33099.dart:21:42 -> TypeLiteralConstant(MyTest2*)
 Extra constant evaluation: evaluated: 33, effectively constant: 1
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///bug33099.dart:
+- _FailingTest. (from org-dartlang-testcase:///bug33099.dart:10:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/general/const_redirect_to_nonconst.dart.strong.expect b/pkg/front_end/testcases/general/const_redirect_to_nonconst.dart.strong.expect
index 41cf43f..94978d1 100644
--- a/pkg/front_end/testcases/general/const_redirect_to_nonconst.dart.strong.expect
+++ b/pkg/front_end/testcases/general/const_redirect_to_nonconst.dart.strong.expect
@@ -43,3 +43,11 @@
   core::print(new self::A::•());
   core::print(new self::B::•());
 }
+
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///const_redirect_to_nonconst.dart:
+- A. (from org-dartlang-testcase:///const_redirect_to_nonconst.dart:6:9)
+- A.bad (from org-dartlang-testcase:///const_redirect_to_nonconst.dart:8:3)
+- B. (from org-dartlang-testcase:///const_redirect_to_nonconst.dart:12:9)
diff --git a/pkg/front_end/testcases/general/const_redirect_to_nonconst.dart.strong.transformed.expect b/pkg/front_end/testcases/general/const_redirect_to_nonconst.dart.strong.transformed.expect
index 41cf43f..94978d1 100644
--- a/pkg/front_end/testcases/general/const_redirect_to_nonconst.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/const_redirect_to_nonconst.dart.strong.transformed.expect
@@ -43,3 +43,11 @@
   core::print(new self::A::•());
   core::print(new self::B::•());
 }
+
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///const_redirect_to_nonconst.dart:
+- A. (from org-dartlang-testcase:///const_redirect_to_nonconst.dart:6:9)
+- A.bad (from org-dartlang-testcase:///const_redirect_to_nonconst.dart:8:3)
+- B. (from org-dartlang-testcase:///const_redirect_to_nonconst.dart:12:9)
diff --git a/pkg/front_end/testcases/general/constants/circularity.dart.strong.expect b/pkg/front_end/testcases/general/constants/circularity.dart.strong.expect
index ad07bf9..32e7493 100644
--- a/pkg/front_end/testcases/general/constants/circularity.dart.strong.expect
+++ b/pkg/front_end/testcases/general/constants/circularity.dart.strong.expect
@@ -132,3 +132,12 @@
   #C5 = self::Class2 {field:#C3}
   #C6 = self::Class4 {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///circularity.dart:
+- Class1. (from org-dartlang-testcase:///circularity.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Class2. (from org-dartlang-testcase:///circularity.dart:21:9)
+- Class3. (from org-dartlang-testcase:///circularity.dart:29:9)
+- Class4. (from org-dartlang-testcase:///circularity.dart:37:9)
diff --git a/pkg/front_end/testcases/general/constants/circularity.dart.strong.transformed.expect b/pkg/front_end/testcases/general/constants/circularity.dart.strong.transformed.expect
index ad07bf9..32e7493 100644
--- a/pkg/front_end/testcases/general/constants/circularity.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/constants/circularity.dart.strong.transformed.expect
@@ -132,3 +132,12 @@
   #C5 = self::Class2 {field:#C3}
   #C6 = self::Class4 {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///circularity.dart:
+- Class1. (from org-dartlang-testcase:///circularity.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Class2. (from org-dartlang-testcase:///circularity.dart:21:9)
+- Class3. (from org-dartlang-testcase:///circularity.dart:29:9)
+- Class4. (from org-dartlang-testcase:///circularity.dart:37:9)
diff --git a/pkg/front_end/testcases/general/constants/const_asserts.dart.strong.expect b/pkg/front_end/testcases/general/constants/const_asserts.dart.strong.expect
index 2f17318..c7388b3 100644
--- a/pkg/front_end/testcases/general/constants/const_asserts.dart.strong.expect
+++ b/pkg/front_end/testcases/general/constants/const_asserts.dart.strong.expect
@@ -204,3 +204,17 @@
   #C3 = 1
   #C4 = self::Foo {x:#C3}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///const_asserts.dart:
+- Foo. (from org-dartlang-testcase:///const_asserts.dart:7:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Foo.withMessage (from org-dartlang-testcase:///const_asserts.dart:14:9)
+- Foo.withInvalidMessage (from org-dartlang-testcase:///const_asserts.dart:16:9)
+- Foo.withInvalidCondition (from org-dartlang-testcase:///const_asserts.dart:17:9)
+- Foo.withNullConditionFromEnv1 (from org-dartlang-testcase:///const_asserts.dart:18:9)
+- Foo.withNullConditionFromEnv2 (from org-dartlang-testcase:///const_asserts.dart:20:9)
+- Bar.withMessage (from org-dartlang-testcase:///const_asserts.dart:26:9)
+- Bar.withoutMessage (from org-dartlang-testcase:///const_asserts.dart:27:9)
+- Bar.withEmptyMessage (from org-dartlang-testcase:///const_asserts.dart:28:9)
diff --git a/pkg/front_end/testcases/general/constants/const_asserts.dart.strong.transformed.expect b/pkg/front_end/testcases/general/constants/const_asserts.dart.strong.transformed.expect
index 5302b40..4038990 100644
--- a/pkg/front_end/testcases/general/constants/const_asserts.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/constants/const_asserts.dart.strong.transformed.expect
@@ -211,3 +211,17 @@
 Evaluated: MethodInvocation @ org-dartlang-testcase:///const_asserts.dart:13:50 -> BoolConstant(true)
 Evaluated: StringConcatenation @ org-dartlang-testcase:///const_asserts.dart:15:73 -> StringConstant("btw foo was false")
 Extra constant evaluation: evaluated: 34, effectively constant: 4
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///const_asserts.dart:
+- Foo. (from org-dartlang-testcase:///const_asserts.dart:7:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Foo.withMessage (from org-dartlang-testcase:///const_asserts.dart:14:9)
+- Foo.withInvalidMessage (from org-dartlang-testcase:///const_asserts.dart:16:9)
+- Foo.withInvalidCondition (from org-dartlang-testcase:///const_asserts.dart:17:9)
+- Foo.withNullConditionFromEnv1 (from org-dartlang-testcase:///const_asserts.dart:18:9)
+- Foo.withNullConditionFromEnv2 (from org-dartlang-testcase:///const_asserts.dart:20:9)
+- Bar.withMessage (from org-dartlang-testcase:///const_asserts.dart:26:9)
+- Bar.withoutMessage (from org-dartlang-testcase:///const_asserts.dart:27:9)
+- Bar.withEmptyMessage (from org-dartlang-testcase:///const_asserts.dart:28:9)
diff --git a/pkg/front_end/testcases/general/constants/const_collections.dart.strong.expect b/pkg/front_end/testcases/general/constants/const_collections.dart.strong.expect
index 43efaee..6bfdeba 100644
--- a/pkg/front_end/testcases/general/constants/const_collections.dart.strong.expect
+++ b/pkg/front_end/testcases/general/constants/const_collections.dart.strong.expect
@@ -513,3 +513,12 @@
   #C25 = core::_ImmutableMap<core::String*, Null> {_kvPairs:#C24}
   #C26 = col::_UnmodifiableSet<core::String*> {_map:#C25}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///const_collections.dart:
+- CustomIterable. (from org-dartlang-testcase:///const_collections.dart:79:9)
+- IterableBase. (from org-dartlang-sdk:///sdk/lib/collection/iterable.dart:218:9)
+- WithEquals. (from org-dartlang-testcase:///const_collections.dart:72:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- CustomMap. (from org-dartlang-testcase:///const_collections.dart:84:9)
diff --git a/pkg/front_end/testcases/general/constants/const_collections.dart.strong.transformed.expect b/pkg/front_end/testcases/general/constants/const_collections.dart.strong.transformed.expect
index 9b88a94..7a1e12e 100644
--- a/pkg/front_end/testcases/general/constants/const_collections.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/constants/const_collections.dart.strong.transformed.expect
@@ -513,3 +513,12 @@
   #C25 = core::_ImmutableMap<core::String*, Null> {_kvPairs:#C24}
   #C26 = col::_UnmodifiableSet<core::String*> {_map:#C25}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///const_collections.dart:
+- CustomIterable. (from org-dartlang-testcase:///const_collections.dart:79:9)
+- IterableBase. (from org-dartlang-sdk:///sdk/lib/collection/iterable.dart:218:9)
+- WithEquals. (from org-dartlang-testcase:///const_collections.dart:72:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- CustomMap. (from org-dartlang-testcase:///const_collections.dart:84:9)
diff --git a/pkg/front_end/testcases/general/constants/const_constructor_coverage.dart.strong.expect b/pkg/front_end/testcases/general/constants/const_constructor_coverage.dart.strong.expect
index 19a070b..fe088f9 100644
--- a/pkg/front_end/testcases/general/constants/const_constructor_coverage.dart.strong.expect
+++ b/pkg/front_end/testcases/general/constants/const_constructor_coverage.dart.strong.expect
@@ -127,3 +127,28 @@
   #C3 = con::Bar {baz:#C2}
   #C4 = con::Foo {bar:#C3}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///const_constructor_coverage.dart:
+- Foo. (from org-dartlang-testcase:///const_constructor_coverage_lib1.dart:9:15)
+- Foo.named1 (from org-dartlang-testcase:///const_constructor_coverage_lib1.dart:10:15)
+- Foo.named2 (from org-dartlang-testcase:///const_constructor_coverage_lib1.dart:11:15)
+- Foo.named3 (from org-dartlang-testcase:///const_constructor_coverage_lib1.dart:12:15)
+
+org-dartlang-testcase:///const_constructor_coverage_lib1.dart:
+- Bar. (from org-dartlang-testcase:///const_constructor_coverage_lib1.dart:17:15)
+- Baz. (from org-dartlang-testcase:///const_constructor_coverage_lib2.dart:9:15)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Bar.named1 (from org-dartlang-testcase:///const_constructor_coverage_lib1.dart:18:15)
+- Baz.named1 (from org-dartlang-testcase:///const_constructor_coverage_lib2.dart:10:15)
+- Baz.named5 (from org-dartlang-testcase:///const_constructor_coverage_lib2.dart:14:15)
+- Baz.named6 (from org-dartlang-testcase:///const_constructor_coverage_lib2.dart:15:15)
+- Foo.named3 (from org-dartlang-testcase:///const_constructor_coverage_lib1.dart:12:15)
+
+org-dartlang-testcase:///const_constructor_coverage_lib2.dart:
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Bar.named3 (from org-dartlang-testcase:///const_constructor_coverage_lib1.dart:20:15)
+- Baz.named4 (from org-dartlang-testcase:///const_constructor_coverage_lib2.dart:13:15)
+- Foo.named2 (from org-dartlang-testcase:///const_constructor_coverage_lib1.dart:11:15)
+- Bar.named2 (from org-dartlang-testcase:///const_constructor_coverage_lib1.dart:19:15)
diff --git a/pkg/front_end/testcases/general/constants/const_constructor_coverage.dart.strong.transformed.expect b/pkg/front_end/testcases/general/constants/const_constructor_coverage.dart.strong.transformed.expect
index 19a070b..fe088f9 100644
--- a/pkg/front_end/testcases/general/constants/const_constructor_coverage.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/constants/const_constructor_coverage.dart.strong.transformed.expect
@@ -127,3 +127,28 @@
   #C3 = con::Bar {baz:#C2}
   #C4 = con::Foo {bar:#C3}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///const_constructor_coverage.dart:
+- Foo. (from org-dartlang-testcase:///const_constructor_coverage_lib1.dart:9:15)
+- Foo.named1 (from org-dartlang-testcase:///const_constructor_coverage_lib1.dart:10:15)
+- Foo.named2 (from org-dartlang-testcase:///const_constructor_coverage_lib1.dart:11:15)
+- Foo.named3 (from org-dartlang-testcase:///const_constructor_coverage_lib1.dart:12:15)
+
+org-dartlang-testcase:///const_constructor_coverage_lib1.dart:
+- Bar. (from org-dartlang-testcase:///const_constructor_coverage_lib1.dart:17:15)
+- Baz. (from org-dartlang-testcase:///const_constructor_coverage_lib2.dart:9:15)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Bar.named1 (from org-dartlang-testcase:///const_constructor_coverage_lib1.dart:18:15)
+- Baz.named1 (from org-dartlang-testcase:///const_constructor_coverage_lib2.dart:10:15)
+- Baz.named5 (from org-dartlang-testcase:///const_constructor_coverage_lib2.dart:14:15)
+- Baz.named6 (from org-dartlang-testcase:///const_constructor_coverage_lib2.dart:15:15)
+- Foo.named3 (from org-dartlang-testcase:///const_constructor_coverage_lib1.dart:12:15)
+
+org-dartlang-testcase:///const_constructor_coverage_lib2.dart:
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Bar.named3 (from org-dartlang-testcase:///const_constructor_coverage_lib1.dart:20:15)
+- Baz.named4 (from org-dartlang-testcase:///const_constructor_coverage_lib2.dart:13:15)
+- Foo.named2 (from org-dartlang-testcase:///const_constructor_coverage_lib1.dart:11:15)
+- Bar.named2 (from org-dartlang-testcase:///const_constructor_coverage_lib1.dart:19:15)
diff --git a/pkg/front_end/testcases/general/constants/issue_43431.dart.strong.expect b/pkg/front_end/testcases/general/constants/issue_43431.dart.strong.expect
index 1c887af..b8bb029 100644
--- a/pkg/front_end/testcases/general/constants/issue_43431.dart.strong.expect
+++ b/pkg/front_end/testcases/general/constants/issue_43431.dart.strong.expect
@@ -50,3 +50,8 @@
 constants  {
   #C1 = true
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///issue_43431.dart:
+- Foo. (from org-dartlang-testcase:///issue_43431.dart:6:9)
diff --git a/pkg/front_end/testcases/general/constants/issue_43431.dart.strong.transformed.expect b/pkg/front_end/testcases/general/constants/issue_43431.dart.strong.transformed.expect
index 1c887af..b8bb029 100644
--- a/pkg/front_end/testcases/general/constants/issue_43431.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/constants/issue_43431.dart.strong.transformed.expect
@@ -50,3 +50,8 @@
 constants  {
   #C1 = true
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///issue_43431.dart:
+- Foo. (from org-dartlang-testcase:///issue_43431.dart:6:9)
diff --git a/pkg/front_end/testcases/general/constants/various.dart.strong.expect b/pkg/front_end/testcases/general/constants/various.dart.strong.expect
index e7197ff..6caacbe 100644
--- a/pkg/front_end/testcases/general/constants/various.dart.strong.expect
+++ b/pkg/front_end/testcases/general/constants/various.dart.strong.expect
@@ -624,3 +624,13 @@
   #C21 = tearoff self::id1
   #C22 = partial-instantiation self::id1 <core::int*>
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///various.dart:
+- ExtendsFoo2. (from org-dartlang-testcase:///various.dart:121:9)
+- Foo. (from org-dartlang-testcase:///various.dart:109:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- ConstClassWithFailingAssertWithEmptyMessage. (from org-dartlang-testcase:///various.dart:144:9)
+- ClassWithTypeArguments. (from org-dartlang-testcase:///various.dart:151:9)
+- ConstClassWithFinalFields2. (from org-dartlang-testcase:///various.dart:177:9)
diff --git a/pkg/front_end/testcases/general/constants/various.dart.strong.transformed.expect b/pkg/front_end/testcases/general/constants/various.dart.strong.transformed.expect
index 077f295..d432ab2 100644
--- a/pkg/front_end/testcases/general/constants/various.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/constants/various.dart.strong.transformed.expect
@@ -628,3 +628,13 @@
 Extra constant evaluation status:
 Evaluated: PropertyGet @ org-dartlang-testcase:///various.dart:111:26 -> IntConstant(5)
 Extra constant evaluation: evaluated: 12, effectively constant: 1
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///various.dart:
+- ExtendsFoo2. (from org-dartlang-testcase:///various.dart:121:9)
+- Foo. (from org-dartlang-testcase:///various.dart:109:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- ConstClassWithFailingAssertWithEmptyMessage. (from org-dartlang-testcase:///various.dart:144:9)
+- ClassWithTypeArguments. (from org-dartlang-testcase:///various.dart:151:9)
+- ConstClassWithFinalFields2. (from org-dartlang-testcase:///various.dart:177:9)
diff --git a/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/const_asserts.dart.strong.expect b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/const_asserts.dart.strong.expect
index f4a03a1..786c05f 100644
--- a/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/const_asserts.dart.strong.expect
+++ b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/const_asserts.dart.strong.expect
@@ -124,3 +124,14 @@
   #C11 = "btw foo was "
   #C12 = eval self::Foo{x:#C10, assert(#C7, "${#C11}${const core::bool::fromEnvironment(#C1)}")}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///const_asserts.dart:
+- Foo. (from org-dartlang-testcase:///const_asserts.dart:7:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Foo.withMessage (from org-dartlang-testcase:///const_asserts.dart:13:9)
+- Foo.withInvalidMessage (from org-dartlang-testcase:///const_asserts.dart:15:9)
+- Foo.withInvalidCondition (from org-dartlang-testcase:///const_asserts.dart:16:9)
+- Bar.withMessage (from org-dartlang-testcase:///const_asserts.dart:21:9)
+- Bar.withoutMessage (from org-dartlang-testcase:///const_asserts.dart:22:9)
diff --git a/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/const_asserts.dart.strong.transformed.expect b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/const_asserts.dart.strong.transformed.expect
index 84a0f93..b31130f 100644
--- a/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/const_asserts.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/const_asserts.dart.strong.transformed.expect
@@ -138,3 +138,14 @@
 Evaluated with empty environment: ConstantExpression @ org-dartlang-testcase:///const_asserts.dart:25:24 -> InstanceConstant(const Foo{Foo.x: 1})
 Evaluated with empty environment: ConstantExpression @ org-dartlang-testcase:///const_asserts.dart:25:24 -> InstanceConstant(const Foo{Foo.x: 1})
 Extra constant evaluation: evaluated: 34, effectively constant: 10
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///const_asserts.dart:
+- Foo. (from org-dartlang-testcase:///const_asserts.dart:7:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Foo.withMessage (from org-dartlang-testcase:///const_asserts.dart:13:9)
+- Foo.withInvalidMessage (from org-dartlang-testcase:///const_asserts.dart:15:9)
+- Foo.withInvalidCondition (from org-dartlang-testcase:///const_asserts.dart:16:9)
+- Bar.withMessage (from org-dartlang-testcase:///const_asserts.dart:21:9)
+- Bar.withoutMessage (from org-dartlang-testcase:///const_asserts.dart:22:9)
diff --git a/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various.dart.strong.expect b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various.dart.strong.expect
index 8f2590a..141047c 100644
--- a/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various.dart.strong.expect
+++ b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various.dart.strong.expect
@@ -248,3 +248,17 @@
   #C44 = eval const core::bool::fromEnvironment(#C2) ?{core::bool?} const core::bool::fromEnvironment(#C1) : #C9
   #C45 = eval (const core::bool::fromEnvironment(#C2) ?{core::bool?} const core::bool::fromEnvironment(#C1) : #C9)!
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///various.dart:
+- C. (from org-dartlang-testcase:///various.dart:92:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Class.redirect (from org-dartlang-testcase:///various.dart:99:9)
+- Class. (from org-dartlang-testcase:///various.dart:98:9)
+- A. (from org-dartlang-testcase:///various.dart:80:9)
+- Class.method (from org-dartlang-testcase:///various.dart:100:9)
+- Subclass. (from org-dartlang-testcase:///various.dart:104:9)
+- B. (from org-dartlang-testcase:///various.dart:86:9)
+- Foo. (from org-dartlang-testcase:///various.dart:31:9)
+- ConstClassWithF. (from org-dartlang-testcase:///various.dart:120:9)
diff --git a/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various.dart.strong.transformed.expect b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various.dart.strong.transformed.expect
index 858bb47..0a49faa 100644
--- a/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various.dart.strong.transformed.expect
@@ -282,3 +282,17 @@
 Evaluated with empty environment: ConstantExpression @ org-dartlang-testcase:///various.dart:128:33 -> BoolConstant(true)
 Evaluated with empty environment: ConstantExpression @ org-dartlang-testcase:///various.dart:130:33 -> NullConstant(null)
 Extra constant evaluation: evaluated: 66, effectively constant: 24
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///various.dart:
+- C. (from org-dartlang-testcase:///various.dart:92:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Class.redirect (from org-dartlang-testcase:///various.dart:99:9)
+- Class. (from org-dartlang-testcase:///various.dart:98:9)
+- A. (from org-dartlang-testcase:///various.dart:80:9)
+- Class.method (from org-dartlang-testcase:///various.dart:100:9)
+- Subclass. (from org-dartlang-testcase:///various.dart:104:9)
+- B. (from org-dartlang-testcase:///various.dart:86:9)
+- Foo. (from org-dartlang-testcase:///various.dart:31:9)
+- ConstClassWithF. (from org-dartlang-testcase:///various.dart:120:9)
diff --git a/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various_2.dart.strong.expect b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various_2.dart.strong.expect
index 08cdf8e..1201f30 100644
--- a/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various_2.dart.strong.expect
+++ b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various_2.dart.strong.expect
@@ -126,3 +126,12 @@
   #C22 = eval const core::bool::fromEnvironment(#C15) ?{(core::int) → core::int} #C2<core::int> : #C20<core::int>
   #C23 = tearoff core::identical
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///various_2.dart:
+- Class. (from org-dartlang-testcase:///various_2_lib.dart:8:9)
+
+org-dartlang-testcase:///various_2_lib.dart:
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Class. (from org-dartlang-testcase:///various_2_lib.dart:8:9)
diff --git a/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various_2.dart.strong.transformed.expect b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various_2.dart.strong.transformed.expect
index 6932698..413fa9e 100644
--- a/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various_2.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various_2.dart.strong.transformed.expect
@@ -135,3 +135,12 @@
 Evaluated with empty environment: ConstantExpression @ org-dartlang-testcase:///various_2.dart:37:5 -> BoolConstant(false)
 Evaluated with empty environment: ConstantExpression @ org-dartlang-testcase:///various_2_lib.dart:20:39 -> PartialInstantiationConstant(id2<int>)
 Extra constant evaluation: evaluated: 41, effectively constant: 4
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///various_2.dart:
+- Class. (from org-dartlang-testcase:///various_2_lib.dart:8:9)
+
+org-dartlang-testcase:///various_2_lib.dart:
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Class. (from org-dartlang-testcase:///various_2_lib.dart:8:9)
diff --git a/pkg/front_end/testcases/general/constructor_const_inference.dart.strong.expect b/pkg/front_end/testcases/general/constructor_const_inference.dart.strong.expect
index 5bf2809..7b3fd67 100644
--- a/pkg/front_end/testcases/general/constructor_const_inference.dart.strong.expect
+++ b/pkg/front_end/testcases/general/constructor_const_inference.dart.strong.expect
@@ -48,3 +48,9 @@
 constants  {
   #C1 = self::_Y<Null> {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///constructor_const_inference.dart:
+- _Y. (from org-dartlang-testcase:///constructor_const_inference.dart:10:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/general/constructor_const_inference.dart.strong.transformed.expect b/pkg/front_end/testcases/general/constructor_const_inference.dart.strong.transformed.expect
index 5bf2809..7b3fd67 100644
--- a/pkg/front_end/testcases/general/constructor_const_inference.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/constructor_const_inference.dart.strong.transformed.expect
@@ -48,3 +48,9 @@
 constants  {
   #C1 = self::_Y<Null> {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///constructor_const_inference.dart:
+- _Y. (from org-dartlang-testcase:///constructor_const_inference.dart:10:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/general/duplicated_declarations.dart.strong.expect b/pkg/front_end/testcases/general/duplicated_declarations.dart.strong.expect
index 608fb62..7149868 100644
--- a/pkg/front_end/testcases/general/duplicated_declarations.dart.strong.expect
+++ b/pkg/front_end/testcases/general/duplicated_declarations.dart.strong.expect
@@ -676,3 +676,11 @@
   #C31 = self::AnotherEnum {index:#C9, _name:#C30}
   #C32 = <self::AnotherEnum*>[#C27, #C29, #C31]
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///duplicated_declarations.dart:
+- Enum#1. (from org-dartlang-testcase:///duplicated_declarations.dart:81:6)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Enum. (from org-dartlang-testcase:///duplicated_declarations.dart:74:6)
+- AnotherEnum. (from org-dartlang-testcase:///duplicated_declarations.dart:87:6)
diff --git a/pkg/front_end/testcases/general/error_locations/error_location_01.dart.strong.expect b/pkg/front_end/testcases/general/error_locations/error_location_01.dart.strong.expect
index 7b42d92..7187612 100644
--- a/pkg/front_end/testcases/general/error_locations/error_location_01.dart.strong.expect
+++ b/pkg/front_end/testcases/general/error_locations/error_location_01.dart.strong.expect
@@ -52,3 +52,9 @@
 static method bar() → dynamic {
   invalid-expression "This assertion failed.";
 }
+
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///error_location_01_lib2.dart:
+- Foo. (from org-dartlang-testcase:///error_location_01_lib1.dart:6:9)
diff --git a/pkg/front_end/testcases/general/error_locations/error_location_01.dart.strong.transformed.expect b/pkg/front_end/testcases/general/error_locations/error_location_01.dart.strong.transformed.expect
index 7b42d92..7187612 100644
--- a/pkg/front_end/testcases/general/error_locations/error_location_01.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/error_locations/error_location_01.dart.strong.transformed.expect
@@ -52,3 +52,9 @@
 static method bar() → dynamic {
   invalid-expression "This assertion failed.";
 }
+
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///error_location_01_lib2.dart:
+- Foo. (from org-dartlang-testcase:///error_location_01_lib1.dart:6:9)
diff --git a/pkg/front_end/testcases/general/error_locations/error_location_02.dart.strong.expect b/pkg/front_end/testcases/general/error_locations/error_location_02.dart.strong.expect
index 1aae9ef..616bd79 100644
--- a/pkg/front_end/testcases/general/error_locations/error_location_02.dart.strong.expect
+++ b/pkg/front_end/testcases/general/error_locations/error_location_02.dart.strong.expect
@@ -76,3 +76,9 @@
 import "org-dartlang-testcase:///error_location_02_lib2.dart";
 
 static const field err::Foo* fooField2 = invalid-expression "This assertion failed.";
+
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///error_location_02_lib2.dart:
+- Foo. (from org-dartlang-testcase:///error_location_02_lib1.dart:6:9)
diff --git a/pkg/front_end/testcases/general/error_locations/error_location_02.dart.strong.transformed.expect b/pkg/front_end/testcases/general/error_locations/error_location_02.dart.strong.transformed.expect
index 1aae9ef..616bd79 100644
--- a/pkg/front_end/testcases/general/error_locations/error_location_02.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/error_locations/error_location_02.dart.strong.transformed.expect
@@ -76,3 +76,9 @@
 import "org-dartlang-testcase:///error_location_02_lib2.dart";
 
 static const field err::Foo* fooField2 = invalid-expression "This assertion failed.";
+
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///error_location_02_lib2.dart:
+- Foo. (from org-dartlang-testcase:///error_location_02_lib1.dart:6:9)
diff --git a/pkg/front_end/testcases/general/error_locations/error_location_03.dart.strong.expect b/pkg/front_end/testcases/general/error_locations/error_location_03.dart.strong.expect
index 18b8f4f..8a85eea 100644
--- a/pkg/front_end/testcases/general/error_locations/error_location_03.dart.strong.expect
+++ b/pkg/front_end/testcases/general/error_locations/error_location_03.dart.strong.expect
@@ -77,3 +77,12 @@
 import "org-dartlang-testcase:///error_location_03_lib1.dart";
 
 static const field err::Foo* fooField2 = invalid-expression "This assertion failed.";
+
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///error_location_03_lib2.dart:
+- Foo. (from org-dartlang-testcase:///error_location_03_lib1.dart:6:9)
+
+org-dartlang-testcase:///error_location_03_lib3.dart:
+- Foo. (from org-dartlang-testcase:///error_location_03_lib1.dart:6:9)
diff --git a/pkg/front_end/testcases/general/error_locations/error_location_03.dart.strong.transformed.expect b/pkg/front_end/testcases/general/error_locations/error_location_03.dart.strong.transformed.expect
index 18b8f4f..8a85eea 100644
--- a/pkg/front_end/testcases/general/error_locations/error_location_03.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/error_locations/error_location_03.dart.strong.transformed.expect
@@ -77,3 +77,12 @@
 import "org-dartlang-testcase:///error_location_03_lib1.dart";
 
 static const field err::Foo* fooField2 = invalid-expression "This assertion failed.";
+
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///error_location_03_lib2.dart:
+- Foo. (from org-dartlang-testcase:///error_location_03_lib1.dart:6:9)
+
+org-dartlang-testcase:///error_location_03_lib3.dart:
+- Foo. (from org-dartlang-testcase:///error_location_03_lib1.dart:6:9)
diff --git a/pkg/front_end/testcases/general/error_locations/error_location_04.dart.strong.expect b/pkg/front_end/testcases/general/error_locations/error_location_04.dart.strong.expect
index 972534b..43d683c 100644
--- a/pkg/front_end/testcases/general/error_locations/error_location_04.dart.strong.expect
+++ b/pkg/front_end/testcases/general/error_locations/error_location_04.dart.strong.expect
@@ -68,3 +68,9 @@
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method bar() → dynamic {}
+
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///error_location_04_lib2.dart:
+- Foo. (from org-dartlang-testcase:///error_location_04_lib1.dart:6:9)
diff --git a/pkg/front_end/testcases/general/error_locations/error_location_04.dart.strong.transformed.expect b/pkg/front_end/testcases/general/error_locations/error_location_04.dart.strong.transformed.expect
index 972534b..43d683c 100644
--- a/pkg/front_end/testcases/general/error_locations/error_location_04.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/error_locations/error_location_04.dart.strong.transformed.expect
@@ -68,3 +68,9 @@
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method bar() → dynamic {}
+
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///error_location_04_lib2.dart:
+- Foo. (from org-dartlang-testcase:///error_location_04_lib1.dart:6:9)
diff --git a/pkg/front_end/testcases/general/expressions.dart.strong.expect b/pkg/front_end/testcases/general/expressions.dart.strong.expect
index 90c7dca..cf0b310 100644
--- a/pkg/front_end/testcases/general/expressions.dart.strong.expect
+++ b/pkg/front_end/testcases/general/expressions.dart.strong.expect
@@ -93,3 +93,8 @@
   #C1 = null
   #C2 = core::Object {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///expressions.dart:
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/general/expressions.dart.strong.transformed.expect b/pkg/front_end/testcases/general/expressions.dart.strong.transformed.expect
index a1dbb58..1e37a0d 100644
--- a/pkg/front_end/testcases/general/expressions.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/expressions.dart.strong.transformed.expect
@@ -102,3 +102,8 @@
 Evaluated: VariableGetImpl @ org-dartlang-testcase:///expressions.dart:72:9 -> TypeLiteralConstant(int*)
 Evaluated: VariableGet @ org-dartlang-testcase:///expressions.dart:72:9 -> TypeLiteralConstant(int*)
 Extra constant evaluation: evaluated: 138, effectively constant: 6
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///expressions.dart:
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/general/external_import.dart.strong.expect b/pkg/front_end/testcases/general/external_import.dart.strong.expect
index 92724dc..0a7d177 100644
--- a/pkg/front_end/testcases/general/external_import.dart.strong.expect
+++ b/pkg/front_end/testcases/general/external_import.dart.strong.expect
@@ -15,3 +15,8 @@
   #C5 = "dart-ext:/usr/local/somewhere"
   #C6 = _in::ExternalName {name:#C5}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///external_import.dart:
+- ExternalName. (from org-dartlang-sdk:///sdk/lib/internal/internal.dart:92:9)
diff --git a/pkg/front_end/testcases/general/external_import.dart.strong.transformed.expect b/pkg/front_end/testcases/general/external_import.dart.strong.transformed.expect
index 92724dc..0a7d177 100644
--- a/pkg/front_end/testcases/general/external_import.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/external_import.dart.strong.transformed.expect
@@ -15,3 +15,8 @@
   #C5 = "dart-ext:/usr/local/somewhere"
   #C6 = _in::ExternalName {name:#C5}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///external_import.dart:
+- ExternalName. (from org-dartlang-sdk:///sdk/lib/internal/internal.dart:92:9)
diff --git a/pkg/front_end/testcases/general/ffi_sample.dart.strong.expect b/pkg/front_end/testcases/general/ffi_sample.dart.strong.expect
index a853421..7121f54 100644
--- a/pkg/front_end/testcases/general/ffi_sample.dart.strong.expect
+++ b/pkg/front_end/testcases/general/ffi_sample.dart.strong.expect
@@ -37,3 +37,8 @@
 constants  {
   #C1 = ffi::Double {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///ffi_sample.dart:
+- Double. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:116:9)
diff --git a/pkg/front_end/testcases/general/ffi_sample.dart.strong.transformed.expect b/pkg/front_end/testcases/general/ffi_sample.dart.strong.transformed.expect
index 324ae5f..5c415f7 100644
--- a/pkg/front_end/testcases/general/ffi_sample.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/ffi_sample.dart.strong.transformed.expect
@@ -68,3 +68,8 @@
   #C16 = 16
   #C17 = <core::int*>[#C16, #C16, #C16]
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///ffi_sample.dart:
+- Double. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:116:9)
diff --git a/pkg/front_end/testcases/general/invalid_operator.dart.outline.expect b/pkg/front_end/testcases/general/invalid_operator.dart.outline.expect
index afe3ed7..63dfbeb 100644
--- a/pkg/front_end/testcases/general/invalid_operator.dart.outline.expect
+++ b/pkg/front_end/testcases/general/invalid_operator.dart.outline.expect
@@ -564,9 +564,9 @@
 // Try adding explicit types.
 //   operator ==<T>(a) => true;
 //            ^^
-// sdk/lib/core/object.dart:18:15: Context: This is one of the overridden members.
-//  * section of the [library
-//               ^^
+// sdk/lib/_internal/vm/lib/object_patch.dart:21:17: Context: This is one of the overridden members.
+//   bool operator ==(Object other) native "Object_equals";
+//                 ^^
 //
 // pkg/front_end/testcases/general/invalid_operator.dart:6:12: Error: The method 'Operators1.==' has fewer positional arguments than those of overridden method 'Object.=='.
 //   operator ==() => true;
diff --git a/pkg/front_end/testcases/general/invalid_operator.dart.strong.expect b/pkg/front_end/testcases/general/invalid_operator.dart.strong.expect
index 2affa55..c65d2ea 100644
--- a/pkg/front_end/testcases/general/invalid_operator.dart.strong.expect
+++ b/pkg/front_end/testcases/general/invalid_operator.dart.strong.expect
@@ -564,9 +564,9 @@
 // Try adding explicit types.
 //   operator ==<T>(a) => true;
 //            ^^
-// sdk/lib/core/object.dart:18:15: Context: This is one of the overridden members.
-//  * section of the [library
-//               ^^
+// sdk/lib/_internal/vm/lib/object_patch.dart:21:17: Context: This is one of the overridden members.
+//   bool operator ==(Object other) native "Object_equals";
+//                 ^^
 //
 // pkg/front_end/testcases/general/invalid_operator.dart:6:12: Error: The method 'Operators1.==' has fewer positional arguments than those of overridden method 'Object.=='.
 //   operator ==() => true;
diff --git a/pkg/front_end/testcases/general/issue31767.dart.strong.expect b/pkg/front_end/testcases/general/issue31767.dart.strong.expect
index 66290c1..1b0f0ec 100644
--- a/pkg/front_end/testcases/general/issue31767.dart.strong.expect
+++ b/pkg/front_end/testcases/general/issue31767.dart.strong.expect
@@ -119,3 +119,12 @@
   #C3 = 5
   #C4 = iss::_A {field:#C3}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///issue31767.dart:
+- _A. (from org-dartlang-testcase:///issue31767_lib.dart:20:9)
+
+org-dartlang-testcase:///issue31767_lib.dart:
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- _A. (from org-dartlang-testcase:///issue31767_lib.dart:20:9)
diff --git a/pkg/front_end/testcases/general/issue31767.dart.strong.transformed.expect b/pkg/front_end/testcases/general/issue31767.dart.strong.transformed.expect
index 19fdcee..e9f261e 100644
--- a/pkg/front_end/testcases/general/issue31767.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/issue31767.dart.strong.transformed.expect
@@ -123,3 +123,12 @@
   #C3 = 5
   #C4 = iss::_A {field:#C3}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///issue31767.dart:
+- _A. (from org-dartlang-testcase:///issue31767_lib.dart:20:9)
+
+org-dartlang-testcase:///issue31767_lib.dart:
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- _A. (from org-dartlang-testcase:///issue31767_lib.dart:20:9)
diff --git a/pkg/front_end/testcases/general/issue41070.dart.strong.expect b/pkg/front_end/testcases/general/issue41070.dart.strong.expect
index 4d2a484..d096b3a 100644
--- a/pkg/front_end/testcases/general/issue41070.dart.strong.expect
+++ b/pkg/front_end/testcases/general/issue41070.dart.strong.expect
@@ -50,3 +50,10 @@
   #C1 = 42
   #C2 = self::Application {x:#C1}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///issue41070.dart:
+- Application. (from org-dartlang-testcase:///issue41070.dart:12:7)
+- Base. (from org-dartlang-testcase:///issue41070.dart:9:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/general/issue41070.dart.strong.transformed.expect b/pkg/front_end/testcases/general/issue41070.dart.strong.transformed.expect
index 76c0ef2..2b92125 100644
--- a/pkg/front_end/testcases/general/issue41070.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/issue41070.dart.strong.transformed.expect
@@ -60,3 +60,10 @@
   #C1 = 42
   #C2 = self::Application {x:#C1}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///issue41070.dart:
+- Application. (from org-dartlang-testcase:///issue41070.dart:12:7)
+- Base. (from org-dartlang-testcase:///issue41070.dart:9:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/general/magic_const.dart.strong.expect b/pkg/front_end/testcases/general/magic_const.dart.strong.expect
index 28519d4..e9b6273 100644
--- a/pkg/front_end/testcases/general/magic_const.dart.strong.expect
+++ b/pkg/front_end/testcases/general/magic_const.dart.strong.expect
@@ -69,3 +69,9 @@
 constants  {
   #C1 = self::Constant {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///magic_const.dart:
+- Constant. (from org-dartlang-testcase:///magic_const.dart:10:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/general/magic_const.dart.strong.transformed.expect b/pkg/front_end/testcases/general/magic_const.dart.strong.transformed.expect
index d40ba2b8..01a97f5 100644
--- a/pkg/front_end/testcases/general/magic_const.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/magic_const.dart.strong.transformed.expect
@@ -73,3 +73,9 @@
 Extra constant evaluation status:
 Evaluated: FactoryConstructorInvocationJudgment @ org-dartlang-testcase:///magic_const.dart:21:8 -> BoolConstant(false)
 Extra constant evaluation: evaluated: 2, effectively constant: 1
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///magic_const.dart:
+- Constant. (from org-dartlang-testcase:///magic_const.dart:10:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/general/metadata_enum.dart.strong.expect b/pkg/front_end/testcases/general/metadata_enum.dart.strong.expect
index b5f94c3..7f56692 100644
--- a/pkg/front_end/testcases/general/metadata_enum.dart.strong.expect
+++ b/pkg/front_end/testcases/general/metadata_enum.dart.strong.expect
@@ -41,3 +41,9 @@
   #C10 = self::E {index:#C8, _name:#C9}
   #C11 = <self::E*>[#C4, #C7, #C10]
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///metadata_enum.dart:
+- E. (from org-dartlang-testcase:///metadata_enum.dart:8:6)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/general/metadata_enum.dart.strong.transformed.expect b/pkg/front_end/testcases/general/metadata_enum.dart.strong.transformed.expect
index b5f94c3..7f56692 100644
--- a/pkg/front_end/testcases/general/metadata_enum.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/metadata_enum.dart.strong.transformed.expect
@@ -41,3 +41,9 @@
   #C10 = self::E {index:#C8, _name:#C9}
   #C11 = <self::E*>[#C4, #C7, #C10]
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///metadata_enum.dart:
+- E. (from org-dartlang-testcase:///metadata_enum.dart:8:6)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/general/redirecting_factory_const_inference.dart.strong.expect b/pkg/front_end/testcases/general/redirecting_factory_const_inference.dart.strong.expect
index 27deb54..5530c67 100644
--- a/pkg/front_end/testcases/general/redirecting_factory_const_inference.dart.strong.expect
+++ b/pkg/front_end/testcases/general/redirecting_factory_const_inference.dart.strong.expect
@@ -63,3 +63,9 @@
 constants  {
   #C1 = self::_Y<Null> {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///redirecting_factory_const_inference.dart:
+- _Y. (from org-dartlang-testcase:///redirecting_factory_const_inference.dart:14:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/general/redirecting_factory_const_inference.dart.strong.transformed.expect b/pkg/front_end/testcases/general/redirecting_factory_const_inference.dart.strong.transformed.expect
index 4b6b1c0..4e5e906 100644
--- a/pkg/front_end/testcases/general/redirecting_factory_const_inference.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/redirecting_factory_const_inference.dart.strong.transformed.expect
@@ -63,3 +63,9 @@
 constants  {
   #C1 = self::_Y<Null> {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///redirecting_factory_const_inference.dart:
+- _Y. (from org-dartlang-testcase:///redirecting_factory_const_inference.dart:14:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/general/redirection_type_arguments.dart.strong.expect b/pkg/front_end/testcases/general/redirection_type_arguments.dart.strong.expect
index c2a1aa6..b2e2f7d 100644
--- a/pkg/front_end/testcases/general/redirection_type_arguments.dart.strong.expect
+++ b/pkg/front_end/testcases/general/redirection_type_arguments.dart.strong.expect
@@ -37,3 +37,10 @@
 constants  {
   #C1 = self::B<core::String*> {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///redirection_type_arguments.dart:
+- B. (from org-dartlang-testcase:///redirection_type_arguments.dart:16:9)
+- A.empty (from org-dartlang-testcase:///redirection_type_arguments.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/general/redirection_type_arguments.dart.strong.transformed.expect b/pkg/front_end/testcases/general/redirection_type_arguments.dart.strong.transformed.expect
index 78db851..431dcbe 100644
--- a/pkg/front_end/testcases/general/redirection_type_arguments.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/redirection_type_arguments.dart.strong.transformed.expect
@@ -37,3 +37,10 @@
 constants  {
   #C1 = self::B<core::String*> {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///redirection_type_arguments.dart:
+- B. (from org-dartlang-testcase:///redirection_type_arguments.dart:16:9)
+- A.empty (from org-dartlang-testcase:///redirection_type_arguments.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/general/type_variable_uses.dart.strong.expect b/pkg/front_end/testcases/general/type_variable_uses.dart.strong.expect
index 1222789..9174c05 100644
--- a/pkg/front_end/testcases/general/type_variable_uses.dart.strong.expect
+++ b/pkg/front_end/testcases/general/type_variable_uses.dart.strong.expect
@@ -112,3 +112,9 @@
   #C5 = <core::Object*>[#C4]
   #C6 = <core::Object*>[#C1]
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///type_variable_uses.dart:
+- C. (from org-dartlang-testcase:///type_variable_uses.dart:6:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/general/type_variable_uses.dart.strong.transformed.expect b/pkg/front_end/testcases/general/type_variable_uses.dart.strong.transformed.expect
index 020bf8e..c51d8c4 100644
--- a/pkg/front_end/testcases/general/type_variable_uses.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/type_variable_uses.dart.strong.transformed.expect
@@ -116,3 +116,9 @@
 Extra constant evaluation status:
 Evaluated: TypeLiteral @ org-dartlang-testcase:///type_variable_uses.dart:8:11 -> TypeLiteralConstant(<invalid>)
 Extra constant evaluation: evaluated: 4, effectively constant: 1
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///type_variable_uses.dart:
+- C. (from org-dartlang-testcase:///type_variable_uses.dart:6:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/general/with_dependencies/issue43538/main.dart.strong.expect b/pkg/front_end/testcases/general/with_dependencies/issue43538/main.dart.strong.expect
index 6100074..42872b5 100644
--- a/pkg/front_end/testcases/general/with_dependencies/issue43538/main.dart.strong.expect
+++ b/pkg/front_end/testcases/general/with_dependencies/issue43538/main.dart.strong.expect
@@ -57,3 +57,13 @@
   #C3 = con::B {d:#C1, s:#C2}
   #C4 = 3.14
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///const_lib.dart:
+- _B&A&M. (from org-dartlang-testcase:///const_lib.dart:15:7)
+- A. (from org-dartlang-testcase:///const_lib.dart:6:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+
+org-dartlang-testcase:///main.dart:
+- B. (from org-dartlang-testcase:///const_lib.dart:16:9)
diff --git a/pkg/front_end/testcases/general/with_dependencies/issue43538/main.dart.strong.transformed.expect b/pkg/front_end/testcases/general/with_dependencies/issue43538/main.dart.strong.transformed.expect
index 6100074..42872b5 100644
--- a/pkg/front_end/testcases/general/with_dependencies/issue43538/main.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/with_dependencies/issue43538/main.dart.strong.transformed.expect
@@ -57,3 +57,13 @@
   #C3 = con::B {d:#C1, s:#C2}
   #C4 = 3.14
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///const_lib.dart:
+- _B&A&M. (from org-dartlang-testcase:///const_lib.dart:15:7)
+- A. (from org-dartlang-testcase:///const_lib.dart:6:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+
+org-dartlang-testcase:///main.dart:
+- B. (from org-dartlang-testcase:///const_lib.dart:16:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/DeltaBlue.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/DeltaBlue.dart.weak.expect
index d1cc44e..b7481a0 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/DeltaBlue.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/DeltaBlue.dart.weak.expect
@@ -533,3 +533,9 @@
   #C21 = "required"
   #C22 = self::Strength {value:#C20, name:#C21}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///DeltaBlue.dart:
+- Strength. (from org-dartlang-testcase:///DeltaBlue.dart:61:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/DeltaBlue.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/DeltaBlue.dart.weak.transformed.expect
index d1cc44e..b7481a0 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/DeltaBlue.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/DeltaBlue.dart.weak.transformed.expect
@@ -533,3 +533,9 @@
   #C21 = "required"
   #C22 = self::Strength {value:#C20, name:#C21}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///DeltaBlue.dart:
+- Strength. (from org-dartlang-testcase:///DeltaBlue.dart:61:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/annotation_on_enum_values.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/annotation_on_enum_values.dart.weak.expect
index 742c6ea..a99c562 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/annotation_on_enum_values.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/annotation_on_enum_values.dart.weak.expect
@@ -59,3 +59,10 @@
   #C11 = 42
   #C12 = self::Fisk<core::int*> {x:#C11}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///annotation_on_enum_values.dart:
+- Foo. (from org-dartlang-testcase:///annotation_on_enum_values.dart:17:6)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Fisk.fisk (from org-dartlang-testcase:///annotation_on_enum_values.dart:14:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/annotation_on_enum_values.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/annotation_on_enum_values.dart.weak.transformed.expect
index 742c6ea..a99c562 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/annotation_on_enum_values.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/annotation_on_enum_values.dart.weak.transformed.expect
@@ -59,3 +59,10 @@
   #C11 = 42
   #C12 = self::Fisk<core::int*> {x:#C11}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///annotation_on_enum_values.dart:
+- Foo. (from org-dartlang-testcase:///annotation_on_enum_values.dart:17:6)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Fisk.fisk (from org-dartlang-testcase:///annotation_on_enum_values.dart:14:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/annotation_top.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/annotation_top.dart.weak.expect
index e0a2535..c2cc64e 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/annotation_top.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/annotation_top.dart.weak.expect
@@ -57,3 +57,9 @@
   #C1 = core::Object {}
   #C2 = self::A {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///annotation_top.dart:
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- A. (from org-dartlang-testcase:///annotation_top.dart:14:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/annotation_top.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/annotation_top.dart.weak.transformed.expect
index e0a2535..c2cc64e 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/annotation_top.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/annotation_top.dart.weak.transformed.expect
@@ -57,3 +57,9 @@
   #C1 = core::Object {}
   #C2 = self::A {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///annotation_top.dart:
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- A. (from org-dartlang-testcase:///annotation_top.dart:14:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/annotation_variable_declaration.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/annotation_variable_declaration.dart.weak.expect
index 4c86065..edbab10 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/annotation_variable_declaration.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/annotation_variable_declaration.dart.weak.expect
@@ -60,3 +60,10 @@
   #C2 = self::Bar {}
   #C3 = null
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///annotation_variable_declaration.dart:
+- Bar. (from org-dartlang-testcase:///annotation_variable_declaration.dart:10:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Bar.named (from org-dartlang-testcase:///annotation_variable_declaration.dart:11:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/annotation_variable_declaration.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/annotation_variable_declaration.dart.weak.transformed.expect
index 4c86065..edbab10 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/annotation_variable_declaration.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/annotation_variable_declaration.dart.weak.transformed.expect
@@ -60,3 +60,10 @@
   #C2 = self::Bar {}
   #C3 = null
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///annotation_variable_declaration.dart:
+- Bar. (from org-dartlang-testcase:///annotation_variable_declaration.dart:10:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Bar.named (from org-dartlang-testcase:///annotation_variable_declaration.dart:11:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/bug33099.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/bug33099.dart.weak.expect
index 6e4306c..8ef2a75 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/bug33099.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/bug33099.dart.weak.expect
@@ -82,3 +82,9 @@
   #C1 = self::_FailingTest {}
   #C2 = #foo
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///bug33099.dart:
+- _FailingTest. (from org-dartlang-testcase:///bug33099.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/bug33099.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/bug33099.dart.weak.transformed.expect
index 34304c6..79c9584 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/bug33099.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/bug33099.dart.weak.transformed.expect
@@ -88,3 +88,9 @@
 Extra constant evaluation status:
 Evaluated: TypeLiteral @ org-dartlang-testcase:///bug33099.dart:23:42 -> TypeLiteralConstant(MyTest2*)
 Extra constant evaluation: evaluated: 33, effectively constant: 1
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///bug33099.dart:
+- _FailingTest. (from org-dartlang-testcase:///bug33099.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/const_redirect_to_nonconst.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/const_redirect_to_nonconst.dart.weak.expect
index b3b2c22..d3aac88 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/const_redirect_to_nonconst.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/const_redirect_to_nonconst.dart.weak.expect
@@ -43,3 +43,11 @@
   core::print(new self::A::•());
   core::print(new self::B::•());
 }
+
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///const_redirect_to_nonconst.dart:
+- A. (from org-dartlang-testcase:///const_redirect_to_nonconst.dart:8:9)
+- A.bad (from org-dartlang-testcase:///const_redirect_to_nonconst.dart:10:3)
+- B. (from org-dartlang-testcase:///const_redirect_to_nonconst.dart:14:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/const_redirect_to_nonconst.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/const_redirect_to_nonconst.dart.weak.transformed.expect
index b3b2c22..d3aac88 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/const_redirect_to_nonconst.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/const_redirect_to_nonconst.dart.weak.transformed.expect
@@ -43,3 +43,11 @@
   core::print(new self::A::•());
   core::print(new self::B::•());
 }
+
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///const_redirect_to_nonconst.dart:
+- A. (from org-dartlang-testcase:///const_redirect_to_nonconst.dart:8:9)
+- A.bad (from org-dartlang-testcase:///const_redirect_to_nonconst.dart:10:3)
+- B. (from org-dartlang-testcase:///const_redirect_to_nonconst.dart:14:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/constructor_const_inference.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/constructor_const_inference.dart.weak.expect
index 5bf2809..351fe69 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/constructor_const_inference.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/constructor_const_inference.dart.weak.expect
@@ -48,3 +48,9 @@
 constants  {
   #C1 = self::_Y<Null> {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///constructor_const_inference.dart:
+- _Y. (from org-dartlang-testcase:///constructor_const_inference.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/constructor_const_inference.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/constructor_const_inference.dart.weak.transformed.expect
index 5bf2809..351fe69 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/constructor_const_inference.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/constructor_const_inference.dart.weak.transformed.expect
@@ -48,3 +48,9 @@
 constants  {
   #C1 = self::_Y<Null> {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///constructor_const_inference.dart:
+- _Y. (from org-dartlang-testcase:///constructor_const_inference.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/duplicated_declarations.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/duplicated_declarations.dart.weak.expect
index d6ea288..5c1f0c4 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/duplicated_declarations.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/duplicated_declarations.dart.weak.expect
@@ -676,3 +676,11 @@
   #C31 = self::AnotherEnum {index:#C9, _name:#C30}
   #C32 = <self::AnotherEnum*>[#C27, #C29, #C31]
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///duplicated_declarations.dart:
+- Enum#1. (from org-dartlang-testcase:///duplicated_declarations.dart:83:6)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Enum. (from org-dartlang-testcase:///duplicated_declarations.dart:76:6)
+- AnotherEnum. (from org-dartlang-testcase:///duplicated_declarations.dart:89:6)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_01.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_01.dart.weak.expect
index 01eb26d..a7b3c36 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_01.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_01.dart.weak.expect
@@ -52,3 +52,9 @@
 static method bar() → dynamic {
   invalid-expression "This assertion failed.";
 }
+
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///error_location_01_lib2.dart:
+- Foo. (from org-dartlang-testcase:///error_location_01_lib1.dart:8:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_01.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_01.dart.weak.transformed.expect
index 01eb26d..a7b3c36 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_01.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_01.dart.weak.transformed.expect
@@ -52,3 +52,9 @@
 static method bar() → dynamic {
   invalid-expression "This assertion failed.";
 }
+
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///error_location_01_lib2.dart:
+- Foo. (from org-dartlang-testcase:///error_location_01_lib1.dart:8:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_02.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_02.dart.weak.expect
index 323bb1d..6e25d1b 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_02.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_02.dart.weak.expect
@@ -76,3 +76,9 @@
 import "org-dartlang-testcase:///error_location_02_lib2.dart";
 
 static const field err::Foo* fooField2 = invalid-expression "This assertion failed.";
+
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///error_location_02_lib2.dart:
+- Foo. (from org-dartlang-testcase:///error_location_02_lib1.dart:8:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_02.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_02.dart.weak.transformed.expect
index 323bb1d..6e25d1b 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_02.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_02.dart.weak.transformed.expect
@@ -76,3 +76,9 @@
 import "org-dartlang-testcase:///error_location_02_lib2.dart";
 
 static const field err::Foo* fooField2 = invalid-expression "This assertion failed.";
+
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///error_location_02_lib2.dart:
+- Foo. (from org-dartlang-testcase:///error_location_02_lib1.dart:8:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_03.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_03.dart.weak.expect
index e0eca30..a391e0e 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_03.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_03.dart.weak.expect
@@ -77,3 +77,12 @@
 import "org-dartlang-testcase:///error_location_03_lib1.dart";
 
 static const field err::Foo* fooField2 = invalid-expression "This assertion failed.";
+
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///error_location_03_lib2.dart:
+- Foo. (from org-dartlang-testcase:///error_location_03_lib1.dart:8:9)
+
+org-dartlang-testcase:///error_location_03_lib3.dart:
+- Foo. (from org-dartlang-testcase:///error_location_03_lib1.dart:8:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_03.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_03.dart.weak.transformed.expect
index e0eca30..a391e0e 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_03.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_03.dart.weak.transformed.expect
@@ -77,3 +77,12 @@
 import "org-dartlang-testcase:///error_location_03_lib1.dart";
 
 static const field err::Foo* fooField2 = invalid-expression "This assertion failed.";
+
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///error_location_03_lib2.dart:
+- Foo. (from org-dartlang-testcase:///error_location_03_lib1.dart:8:9)
+
+org-dartlang-testcase:///error_location_03_lib3.dart:
+- Foo. (from org-dartlang-testcase:///error_location_03_lib1.dart:8:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_04.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_04.dart.weak.expect
index eaf451a..3da6aa1 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_04.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_04.dart.weak.expect
@@ -68,3 +68,9 @@
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method bar() → dynamic {}
+
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///error_location_04_lib2.dart:
+- Foo. (from org-dartlang-testcase:///error_location_04_lib1.dart:8:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_04.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_04.dart.weak.transformed.expect
index eaf451a..3da6aa1 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_04.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/error_locations/error_location_04.dart.weak.transformed.expect
@@ -68,3 +68,9 @@
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method bar() → dynamic {}
+
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///error_location_04_lib2.dart:
+- Foo. (from org-dartlang-testcase:///error_location_04_lib1.dart:8:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/expressions.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/expressions.dart.weak.expect
index 9b072b2..7bbd1c85 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/expressions.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/expressions.dart.weak.expect
@@ -93,3 +93,8 @@
   #C1 = null
   #C2 = core::Object {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///expressions.dart:
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/expressions.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/expressions.dart.weak.transformed.expect
index e1c2ce2..cecd1a1 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/expressions.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/expressions.dart.weak.transformed.expect
@@ -102,3 +102,8 @@
 Evaluated: VariableGetImpl @ org-dartlang-testcase:///expressions.dart:74:9 -> TypeLiteralConstant(int*)
 Evaluated: VariableGet @ org-dartlang-testcase:///expressions.dart:74:9 -> TypeLiteralConstant(int*)
 Extra constant evaluation: evaluated: 138, effectively constant: 6
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///expressions.dart:
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/external_import.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/external_import.dart.weak.expect
index 8379e80..ae59d80 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/external_import.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/external_import.dart.weak.expect
@@ -15,3 +15,8 @@
   #C5 = "dart-ext:/usr/local/somewhere"
   #C6 = _in::ExternalName {name:#C5}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///external_import.dart:
+- ExternalName. (from org-dartlang-sdk:///sdk/lib/internal/internal.dart:92:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/external_import.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/external_import.dart.weak.transformed.expect
index 8379e80..ae59d80 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/external_import.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/external_import.dart.weak.transformed.expect
@@ -15,3 +15,8 @@
   #C5 = "dart-ext:/usr/local/somewhere"
   #C6 = _in::ExternalName {name:#C5}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///external_import.dart:
+- ExternalName. (from org-dartlang-sdk:///sdk/lib/internal/internal.dart:92:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/ffi_sample.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/ffi_sample.dart.weak.expect
index a853421..7121f54 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/ffi_sample.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/ffi_sample.dart.weak.expect
@@ -37,3 +37,8 @@
 constants  {
   #C1 = ffi::Double {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///ffi_sample.dart:
+- Double. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:116:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/ffi_sample.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/ffi_sample.dart.weak.transformed.expect
index 324ae5f..5c415f7 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/ffi_sample.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/ffi_sample.dart.weak.transformed.expect
@@ -68,3 +68,8 @@
   #C16 = 16
   #C17 = <core::int*>[#C16, #C16, #C16]
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///ffi_sample.dart:
+- Double. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:116:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/magic_const.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/magic_const.dart.weak.expect
index ce8e878..8429173 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/magic_const.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/magic_const.dart.weak.expect
@@ -69,3 +69,9 @@
 constants  {
   #C1 = self::Constant {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///magic_const.dart:
+- Constant. (from org-dartlang-testcase:///magic_const.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/magic_const.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/magic_const.dart.weak.transformed.expect
index ab4a00c..77abba8 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/magic_const.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/magic_const.dart.weak.transformed.expect
@@ -73,3 +73,9 @@
 Extra constant evaluation status:
 Evaluated: FactoryConstructorInvocationJudgment @ org-dartlang-testcase:///magic_const.dart:23:8 -> BoolConstant(false)
 Extra constant evaluation: evaluated: 2, effectively constant: 1
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///magic_const.dart:
+- Constant. (from org-dartlang-testcase:///magic_const.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/metadata_enum.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/metadata_enum.dart.weak.expect
index b5f94c3..1dd7cb7 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/metadata_enum.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/metadata_enum.dart.weak.expect
@@ -41,3 +41,9 @@
   #C10 = self::E {index:#C8, _name:#C9}
   #C11 = <self::E*>[#C4, #C7, #C10]
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///metadata_enum.dart:
+- E. (from org-dartlang-testcase:///metadata_enum.dart:10:6)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/metadata_enum.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/metadata_enum.dart.weak.transformed.expect
index b5f94c3..1dd7cb7 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/metadata_enum.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/metadata_enum.dart.weak.transformed.expect
@@ -41,3 +41,9 @@
   #C10 = self::E {index:#C8, _name:#C9}
   #C11 = <self::E*>[#C4, #C7, #C10]
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///metadata_enum.dart:
+- E. (from org-dartlang-testcase:///metadata_enum.dart:10:6)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/redirecting_factory_const_inference.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/redirecting_factory_const_inference.dart.weak.expect
index 27deb54..4edee7a 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/redirecting_factory_const_inference.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/redirecting_factory_const_inference.dart.weak.expect
@@ -63,3 +63,9 @@
 constants  {
   #C1 = self::_Y<Null> {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///redirecting_factory_const_inference.dart:
+- _Y. (from org-dartlang-testcase:///redirecting_factory_const_inference.dart:16:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/redirecting_factory_const_inference.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/redirecting_factory_const_inference.dart.weak.transformed.expect
index 4b6b1c0..4ac209c 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/redirecting_factory_const_inference.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/redirecting_factory_const_inference.dart.weak.transformed.expect
@@ -63,3 +63,9 @@
 constants  {
   #C1 = self::_Y<Null> {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///redirecting_factory_const_inference.dart:
+- _Y. (from org-dartlang-testcase:///redirecting_factory_const_inference.dart:16:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/redirection_type_arguments.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/redirection_type_arguments.dart.weak.expect
index c2a1aa6..98086a1 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/redirection_type_arguments.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/redirection_type_arguments.dart.weak.expect
@@ -37,3 +37,10 @@
 constants  {
   #C1 = self::B<core::String*> {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///redirection_type_arguments.dart:
+- B. (from org-dartlang-testcase:///redirection_type_arguments.dart:18:9)
+- A.empty (from org-dartlang-testcase:///redirection_type_arguments.dart:14:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/redirection_type_arguments.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/redirection_type_arguments.dart.weak.transformed.expect
index 78db851..0d879dc 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/redirection_type_arguments.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/redirection_type_arguments.dart.weak.transformed.expect
@@ -37,3 +37,10 @@
 constants  {
   #C1 = self::B<core::String*> {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///redirection_type_arguments.dart:
+- B. (from org-dartlang-testcase:///redirection_type_arguments.dart:18:9)
+- A.empty (from org-dartlang-testcase:///redirection_type_arguments.dart:14:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/type_variable_uses.dart.weak.expect b/pkg/front_end/testcases/general_nnbd_opt_out/type_variable_uses.dart.weak.expect
index 3f3a1f0..1eabb1d 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/type_variable_uses.dart.weak.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/type_variable_uses.dart.weak.expect
@@ -112,3 +112,9 @@
   #C5 = <core::Object*>[#C4]
   #C6 = <core::Object*>[#C1]
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///type_variable_uses.dart:
+- C. (from org-dartlang-testcase:///type_variable_uses.dart:8:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/type_variable_uses.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/type_variable_uses.dart.weak.transformed.expect
index 8deddad..b6e513e 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/type_variable_uses.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/type_variable_uses.dart.weak.transformed.expect
@@ -116,3 +116,9 @@
 Extra constant evaluation status:
 Evaluated: TypeLiteral @ org-dartlang-testcase:///type_variable_uses.dart:10:11 -> TypeLiteralConstant(<invalid>)
 Extra constant evaluation: evaluated: 4, effectively constant: 1
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///type_variable_uses.dart:
+- C. (from org-dartlang-testcase:///type_variable_uses.dart:8:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart.strong.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart.strong.expect
index ef24c30..1aabce1 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart.strong.expect
@@ -26,3 +26,9 @@
   #C1 = 42
   #C2 = self::C<core::int*> {t:#C1}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///constructors_infer_from_arguments_const.dart:
+- C. (from org-dartlang-testcase:///constructors_infer_from_arguments_const.dart:10:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart.strong.transformed.expect
index ef24c30..1aabce1 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart.strong.transformed.expect
@@ -26,3 +26,9 @@
   #C1 = 42
   #C2 = self::C<core::int*> {t:#C1}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///constructors_infer_from_arguments_const.dart:
+- C. (from org-dartlang-testcase:///constructors_infer_from_arguments_const.dart:10:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.strong.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.strong.expect
index a14060b..4fba179 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.strong.expect
@@ -41,3 +41,10 @@
   #C1 = 0
   #C2 = self::C<core::int*> {x:#C1}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///constructors_infer_from_arguments_const_with_upper_bound.dart:
+- C. (from org-dartlang-testcase:///constructors_infer_from_arguments_const_with_upper_bound.dart:10:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- D. (from org-dartlang-testcase:///constructors_infer_from_arguments_const_with_upper_bound.dart:14:9)
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.strong.transformed.expect
index a14060b..4fba179 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.strong.transformed.expect
@@ -41,3 +41,10 @@
   #C1 = 0
   #C2 = self::C<core::int*> {x:#C1}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///constructors_infer_from_arguments_const_with_upper_bound.dart:
+- C. (from org-dartlang-testcase:///constructors_infer_from_arguments_const_with_upper_bound.dart:10:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- D. (from org-dartlang-testcase:///constructors_infer_from_arguments_const_with_upper_bound.dart:14:9)
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations.dart.strong.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations.dart.strong.expect
index bb4970f..406217a 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations.dart.strong.expect
@@ -57,3 +57,10 @@
 constants  {
   #C1 = self::Foo {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///downwards_inference_annotations.dart:
+- Foo. (from org-dartlang-testcase:///downwards_inference_annotations.dart:9:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Foo.named (from org-dartlang-testcase:///downwards_inference_annotations.dart:10:9)
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations.dart.strong.transformed.expect
index bb4970f..406217a 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations.dart.strong.transformed.expect
@@ -57,3 +57,10 @@
 constants  {
   #C1 = self::Foo {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///downwards_inference_annotations.dart:
+- Foo. (from org-dartlang-testcase:///downwards_inference_annotations.dart:9:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Foo.named (from org-dartlang-testcase:///downwards_inference_annotations.dart:10:9)
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart.strong.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart.strong.expect
index 65e5724..e236f0a 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart.strong.expect
@@ -42,3 +42,9 @@
 constants  {
   #C1 = self::Foo {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///downwards_inference_annotations_class_members.dart:
+- Foo. (from org-dartlang-testcase:///downwards_inference_annotations_class_members.dart:9:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart.strong.transformed.expect
index 65e5724..e236f0a 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart.strong.transformed.expect
@@ -42,3 +42,9 @@
 constants  {
   #C1 = self::Foo {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///downwards_inference_annotations_class_members.dart:
+- Foo. (from org-dartlang-testcase:///downwards_inference_annotations_class_members.dart:9:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart.strong.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart.strong.expect
index ae4549c..f299988 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart.strong.expect
@@ -28,3 +28,9 @@
 constants  {
   #C1 = self::Foo {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///downwards_inference_annotations_for_loop_variable.dart:
+- Foo. (from org-dartlang-testcase:///downwards_inference_annotations_for_loop_variable.dart:9:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart.strong.transformed.expect
index 25d38f1..aab6819 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart.strong.transformed.expect
@@ -33,3 +33,9 @@
 constants  {
   #C1 = self::Foo {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///downwards_inference_annotations_for_loop_variable.dart:
+- Foo. (from org-dartlang-testcase:///downwards_inference_annotations_for_loop_variable.dart:9:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_locals.dart.strong.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_locals.dart.strong.expect
index 850b5e9..07804e7 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_locals.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_locals.dart.strong.expect
@@ -27,3 +27,9 @@
 constants  {
   #C1 = self::Foo {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///downwards_inference_annotations_locals.dart:
+- Foo. (from org-dartlang-testcase:///downwards_inference_annotations_locals.dart:9:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_locals.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_locals.dart.strong.transformed.expect
index 850b5e9..07804e7 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_locals.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_locals.dart.strong.transformed.expect
@@ -27,3 +27,9 @@
 constants  {
   #C1 = self::Foo {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///downwards_inference_annotations_locals.dart:
+- Foo. (from org-dartlang-testcase:///downwards_inference_annotations_locals.dart:9:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_locals_referring_to_locals.dart.strong.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_locals_referring_to_locals.dart.strong.expect
index 4d10ffe..c062ee7 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_locals_referring_to_locals.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_locals_referring_to_locals.dart.strong.expect
@@ -28,3 +28,9 @@
 constants  {
   #C1 = self::Foo {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///downwards_inference_annotations_locals_referring_to_locals.dart:
+- Foo. (from org-dartlang-testcase:///downwards_inference_annotations_locals_referring_to_locals.dart:9:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_locals_referring_to_locals.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_locals_referring_to_locals.dart.strong.transformed.expect
index 4d10ffe..c062ee7 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_locals_referring_to_locals.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_locals_referring_to_locals.dart.strong.transformed.expect
@@ -28,3 +28,9 @@
 constants  {
   #C1 = self::Foo {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///downwards_inference_annotations_locals_referring_to_locals.dart:
+- Foo. (from org-dartlang-testcase:///downwards_inference_annotations_locals_referring_to_locals.dart:9:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter.dart.strong.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter.dart.strong.expect
index c34abe5..c591108 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter.dart.strong.expect
@@ -39,3 +39,9 @@
 constants  {
   #C1 = self::Foo {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///downwards_inference_annotations_parameter.dart:
+- Foo. (from org-dartlang-testcase:///downwards_inference_annotations_parameter.dart:9:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter.dart.strong.transformed.expect
index c34abe5..c591108 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter.dart.strong.transformed.expect
@@ -39,3 +39,9 @@
 constants  {
   #C1 = self::Foo {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///downwards_inference_annotations_parameter.dart:
+- Foo. (from org-dartlang-testcase:///downwards_inference_annotations_parameter.dart:9:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.strong.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.strong.expect
index 2bd8ed8..1322c61 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.strong.expect
@@ -26,3 +26,9 @@
 constants  {
   #C1 = self::Foo {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///downwards_inference_annotations_parameter_local.dart:
+- Foo. (from org-dartlang-testcase:///downwards_inference_annotations_parameter_local.dart:9:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.strong.transformed.expect
index 2bd8ed8..1322c61 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.strong.transformed.expect
@@ -26,3 +26,9 @@
 constants  {
   #C1 = self::Foo {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///downwards_inference_annotations_parameter_local.dart:
+- Foo. (from org-dartlang-testcase:///downwards_inference_annotations_parameter_local.dart:9:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.strong.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.strong.expect
index ebb93a8..3fd9e29 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.strong.expect
@@ -26,3 +26,9 @@
 constants  {
   #C1 = self::Foo {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///downwards_inference_annotations_type_variable_local.dart:
+- Foo. (from org-dartlang-testcase:///downwards_inference_annotations_type_variable_local.dart:9:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.strong.transformed.expect
index ebb93a8..3fd9e29 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.strong.transformed.expect
@@ -26,3 +26,9 @@
 constants  {
   #C1 = self::Foo {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///downwards_inference_annotations_type_variable_local.dart:
+- Foo. (from org-dartlang-testcase:///downwards_inference_annotations_type_variable_local.dart:9:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_typedef.dart.strong.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_typedef.dart.strong.expect
index 05db32f..8ed30e8 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_typedef.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_typedef.dart.strong.expect
@@ -24,3 +24,9 @@
 constants  {
   #C1 = self::Foo {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///downwards_inference_annotations_typedef.dart:
+- Foo. (from org-dartlang-testcase:///downwards_inference_annotations_typedef.dart:9:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_typedef.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_typedef.dart.strong.transformed.expect
index 05db32f..8ed30e8 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_typedef.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_typedef.dart.strong.transformed.expect
@@ -24,3 +24,9 @@
 constants  {
   #C1 = self::Foo {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///downwards_inference_annotations_typedef.dart:
+- Foo. (from org-dartlang-testcase:///downwards_inference_annotations_typedef.dart:9:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.strong.expect b/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.strong.expect
index d291d40..f1c84c4 100644
--- a/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.strong.expect
@@ -33,3 +33,9 @@
   #C3 = self::E {index:#C1, _name:#C2}
   #C4 = <self::E*>[#C3]
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///inferred_type_is_enum.dart:
+- E. (from org-dartlang-testcase:///inferred_type_is_enum.dart:8:6)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.strong.transformed.expect
index d291d40..f1c84c4 100644
--- a/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.strong.transformed.expect
@@ -33,3 +33,9 @@
   #C3 = self::E {index:#C1, _name:#C2}
   #C4 = <self::E*>[#C3]
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///inferred_type_is_enum.dart:
+- E. (from org-dartlang-testcase:///inferred_type_is_enum.dart:8:6)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.strong.expect b/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.strong.expect
index 3eb7ad4..a2a3083 100644
--- a/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.strong.expect
@@ -33,3 +33,9 @@
   #C3 = self::E {index:#C1, _name:#C2}
   #C4 = <self::E*>[#C3]
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///inferred_type_is_enum_values.dart:
+- E. (from org-dartlang-testcase:///inferred_type_is_enum_values.dart:8:6)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.strong.transformed.expect
index 3eb7ad4..a2a3083 100644
--- a/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.strong.transformed.expect
@@ -33,3 +33,9 @@
   #C3 = self::E {index:#C1, _name:#C2}
   #C4 = <self::E*>[#C3]
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///inferred_type_is_enum_values.dart:
+- E. (from org-dartlang-testcase:///inferred_type_is_enum_values.dart:8:6)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/inference_new/const_invocation.dart.strong.expect b/pkg/front_end/testcases/inference_new/const_invocation.dart.strong.expect
index fbcc92b..2efb0fc 100644
--- a/pkg/front_end/testcases/inference_new/const_invocation.dart.strong.expect
+++ b/pkg/front_end/testcases/inference_new/const_invocation.dart.strong.expect
@@ -65,3 +65,9 @@
   #C9 = core::_ImmutableMap<(core::Object*) →* Null, Null> {_kvPairs:#C7}
   #C10 = core::_ImmutableMap<Null, (core::Object*) →* Null> {_kvPairs:#C7}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///const_invocation.dart:
+- Bar. (from org-dartlang-testcase:///const_invocation.dart:24:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/inference_new/const_invocation.dart.strong.transformed.expect b/pkg/front_end/testcases/inference_new/const_invocation.dart.strong.transformed.expect
index fbcc92b..2efb0fc 100644
--- a/pkg/front_end/testcases/inference_new/const_invocation.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/const_invocation.dart.strong.transformed.expect
@@ -65,3 +65,9 @@
   #C9 = core::_ImmutableMap<(core::Object*) →* Null, Null> {_kvPairs:#C7}
   #C10 = core::_ImmutableMap<Null, (core::Object*) →* Null> {_kvPairs:#C7}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///const_invocation.dart:
+- Bar. (from org-dartlang-testcase:///const_invocation.dart:24:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/inference_new/switch.dart.strong.expect b/pkg/front_end/testcases/inference_new/switch.dart.strong.expect
index 027ced3..d85eb28 100644
--- a/pkg/front_end/testcases/inference_new/switch.dart.strong.expect
+++ b/pkg/front_end/testcases/inference_new/switch.dart.strong.expect
@@ -41,3 +41,9 @@
 constants  {
   #C1 = self::C<core::int*> {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///switch.dart:
+- C. (from org-dartlang-testcase:///switch.dart:11:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/inference_new/switch.dart.strong.transformed.expect b/pkg/front_end/testcases/inference_new/switch.dart.strong.transformed.expect
index 027ced3..d85eb28 100644
--- a/pkg/front_end/testcases/inference_new/switch.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/switch.dart.strong.transformed.expect
@@ -41,3 +41,9 @@
 constants  {
   #C1 = self::C<core::int*> {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///switch.dart:
+- C. (from org-dartlang-testcase:///switch.dart:11:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/late_lowering/late_annotations.dart.strong.expect b/pkg/front_end/testcases/late_lowering/late_annotations.dart.strong.expect
index 3adbaa8..ed2533d 100644
--- a/pkg/front_end/testcases/late_lowering/late_annotations.dart.strong.expect
+++ b/pkg/front_end/testcases/late_lowering/late_annotations.dart.strong.expect
@@ -170,3 +170,9 @@
 constants  {
   #C1 = self::Annotation {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///late_annotations.dart:
+- Annotation. (from org-dartlang-testcase:///late_annotations.dart:6:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/late_lowering/late_annotations.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/late_annotations.dart.strong.transformed.expect
index f9033f9..5956226 100644
--- a/pkg/front_end/testcases/late_lowering/late_annotations.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_annotations.dart.strong.transformed.expect
@@ -179,3 +179,9 @@
 Evaluated: VariableGet @ org-dartlang-testcase:///late_annotations.dart:16:16 -> IntConstant(0)
 Evaluated: VariableGet @ org-dartlang-testcase:///late_annotations.dart:72:25 -> IntConstant(0)
 Extra constant evaluation: evaluated: 268, effectively constant: 6
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///late_annotations.dart:
+- Annotation. (from org-dartlang-testcase:///late_annotations.dart:6:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/late_lowering/late_annotations.dart.weak.expect b/pkg/front_end/testcases/late_lowering/late_annotations.dart.weak.expect
index ad7345c..374a96b 100644
--- a/pkg/front_end/testcases/late_lowering/late_annotations.dart.weak.expect
+++ b/pkg/front_end/testcases/late_lowering/late_annotations.dart.weak.expect
@@ -269,3 +269,9 @@
 constants  {
   #C1 = self::Annotation {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///late_annotations.dart:
+- Annotation. (from org-dartlang-testcase:///late_annotations.dart:6:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/late_lowering/late_annotations.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/late_annotations.dart.weak.transformed.expect
index ad7345c..374a96b 100644
--- a/pkg/front_end/testcases/late_lowering/late_annotations.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/late_annotations.dart.weak.transformed.expect
@@ -269,3 +269,9 @@
 constants  {
   #C1 = self::Annotation {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///late_annotations.dart:
+- Annotation. (from org-dartlang-testcase:///late_annotations.dart:6:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.strong.expect b/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.strong.expect
index a4b4cdc..36965cc 100644
--- a/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.strong.expect
@@ -385,3 +385,9 @@
 constants  {
   #C1 = self::A {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///assignability_error_messages.dart:
+- A. (from org-dartlang-testcase:///assignability_error_messages.dart:11:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.strong.transformed.expect
index d02c7bc..78c374f 100644
--- a/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.strong.transformed.expect
@@ -467,3 +467,9 @@
 Evaluated: VariableGet @ org-dartlang-testcase:///assignability_error_messages.dart:77:14 -> NullConstant(null)
 Evaluated: VariableGet @ org-dartlang-testcase:///assignability_error_messages.dart:77:14 -> NullConstant(null)
 Extra constant evaluation: evaluated: 210, effectively constant: 12
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///assignability_error_messages.dart:
+- A. (from org-dartlang-testcase:///assignability_error_messages.dart:11:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.weak.expect b/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.weak.expect
index a4b4cdc..36965cc 100644
--- a/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.weak.expect
@@ -385,3 +385,9 @@
 constants  {
   #C1 = self::A {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///assignability_error_messages.dart:
+- A. (from org-dartlang-testcase:///assignability_error_messages.dart:11:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.weak.transformed.expect
index 9ec61e2..1dac388 100644
--- a/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.weak.transformed.expect
@@ -452,3 +452,9 @@
 constants  {
   #C1 = self::A {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///assignability_error_messages.dart:
+- A. (from org-dartlang-testcase:///assignability_error_messages.dart:11:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/nnbd/constant_null_check.dart.strong.expect b/pkg/front_end/testcases/nnbd/constant_null_check.dart.strong.expect
index a0b9eae..a7da242 100644
--- a/pkg/front_end/testcases/nnbd/constant_null_check.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/constant_null_check.dart.strong.expect
@@ -52,3 +52,9 @@
   #C2 = null
   #C3 = self::Class {y:#C1}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///constant_null_check.dart:
+- Class. (from org-dartlang-testcase:///constant_null_check.dart:13:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/nnbd/constant_null_check.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/constant_null_check.dart.strong.transformed.expect
index a0b9eae..a7da242 100644
--- a/pkg/front_end/testcases/nnbd/constant_null_check.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/constant_null_check.dart.strong.transformed.expect
@@ -52,3 +52,9 @@
   #C2 = null
   #C3 = self::Class {y:#C1}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///constant_null_check.dart:
+- Class. (from org-dartlang-testcase:///constant_null_check.dart:13:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/nnbd/constant_null_check.dart.weak.expect b/pkg/front_end/testcases/nnbd/constant_null_check.dart.weak.expect
index a0b9eae..a7da242 100644
--- a/pkg/front_end/testcases/nnbd/constant_null_check.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/constant_null_check.dart.weak.expect
@@ -52,3 +52,9 @@
   #C2 = null
   #C3 = self::Class {y:#C1}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///constant_null_check.dart:
+- Class. (from org-dartlang-testcase:///constant_null_check.dart:13:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/nnbd/constant_null_check.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/constant_null_check.dart.weak.transformed.expect
index a0b9eae..a7da242 100644
--- a/pkg/front_end/testcases/nnbd/constant_null_check.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/constant_null_check.dart.weak.transformed.expect
@@ -52,3 +52,9 @@
   #C2 = null
   #C3 = self::Class {y:#C1}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///constant_null_check.dart:
+- Class. (from org-dartlang-testcase:///constant_null_check.dart:13:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/nnbd/constant_null_is.dart.strong.expect b/pkg/front_end/testcases/nnbd/constant_null_is.dart.strong.expect
index fd5c283..59d1cde 100644
--- a/pkg/front_end/testcases/nnbd/constant_null_is.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/constant_null_is.dart.strong.expect
@@ -91,3 +91,12 @@
   #C8 = self::Class<core::int?> {field:#C3}
   #C9 = self::Class<Null> {field:#C3}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///constant_null_is.dart:
+- Class.constructor1 (from org-dartlang-testcase:///constant_null_is.dart:38:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Class.constructor2 (from org-dartlang-testcase:///constant_null_is.dart:39:9)
+- Class.constructor3 (from org-dartlang-testcase:///constant_null_is.dart:40:9)
+- Class.constructor4 (from org-dartlang-testcase:///constant_null_is.dart:41:9)
diff --git a/pkg/front_end/testcases/nnbd/constant_null_is.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/constant_null_is.dart.strong.transformed.expect
index a6548c6..fcfad8f 100644
--- a/pkg/front_end/testcases/nnbd/constant_null_is.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/constant_null_is.dart.strong.transformed.expect
@@ -108,3 +108,12 @@
 Evaluated: IsExpression @ org-dartlang-testcase:///constant_null_is.dart:57:15 -> BoolConstant(true)
 Evaluated: IsExpression @ org-dartlang-testcase:///constant_null_is.dart:7:40 -> BoolConstant(false)
 Extra constant evaluation: evaluated: 102, effectively constant: 14
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///constant_null_is.dart:
+- Class.constructor1 (from org-dartlang-testcase:///constant_null_is.dart:38:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Class.constructor2 (from org-dartlang-testcase:///constant_null_is.dart:39:9)
+- Class.constructor3 (from org-dartlang-testcase:///constant_null_is.dart:40:9)
+- Class.constructor4 (from org-dartlang-testcase:///constant_null_is.dart:41:9)
diff --git a/pkg/front_end/testcases/nnbd/constant_null_is.dart.weak.expect b/pkg/front_end/testcases/nnbd/constant_null_is.dart.weak.expect
index 5ff7516..a91178d 100644
--- a/pkg/front_end/testcases/nnbd/constant_null_is.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/constant_null_is.dart.weak.expect
@@ -89,3 +89,12 @@
   #C6 = self::Class<core::int*> {field:#C2}
   #C7 = self::Class<Null> {field:#C3}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///constant_null_is.dart:
+- Class.constructor1 (from org-dartlang-testcase:///constant_null_is.dart:38:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Class.constructor2 (from org-dartlang-testcase:///constant_null_is.dart:39:9)
+- Class.constructor3 (from org-dartlang-testcase:///constant_null_is.dart:40:9)
+- Class.constructor4 (from org-dartlang-testcase:///constant_null_is.dart:41:9)
diff --git a/pkg/front_end/testcases/nnbd/constant_null_is.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/constant_null_is.dart.weak.transformed.expect
index 72bc3fa..c1bd54d 100644
--- a/pkg/front_end/testcases/nnbd/constant_null_is.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/constant_null_is.dart.weak.transformed.expect
@@ -106,3 +106,12 @@
 Evaluated: IsExpression @ org-dartlang-testcase:///constant_null_is.dart:57:15 -> BoolConstant(true)
 Evaluated: IsExpression @ org-dartlang-testcase:///constant_null_is.dart:7:40 -> BoolConstant(true)
 Extra constant evaluation: evaluated: 102, effectively constant: 14
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///constant_null_is.dart:
+- Class.constructor1 (from org-dartlang-testcase:///constant_null_is.dart:38:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Class.constructor2 (from org-dartlang-testcase:///constant_null_is.dart:39:9)
+- Class.constructor3 (from org-dartlang-testcase:///constant_null_is.dart:40:9)
+- Class.constructor4 (from org-dartlang-testcase:///constant_null_is.dart:41:9)
diff --git a/pkg/front_end/testcases/nnbd/constants.dart.strong.expect b/pkg/front_end/testcases/nnbd/constants.dart.strong.expect
index d2ed836..7f4ce82 100644
--- a/pkg/front_end/testcases/nnbd/constants.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/constants.dart.strong.expect
@@ -106,3 +106,12 @@
   #C16 = true
   #C17 = tearoff core::identical
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///constants.dart:
+- Class. (from org-dartlang-testcase:///constants_lib.dart:8:9)
+
+org-dartlang-testcase:///constants_lib.dart:
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Class. (from org-dartlang-testcase:///constants_lib.dart:8:9)
diff --git a/pkg/front_end/testcases/nnbd/constants.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/constants.dart.strong.transformed.expect
index d2ed836..7f4ce82 100644
--- a/pkg/front_end/testcases/nnbd/constants.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/constants.dart.strong.transformed.expect
@@ -106,3 +106,12 @@
   #C16 = true
   #C17 = tearoff core::identical
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///constants.dart:
+- Class. (from org-dartlang-testcase:///constants_lib.dart:8:9)
+
+org-dartlang-testcase:///constants_lib.dart:
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Class. (from org-dartlang-testcase:///constants_lib.dart:8:9)
diff --git a/pkg/front_end/testcases/nnbd/constants.dart.weak.expect b/pkg/front_end/testcases/nnbd/constants.dart.weak.expect
index be9f59d..10a3692 100644
--- a/pkg/front_end/testcases/nnbd/constants.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/constants.dart.weak.expect
@@ -106,3 +106,12 @@
   #C16 = true
   #C17 = tearoff core::identical
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///constants.dart:
+- Class. (from org-dartlang-testcase:///constants_lib.dart:8:9)
+
+org-dartlang-testcase:///constants_lib.dart:
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Class. (from org-dartlang-testcase:///constants_lib.dart:8:9)
diff --git a/pkg/front_end/testcases/nnbd/constants.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/constants.dart.weak.transformed.expect
index be9f59d..10a3692 100644
--- a/pkg/front_end/testcases/nnbd/constants.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/constants.dart.weak.transformed.expect
@@ -106,3 +106,12 @@
   #C16 = true
   #C17 = tearoff core::identical
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///constants.dart:
+- Class. (from org-dartlang-testcase:///constants_lib.dart:8:9)
+
+org-dartlang-testcase:///constants_lib.dart:
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Class. (from org-dartlang-testcase:///constants_lib.dart:8:9)
diff --git a/pkg/front_end/testcases/nnbd/external_fields.dart.strong.expect b/pkg/front_end/testcases/nnbd/external_fields.dart.strong.expect
index cbc138b..6fb233a 100644
--- a/pkg/front_end/testcases/nnbd/external_fields.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/external_fields.dart.strong.expect
@@ -123,3 +123,9 @@
 constants  {
   #C1 = self::Annotation {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///external_fields.dart:
+- Annotation. (from org-dartlang-testcase:///external_fields.dart:6:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/nnbd/external_fields.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/external_fields.dart.strong.transformed.expect
index cbc138b..6fb233a 100644
--- a/pkg/front_end/testcases/nnbd/external_fields.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/external_fields.dart.strong.transformed.expect
@@ -123,3 +123,9 @@
 constants  {
   #C1 = self::Annotation {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///external_fields.dart:
+- Annotation. (from org-dartlang-testcase:///external_fields.dart:6:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/nnbd/external_fields.dart.weak.expect b/pkg/front_end/testcases/nnbd/external_fields.dart.weak.expect
index cbc138b..6fb233a 100644
--- a/pkg/front_end/testcases/nnbd/external_fields.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/external_fields.dart.weak.expect
@@ -123,3 +123,9 @@
 constants  {
   #C1 = self::Annotation {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///external_fields.dart:
+- Annotation. (from org-dartlang-testcase:///external_fields.dart:6:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/nnbd/external_fields.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/external_fields.dart.weak.transformed.expect
index cbc138b..6fb233a 100644
--- a/pkg/front_end/testcases/nnbd/external_fields.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/external_fields.dart.weak.transformed.expect
@@ -123,3 +123,9 @@
 constants  {
   #C1 = self::Annotation {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///external_fields.dart:
+- Annotation. (from org-dartlang-testcase:///external_fields.dart:6:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/nnbd/nullable_access.dart.strong.expect b/pkg/front_end/testcases/nnbd/nullable_access.dart.strong.expect
index 3b43c3b..464c9cb 100644
--- a/pkg/front_end/testcases/nnbd/nullable_access.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/nullable_access.dart.strong.expect
@@ -58,3 +58,9 @@
 constants  {
   #C1 = self::A {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///nullable_access.dart:
+- A. (from org-dartlang-testcase:///nullable_access.dart:16:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/nnbd/nullable_access.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/nullable_access.dart.strong.transformed.expect
index 3b43c3b..464c9cb 100644
--- a/pkg/front_end/testcases/nnbd/nullable_access.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/nullable_access.dart.strong.transformed.expect
@@ -58,3 +58,9 @@
 constants  {
   #C1 = self::A {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///nullable_access.dart:
+- A. (from org-dartlang-testcase:///nullable_access.dart:16:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/nnbd/nullable_access.dart.weak.expect b/pkg/front_end/testcases/nnbd/nullable_access.dart.weak.expect
index 3b43c3b..464c9cb 100644
--- a/pkg/front_end/testcases/nnbd/nullable_access.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/nullable_access.dart.weak.expect
@@ -58,3 +58,9 @@
 constants  {
   #C1 = self::A {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///nullable_access.dart:
+- A. (from org-dartlang-testcase:///nullable_access.dart:16:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/nnbd/nullable_access.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/nullable_access.dart.weak.transformed.expect
index 3b43c3b..464c9cb 100644
--- a/pkg/front_end/testcases/nnbd/nullable_access.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/nullable_access.dart.weak.transformed.expect
@@ -58,3 +58,9 @@
 constants  {
   #C1 = self::A {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///nullable_access.dart:
+- A. (from org-dartlang-testcase:///nullable_access.dart:16:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/nnbd/potentially_constant_type_as.dart.strong.expect b/pkg/front_end/testcases/nnbd/potentially_constant_type_as.dart.strong.expect
index f6d9603..0aec1b2 100644
--- a/pkg/front_end/testcases/nnbd/potentially_constant_type_as.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/potentially_constant_type_as.dart.strong.expect
@@ -254,3 +254,13 @@
   #C28 = self::ClassWithFunction<core::int> {field:#C27}
   #C29 = self::ClassWithFunction<core::int> {field:#C3}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///potentially_constant_type_as.dart:
+- Class. (from org-dartlang-testcase:///potentially_constant_type_as.dart:16:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- ClassWithBound. (from org-dartlang-testcase:///potentially_constant_type_as.dart:22:9)
+- ClassWithBound.withValue (from org-dartlang-testcase:///potentially_constant_type_as.dart:24:9)
+- ClassWithList. (from org-dartlang-testcase:///potentially_constant_type_as.dart:30:9)
+- ClassWithFunction. (from org-dartlang-testcase:///potentially_constant_type_as.dart:36:9)
diff --git a/pkg/front_end/testcases/nnbd/potentially_constant_type_as.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/potentially_constant_type_as.dart.strong.transformed.expect
index f6d9603..0aec1b2 100644
--- a/pkg/front_end/testcases/nnbd/potentially_constant_type_as.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/potentially_constant_type_as.dart.strong.transformed.expect
@@ -254,3 +254,13 @@
   #C28 = self::ClassWithFunction<core::int> {field:#C27}
   #C29 = self::ClassWithFunction<core::int> {field:#C3}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///potentially_constant_type_as.dart:
+- Class. (from org-dartlang-testcase:///potentially_constant_type_as.dart:16:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- ClassWithBound. (from org-dartlang-testcase:///potentially_constant_type_as.dart:22:9)
+- ClassWithBound.withValue (from org-dartlang-testcase:///potentially_constant_type_as.dart:24:9)
+- ClassWithList. (from org-dartlang-testcase:///potentially_constant_type_as.dart:30:9)
+- ClassWithFunction. (from org-dartlang-testcase:///potentially_constant_type_as.dart:36:9)
diff --git a/pkg/front_end/testcases/nnbd/potentially_constant_type_as.dart.weak.expect b/pkg/front_end/testcases/nnbd/potentially_constant_type_as.dart.weak.expect
index 03c1430..26e7b42 100644
--- a/pkg/front_end/testcases/nnbd/potentially_constant_type_as.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/potentially_constant_type_as.dart.weak.expect
@@ -246,3 +246,13 @@
   #C29 = self::ClassWithFunction<core::int*> {field:#C3}
   #C30 = self::ClassWithFunction<core::Object*> {field:#C24}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///potentially_constant_type_as.dart:
+- Class. (from org-dartlang-testcase:///potentially_constant_type_as.dart:16:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- ClassWithBound. (from org-dartlang-testcase:///potentially_constant_type_as.dart:22:9)
+- ClassWithBound.withValue (from org-dartlang-testcase:///potentially_constant_type_as.dart:24:9)
+- ClassWithList. (from org-dartlang-testcase:///potentially_constant_type_as.dart:30:9)
+- ClassWithFunction. (from org-dartlang-testcase:///potentially_constant_type_as.dart:36:9)
diff --git a/pkg/front_end/testcases/nnbd/potentially_constant_type_as.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/potentially_constant_type_as.dart.weak.transformed.expect
index 03c1430..26e7b42 100644
--- a/pkg/front_end/testcases/nnbd/potentially_constant_type_as.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/potentially_constant_type_as.dart.weak.transformed.expect
@@ -246,3 +246,13 @@
   #C29 = self::ClassWithFunction<core::int*> {field:#C3}
   #C30 = self::ClassWithFunction<core::Object*> {field:#C24}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///potentially_constant_type_as.dart:
+- Class. (from org-dartlang-testcase:///potentially_constant_type_as.dart:16:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- ClassWithBound. (from org-dartlang-testcase:///potentially_constant_type_as.dart:22:9)
+- ClassWithBound.withValue (from org-dartlang-testcase:///potentially_constant_type_as.dart:24:9)
+- ClassWithList. (from org-dartlang-testcase:///potentially_constant_type_as.dart:30:9)
+- ClassWithFunction. (from org-dartlang-testcase:///potentially_constant_type_as.dart:36:9)
diff --git a/pkg/front_end/testcases/nnbd/potentially_constant_type_is.dart.strong.expect b/pkg/front_end/testcases/nnbd/potentially_constant_type_is.dart.strong.expect
index 8ff2377..3b5e4e3 100644
--- a/pkg/front_end/testcases/nnbd/potentially_constant_type_is.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/potentially_constant_type_is.dart.strong.expect
@@ -113,3 +113,13 @@
   #C32 = self::ClassWithFunction<core::num> {field:#C19}
   #C33 = self::ClassWithFunction<core::int> {field:#C19}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///potentially_constant_type_is.dart:
+- Class. (from org-dartlang-testcase:///potentially_constant_type_is.dart:16:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- ClassWithBound. (from org-dartlang-testcase:///potentially_constant_type_is.dart:22:9)
+- ClassWithBound.withValue (from org-dartlang-testcase:///potentially_constant_type_is.dart:24:9)
+- ClassWithList. (from org-dartlang-testcase:///potentially_constant_type_is.dart:30:9)
+- ClassWithFunction. (from org-dartlang-testcase:///potentially_constant_type_is.dart:36:9)
diff --git a/pkg/front_end/testcases/nnbd/potentially_constant_type_is.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/potentially_constant_type_is.dart.strong.transformed.expect
index 8ff2377..3b5e4e3 100644
--- a/pkg/front_end/testcases/nnbd/potentially_constant_type_is.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/potentially_constant_type_is.dart.strong.transformed.expect
@@ -113,3 +113,13 @@
   #C32 = self::ClassWithFunction<core::num> {field:#C19}
   #C33 = self::ClassWithFunction<core::int> {field:#C19}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///potentially_constant_type_is.dart:
+- Class. (from org-dartlang-testcase:///potentially_constant_type_is.dart:16:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- ClassWithBound. (from org-dartlang-testcase:///potentially_constant_type_is.dart:22:9)
+- ClassWithBound.withValue (from org-dartlang-testcase:///potentially_constant_type_is.dart:24:9)
+- ClassWithList. (from org-dartlang-testcase:///potentially_constant_type_is.dart:30:9)
+- ClassWithFunction. (from org-dartlang-testcase:///potentially_constant_type_is.dart:36:9)
diff --git a/pkg/front_end/testcases/nnbd/potentially_constant_type_is.dart.weak.expect b/pkg/front_end/testcases/nnbd/potentially_constant_type_is.dart.weak.expect
index 839df94..11e676f 100644
--- a/pkg/front_end/testcases/nnbd/potentially_constant_type_is.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/potentially_constant_type_is.dart.weak.expect
@@ -113,3 +113,13 @@
   #C32 = self::ClassWithFunction<core::num*> {field:#C19}
   #C33 = self::ClassWithFunction<core::int*> {field:#C19}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///potentially_constant_type_is.dart:
+- Class. (from org-dartlang-testcase:///potentially_constant_type_is.dart:16:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- ClassWithBound. (from org-dartlang-testcase:///potentially_constant_type_is.dart:22:9)
+- ClassWithBound.withValue (from org-dartlang-testcase:///potentially_constant_type_is.dart:24:9)
+- ClassWithList. (from org-dartlang-testcase:///potentially_constant_type_is.dart:30:9)
+- ClassWithFunction. (from org-dartlang-testcase:///potentially_constant_type_is.dart:36:9)
diff --git a/pkg/front_end/testcases/nnbd/potentially_constant_type_is.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/potentially_constant_type_is.dart.weak.transformed.expect
index 839df94..11e676f 100644
--- a/pkg/front_end/testcases/nnbd/potentially_constant_type_is.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/potentially_constant_type_is.dart.weak.transformed.expect
@@ -113,3 +113,13 @@
   #C32 = self::ClassWithFunction<core::num*> {field:#C19}
   #C33 = self::ClassWithFunction<core::int*> {field:#C19}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///potentially_constant_type_is.dart:
+- Class. (from org-dartlang-testcase:///potentially_constant_type_is.dart:16:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- ClassWithBound. (from org-dartlang-testcase:///potentially_constant_type_is.dart:22:9)
+- ClassWithBound.withValue (from org-dartlang-testcase:///potentially_constant_type_is.dart:24:9)
+- ClassWithList. (from org-dartlang-testcase:///potentially_constant_type_is.dart:30:9)
+- ClassWithFunction. (from org-dartlang-testcase:///potentially_constant_type_is.dart:36:9)
diff --git a/pkg/front_end/testcases/nnbd/return_null.dart.strong.expect b/pkg/front_end/testcases/nnbd/return_null.dart.strong.expect
index ad7fa70..96efba5 100644
--- a/pkg/front_end/testcases/nnbd/return_null.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/return_null.dart.strong.expect
@@ -230,3 +230,9 @@
   #C6 = self::Enum {index:#C4, _name:#C5}
   #C7 = <self::Enum>[#C3, #C6]
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///return_null.dart:
+- Enum. (from org-dartlang-testcase:///return_null.dart:43:6)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/nnbd/return_null.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/return_null.dart.strong.transformed.expect
index dfdc501..84c1ee6 100644
--- a/pkg/front_end/testcases/nnbd/return_null.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/return_null.dart.strong.transformed.expect
@@ -643,3 +643,9 @@
 Evaluated: VariableGet @ org-dartlang-testcase:///return_null.dart:75:14 -> NullConstant(null)
 Evaluated: VariableGet @ org-dartlang-testcase:///return_null.dart:75:14 -> NullConstant(null)
 Extra constant evaluation: evaluated: 394, effectively constant: 12
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///return_null.dart:
+- Enum. (from org-dartlang-testcase:///return_null.dart:43:6)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/nnbd/return_null.dart.weak.expect b/pkg/front_end/testcases/nnbd/return_null.dart.weak.expect
index e747dfe..a0d272c 100644
--- a/pkg/front_end/testcases/nnbd/return_null.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/return_null.dart.weak.expect
@@ -237,3 +237,9 @@
   #C6 = self::Enum {index:#C4, _name:#C5}
   #C7 = <self::Enum*>[#C3, #C6]
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///return_null.dart:
+- Enum. (from org-dartlang-testcase:///return_null.dart:43:6)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/nnbd/return_null.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/return_null.dart.weak.transformed.expect
index 0c0ae45..66e2a7a 100644
--- a/pkg/front_end/testcases/nnbd/return_null.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/return_null.dart.weak.transformed.expect
@@ -635,3 +635,9 @@
   #C6 = self::Enum {index:#C4, _name:#C5}
   #C7 = <self::Enum*>[#C3, #C6]
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///return_null.dart:
+- Enum. (from org-dartlang-testcase:///return_null.dart:43:6)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/nnbd/switch_nullable_enum.dart.strong.expect b/pkg/front_end/testcases/nnbd/switch_nullable_enum.dart.strong.expect
index daebafc..936628a 100644
--- a/pkg/front_end/testcases/nnbd/switch_nullable_enum.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/switch_nullable_enum.dart.strong.expect
@@ -110,3 +110,9 @@
   #C7 = <self::Enum>[#C3, #C6]
   #C8 = null
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///switch_nullable_enum.dart:
+- Enum. (from org-dartlang-testcase:///switch_nullable_enum.dart:5:6)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/nnbd/switch_nullable_enum.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/switch_nullable_enum.dart.strong.transformed.expect
index daebafc..936628a 100644
--- a/pkg/front_end/testcases/nnbd/switch_nullable_enum.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/switch_nullable_enum.dart.strong.transformed.expect
@@ -110,3 +110,9 @@
   #C7 = <self::Enum>[#C3, #C6]
   #C8 = null
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///switch_nullable_enum.dart:
+- Enum. (from org-dartlang-testcase:///switch_nullable_enum.dart:5:6)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/nnbd/switch_nullable_enum.dart.weak.expect b/pkg/front_end/testcases/nnbd/switch_nullable_enum.dart.weak.expect
index 28d2d15..5a45b37 100644
--- a/pkg/front_end/testcases/nnbd/switch_nullable_enum.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/switch_nullable_enum.dart.weak.expect
@@ -114,3 +114,9 @@
   #C7 = <self::Enum*>[#C3, #C6]
   #C8 = null
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///switch_nullable_enum.dart:
+- Enum. (from org-dartlang-testcase:///switch_nullable_enum.dart:5:6)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/nnbd/switch_nullable_enum.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/switch_nullable_enum.dart.weak.transformed.expect
index 28d2d15..5a45b37 100644
--- a/pkg/front_end/testcases/nnbd/switch_nullable_enum.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/switch_nullable_enum.dart.weak.transformed.expect
@@ -114,3 +114,9 @@
   #C7 = <self::Enum*>[#C3, #C6]
   #C8 = null
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///switch_nullable_enum.dart:
+- Enum. (from org-dartlang-testcase:///switch_nullable_enum.dart:5:6)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/nnbd/switch_redesign_types.dart.strong.expect b/pkg/front_end/testcases/nnbd/switch_redesign_types.dart.strong.expect
index c678c28..1108882 100644
--- a/pkg/front_end/testcases/nnbd/switch_redesign_types.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/switch_redesign_types.dart.strong.expect
@@ -99,3 +99,12 @@
   #C6 = 123
   #C7 = self::D {foo:#C6}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///switch_redesign_types.dart:
+- D. (from org-dartlang-testcase:///switch_redesign_types.dart:23:9)
+- B. (from org-dartlang-testcase:///switch_redesign_types.dart:15:9)
+- A. (from org-dartlang-testcase:///switch_redesign_types.dart:11:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- C. (from org-dartlang-testcase:///switch_redesign_types.dart:19:9)
diff --git a/pkg/front_end/testcases/nnbd/switch_redesign_types.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/switch_redesign_types.dart.strong.transformed.expect
index c678c28..1108882 100644
--- a/pkg/front_end/testcases/nnbd/switch_redesign_types.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/switch_redesign_types.dart.strong.transformed.expect
@@ -99,3 +99,12 @@
   #C6 = 123
   #C7 = self::D {foo:#C6}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///switch_redesign_types.dart:
+- D. (from org-dartlang-testcase:///switch_redesign_types.dart:23:9)
+- B. (from org-dartlang-testcase:///switch_redesign_types.dart:15:9)
+- A. (from org-dartlang-testcase:///switch_redesign_types.dart:11:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- C. (from org-dartlang-testcase:///switch_redesign_types.dart:19:9)
diff --git a/pkg/front_end/testcases/nnbd/switch_redesign_types.dart.weak.expect b/pkg/front_end/testcases/nnbd/switch_redesign_types.dart.weak.expect
index c678c28..1108882 100644
--- a/pkg/front_end/testcases/nnbd/switch_redesign_types.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/switch_redesign_types.dart.weak.expect
@@ -99,3 +99,12 @@
   #C6 = 123
   #C7 = self::D {foo:#C6}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///switch_redesign_types.dart:
+- D. (from org-dartlang-testcase:///switch_redesign_types.dart:23:9)
+- B. (from org-dartlang-testcase:///switch_redesign_types.dart:15:9)
+- A. (from org-dartlang-testcase:///switch_redesign_types.dart:11:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- C. (from org-dartlang-testcase:///switch_redesign_types.dart:19:9)
diff --git a/pkg/front_end/testcases/nnbd/switch_redesign_types.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/switch_redesign_types.dart.weak.transformed.expect
index c678c28..1108882 100644
--- a/pkg/front_end/testcases/nnbd/switch_redesign_types.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/switch_redesign_types.dart.weak.transformed.expect
@@ -99,3 +99,12 @@
   #C6 = 123
   #C7 = self::D {foo:#C6}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///switch_redesign_types.dart:
+- D. (from org-dartlang-testcase:///switch_redesign_types.dart:23:9)
+- B. (from org-dartlang-testcase:///switch_redesign_types.dart:15:9)
+- A. (from org-dartlang-testcase:///switch_redesign_types.dart:11:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- C. (from org-dartlang-testcase:///switch_redesign_types.dart:19:9)
diff --git a/pkg/front_end/testcases/nnbd_mixed/constant_null_is.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/constant_null_is.dart.weak.expect
index 470c9c8..86644a3 100644
--- a/pkg/front_end/testcases/nnbd_mixed/constant_null_is.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/constant_null_is.dart.weak.expect
@@ -123,3 +123,18 @@
   #C6 = self::Class<core::int*> {field:#C2}
   #C7 = self::Class<Null> {field:#C3}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///constant_null_is.dart:
+- Class.constructor1 (from org-dartlang-testcase:///constant_null_is.dart:39:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Class.constructor2 (from org-dartlang-testcase:///constant_null_is.dart:40:9)
+- Class.constructor3 (from org-dartlang-testcase:///constant_null_is.dart:41:9)
+- Class.constructor4 (from org-dartlang-testcase:///constant_null_is.dart:42:9)
+
+org-dartlang-testcase:///constant_null_is_lib.dart:
+- Class.constructor1 (from org-dartlang-testcase:///constant_null_is.dart:39:9)
+- Class.constructor2 (from org-dartlang-testcase:///constant_null_is.dart:40:9)
+- Class.constructor3 (from org-dartlang-testcase:///constant_null_is.dart:41:9)
+- Class.constructor4 (from org-dartlang-testcase:///constant_null_is.dart:42:9)
diff --git a/pkg/front_end/testcases/nnbd_mixed/constant_null_is.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/constant_null_is.dart.weak.transformed.expect
index dc41d03..eb05763 100644
--- a/pkg/front_end/testcases/nnbd_mixed/constant_null_is.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/constant_null_is.dart.weak.transformed.expect
@@ -142,3 +142,18 @@
 Evaluated: IsExpression @ org-dartlang-testcase:///constant_null_is_lib.dart:24:15 -> BoolConstant(false)
 Evaluated: IsExpression @ org-dartlang-testcase:///constant_null_is_lib.dart:25:15 -> BoolConstant(true)
 Extra constant evaluation: evaluated: 139, effectively constant: 16
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///constant_null_is.dart:
+- Class.constructor1 (from org-dartlang-testcase:///constant_null_is.dart:39:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Class.constructor2 (from org-dartlang-testcase:///constant_null_is.dart:40:9)
+- Class.constructor3 (from org-dartlang-testcase:///constant_null_is.dart:41:9)
+- Class.constructor4 (from org-dartlang-testcase:///constant_null_is.dart:42:9)
+
+org-dartlang-testcase:///constant_null_is_lib.dart:
+- Class.constructor1 (from org-dartlang-testcase:///constant_null_is.dart:39:9)
+- Class.constructor2 (from org-dartlang-testcase:///constant_null_is.dart:40:9)
+- Class.constructor3 (from org-dartlang-testcase:///constant_null_is.dart:41:9)
+- Class.constructor4 (from org-dartlang-testcase:///constant_null_is.dart:42:9)
diff --git a/pkg/front_end/testcases/nnbd_mixed/constants.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/constants.dart.weak.expect
index 0124126..8c498ea 100644
--- a/pkg/front_end/testcases/nnbd_mixed/constants.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/constants.dart.weak.expect
@@ -96,3 +96,12 @@
   #C13 = true
   #C14 = tearoff core::identical
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///constants.dart:
+- Class. (from org-dartlang-testcase:///constants_lib.dart:10:9)
+
+org-dartlang-testcase:///constants_lib.dart:
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Class. (from org-dartlang-testcase:///constants_lib.dart:10:9)
diff --git a/pkg/front_end/testcases/nnbd_mixed/constants.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/constants.dart.weak.transformed.expect
index 0124126..8c498ea 100644
--- a/pkg/front_end/testcases/nnbd_mixed/constants.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/constants.dart.weak.transformed.expect
@@ -96,3 +96,12 @@
   #C13 = true
   #C14 = tearoff core::identical
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///constants.dart:
+- Class. (from org-dartlang-testcase:///constants_lib.dart:10:9)
+
+org-dartlang-testcase:///constants_lib.dart:
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Class. (from org-dartlang-testcase:///constants_lib.dart:10:9)
diff --git a/pkg/front_end/testcases/nnbd_mixed/literal_from_opt_in.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/literal_from_opt_in.dart.weak.expect
index f236f21..f674165 100644
--- a/pkg/front_end/testcases/nnbd_mixed/literal_from_opt_in.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/literal_from_opt_in.dart.weak.expect
@@ -38,3 +38,9 @@
   #C6 = <lit::Const<core::int*>*>[#C5]
   #C7 = <lit::Const<core::int*>*>[#C4]
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///literal_from_opt_in_lib.dart:
+- Const. (from org-dartlang-testcase:///literal_from_opt_in_lib.dart:8:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/nnbd_mixed/literal_from_opt_in.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/literal_from_opt_in.dart.weak.transformed.expect
index f236f21..f674165 100644
--- a/pkg/front_end/testcases/nnbd_mixed/literal_from_opt_in.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/literal_from_opt_in.dart.weak.transformed.expect
@@ -38,3 +38,9 @@
   #C6 = <lit::Const<core::int*>*>[#C5]
   #C7 = <lit::Const<core::int*>*>[#C4]
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///literal_from_opt_in_lib.dart:
+- Const. (from org-dartlang-testcase:///literal_from_opt_in_lib.dart:8:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.expect
index 567675d..f65c944 100644
--- a/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.expect
@@ -123,3 +123,20 @@
   #C4 = opt::Class4<dynamic> {}
   #C5 = opt::Class5<dynamic> {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///main.dart:
+- Class1._ (from org-dartlang-testcase:///opt_in_lib.dart:10:9)
+- Class2._ (from org-dartlang-testcase:///opt_in_lib.dart:18:9)
+- Class3._ (from org-dartlang-testcase:///opt_in_lib.dart:26:9)
+- Class4._ (from org-dartlang-testcase:///opt_in_lib.dart:34:9)
+- Class5._ (from org-dartlang-testcase:///opt_in_lib.dart:42:9)
+
+org-dartlang-testcase:///opt_in_lib.dart:
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Class1._ (from org-dartlang-testcase:///opt_in_lib.dart:10:9)
+- Class2._ (from org-dartlang-testcase:///opt_in_lib.dart:18:9)
+- Class3._ (from org-dartlang-testcase:///opt_in_lib.dart:26:9)
+- Class4._ (from org-dartlang-testcase:///opt_in_lib.dart:34:9)
+- Class5._ (from org-dartlang-testcase:///opt_in_lib.dart:42:9)
diff --git a/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.transformed.expect
index 789e4fb..69cdbba 100644
--- a/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.transformed.expect
@@ -123,3 +123,20 @@
   #C4 = opt::Class4<dynamic> {}
   #C5 = opt::Class5<dynamic> {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///main.dart:
+- Class1._ (from org-dartlang-testcase:///opt_in_lib.dart:10:9)
+- Class2._ (from org-dartlang-testcase:///opt_in_lib.dart:18:9)
+- Class3._ (from org-dartlang-testcase:///opt_in_lib.dart:26:9)
+- Class4._ (from org-dartlang-testcase:///opt_in_lib.dart:34:9)
+- Class5._ (from org-dartlang-testcase:///opt_in_lib.dart:42:9)
+
+org-dartlang-testcase:///opt_in_lib.dart:
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- Class1._ (from org-dartlang-testcase:///opt_in_lib.dart:10:9)
+- Class2._ (from org-dartlang-testcase:///opt_in_lib.dart:18:9)
+- Class3._ (from org-dartlang-testcase:///opt_in_lib.dart:26:9)
+- Class4._ (from org-dartlang-testcase:///opt_in_lib.dart:34:9)
+- Class5._ (from org-dartlang-testcase:///opt_in_lib.dart:42:9)
diff --git a/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.expect
index 37158e0..d622191 100644
--- a/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.expect
@@ -86,3 +86,16 @@
   #C6 = opt::M {list:#C5}
   #C7 = <opt::P<core::Object*>*>[]
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///main.dart:
+- CP._ (from org-dartlang-testcase:///opt_in_lib.dart:14:9)
+- XToken. (from org-dartlang-testcase:///main.dart:12:9)
+- Token. (from org-dartlang-testcase:///opt_in_lib.dart:18:9)
+- VP._ (from org-dartlang-testcase:///opt_in_lib.dart:27:9)
+- M. (from org-dartlang-testcase:///opt_in_lib.dart:36:9)
+
+org-dartlang-testcase:///opt_in_lib.dart:
+- P._ (from org-dartlang-testcase:///opt_in_lib.dart:8:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.transformed.expect
index 49ef11a..94dea11 100644
--- a/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.transformed.expect
@@ -86,3 +86,16 @@
   #C6 = opt::M {list:#C5}
   #C7 = <opt::P<core::Object*>*>[]
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///main.dart:
+- CP._ (from org-dartlang-testcase:///opt_in_lib.dart:14:9)
+- XToken. (from org-dartlang-testcase:///main.dart:12:9)
+- Token. (from org-dartlang-testcase:///opt_in_lib.dart:18:9)
+- VP._ (from org-dartlang-testcase:///opt_in_lib.dart:27:9)
+- M. (from org-dartlang-testcase:///opt_in_lib.dart:36:9)
+
+org-dartlang-testcase:///opt_in_lib.dart:
+- P._ (from org-dartlang-testcase:///opt_in_lib.dart:8:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/nnbd_mixed/unsound_checks.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/unsound_checks.dart.weak.expect
index 0f9dd17..7e7f78f 100644
--- a/pkg/front_end/testcases/nnbd_mixed/unsound_checks.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/unsound_checks.dart.weak.expect
@@ -619,3 +619,9 @@
   #C7 = null
   #C8 = <uns::E*>[#C3, #C6]
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///unsound_checks_lib.dart:
+- E. (from org-dartlang-testcase:///unsound_checks_lib.dart:145:6)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/nnbd_mixed/unsound_checks.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/unsound_checks.dart.weak.transformed.expect
index 54fdabb..29a758c 100644
--- a/pkg/front_end/testcases/nnbd_mixed/unsound_checks.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/unsound_checks.dart.weak.transformed.expect
@@ -640,3 +640,9 @@
 Evaluated: VariableGet @ org-dartlang-testcase:///unsound_checks_lib.dart:134:5 -> IntConstant(0)
 Evaluated: VariableGet @ org-dartlang-testcase:///unsound_checks_lib.dart:134:5 -> IntConstant(0)
 Extra constant evaluation: evaluated: 719, effectively constant: 18
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///unsound_checks_lib.dart:
+- E. (from org-dartlang-testcase:///unsound_checks_lib.dart:145:6)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart.strong.expect b/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart.strong.expect
index 0907c2f..c1d156b 100644
--- a/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart.strong.expect
+++ b/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart.strong.expect
@@ -38,3 +38,9 @@
   const C() : this.x(1);
                     ^";
 }
+
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///bad_constructor_redirection.dart:
+- C. (from org-dartlang-testcase:///bad_constructor_redirection.dart:6:9)
diff --git a/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart.strong.transformed.expect b/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart.strong.transformed.expect
index 0907c2f..c1d156b 100644
--- a/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/rasta/bad_constructor_redirection.dart.strong.transformed.expect
@@ -38,3 +38,9 @@
   const C() : this.x(1);
                     ^";
 }
+
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///bad_constructor_redirection.dart:
+- C. (from org-dartlang-testcase:///bad_constructor_redirection.dart:6:9)
diff --git a/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart.strong.expect b/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart.strong.expect
index e12ad9f..f42bd18 100644
--- a/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart.strong.expect
+++ b/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart.strong.expect
@@ -37,3 +37,9 @@
   const B() : super();
                    ^";
 }
+
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///bad_explicit_super_constructor.dart:
+- B. (from org-dartlang-testcase:///bad_explicit_super_constructor.dart:10:9)
diff --git a/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart.strong.transformed.expect b/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart.strong.transformed.expect
index e12ad9f..f42bd18 100644
--- a/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/rasta/bad_explicit_super_constructor.dart.strong.transformed.expect
@@ -37,3 +37,9 @@
   const B() : super();
                    ^";
 }
+
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///bad_explicit_super_constructor.dart:
+- B. (from org-dartlang-testcase:///bad_explicit_super_constructor.dart:10:9)
diff --git a/pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart.strong.expect b/pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart.strong.expect
index f3801c3..add2a41 100644
--- a/pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart.strong.expect
+++ b/pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart.strong.expect
@@ -43,3 +43,9 @@
   const B();
         ^";
 }
+
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///bad_implicit_super_constructor.dart:
+- B. (from org-dartlang-testcase:///bad_implicit_super_constructor.dart:10:9)
diff --git a/pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart.strong.transformed.expect b/pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart.strong.transformed.expect
index f3801c3..add2a41 100644
--- a/pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/rasta/bad_implicit_super_constructor.dart.strong.transformed.expect
@@ -43,3 +43,9 @@
   const B();
         ^";
 }
+
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///bad_implicit_super_constructor.dart:
+- B. (from org-dartlang-testcase:///bad_implicit_super_constructor.dart:10:9)
diff --git a/pkg/front_end/testcases/rasta/enum.dart.strong.expect b/pkg/front_end/testcases/rasta/enum.dart.strong.expect
index 7ae9eb8..697f145 100644
--- a/pkg/front_end/testcases/rasta/enum.dart.strong.expect
+++ b/pkg/front_end/testcases/rasta/enum.dart.strong.expect
@@ -34,3 +34,9 @@
   #C6 = self::Foo {index:#C4, _name:#C5}
   #C7 = <self::Foo*>[#C3, #C6]
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///enum.dart:
+- Foo. (from org-dartlang-testcase:///enum.dart:5:6)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/rasta/enum.dart.strong.transformed.expect b/pkg/front_end/testcases/rasta/enum.dart.strong.transformed.expect
index 7ae9eb8..697f145 100644
--- a/pkg/front_end/testcases/rasta/enum.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/rasta/enum.dart.strong.transformed.expect
@@ -34,3 +34,9 @@
   #C6 = self::Foo {index:#C4, _name:#C5}
   #C7 = <self::Foo*>[#C3, #C6]
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///enum.dart:
+- Foo. (from org-dartlang-testcase:///enum.dart:5:6)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/rasta/issue_000034.dart.strong.expect b/pkg/front_end/testcases/rasta/issue_000034.dart.strong.expect
index 13b1086..58227f9 100644
--- a/pkg/front_end/testcases/rasta/issue_000034.dart.strong.expect
+++ b/pkg/front_end/testcases/rasta/issue_000034.dart.strong.expect
@@ -36,3 +36,9 @@
   const C() : this.x;
               ^";
 }
+
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///issue_000034.dart:
+- C. (from org-dartlang-testcase:///issue_000034.dart:6:9)
diff --git a/pkg/front_end/testcases/rasta/issue_000034.dart.strong.transformed.expect b/pkg/front_end/testcases/rasta/issue_000034.dart.strong.transformed.expect
index 13b1086..58227f9 100644
--- a/pkg/front_end/testcases/rasta/issue_000034.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000034.dart.strong.transformed.expect
@@ -36,3 +36,9 @@
   const C() : this.x;
               ^";
 }
+
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///issue_000034.dart:
+- C. (from org-dartlang-testcase:///issue_000034.dart:6:9)
diff --git a/pkg/front_end/testcases/rasta/issue_000044.dart.strong.expect b/pkg/front_end/testcases/rasta/issue_000044.dart.strong.expect
index 1fa41bd..51b05df 100644
--- a/pkg/front_end/testcases/rasta/issue_000044.dart.strong.expect
+++ b/pkg/front_end/testcases/rasta/issue_000044.dart.strong.expect
@@ -110,3 +110,9 @@
 constants  {
   #C1 = self::C {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///issue_000044.dart:
+- C.constant (from org-dartlang-testcase:///issue_000044.dart:11:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/rasta/issue_000044.dart.strong.transformed.expect b/pkg/front_end/testcases/rasta/issue_000044.dart.strong.transformed.expect
index aded6c9..1ae5647 100644
--- a/pkg/front_end/testcases/rasta/issue_000044.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000044.dart.strong.transformed.expect
@@ -110,3 +110,9 @@
 constants  {
   #C1 = self::C {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///issue_000044.dart:
+- C.constant (from org-dartlang-testcase:///issue_000044.dart:11:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/rasta/issue_000070.dart.strong.expect b/pkg/front_end/testcases/rasta/issue_000070.dart.strong.expect
index b0b26de..f3f37e7 100644
--- a/pkg/front_end/testcases/rasta/issue_000070.dart.strong.expect
+++ b/pkg/front_end/testcases/rasta/issue_000070.dart.strong.expect
@@ -69,3 +69,9 @@
   #C2 = <Null>[#C1]
   #C3 = self::A<core::int*, core::int*, core::List<dynamic>*> {field:#C2}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///issue_000070.dart:
+- A.c (from org-dartlang-testcase:///issue_000070.dart:22:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/rasta/issue_000070.dart.strong.transformed.expect b/pkg/front_end/testcases/rasta/issue_000070.dart.strong.transformed.expect
index b0b26de..f3f37e7 100644
--- a/pkg/front_end/testcases/rasta/issue_000070.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000070.dart.strong.transformed.expect
@@ -69,3 +69,9 @@
   #C2 = <Null>[#C1]
   #C3 = self::A<core::int*, core::int*, core::List<dynamic>*> {field:#C2}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///issue_000070.dart:
+- A.c (from org-dartlang-testcase:///issue_000070.dart:22:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/rasta/native_is_illegal.dart.strong.expect b/pkg/front_end/testcases/rasta/native_is_illegal.dart.strong.expect
index c19856d..92274e4 100644
--- a/pkg/front_end/testcases/rasta/native_is_illegal.dart.strong.expect
+++ b/pkg/front_end/testcases/rasta/native_is_illegal.dart.strong.expect
@@ -38,3 +38,8 @@
   #C9 = "foo"
   #C10 = _in::ExternalName {name:#C9}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///native_is_illegal.dart:
+- ExternalName. (from org-dartlang-sdk:///sdk/lib/internal/internal.dart:92:9)
diff --git a/pkg/front_end/testcases/rasta/native_is_illegal.dart.strong.transformed.expect b/pkg/front_end/testcases/rasta/native_is_illegal.dart.strong.transformed.expect
index c19856d..92274e4 100644
--- a/pkg/front_end/testcases/rasta/native_is_illegal.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/rasta/native_is_illegal.dart.strong.transformed.expect
@@ -38,3 +38,8 @@
   #C9 = "foo"
   #C10 = _in::ExternalName {name:#C9}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///native_is_illegal.dart:
+- ExternalName. (from org-dartlang-sdk:///sdk/lib/internal/internal.dart:92:9)
diff --git a/pkg/front_end/testcases/regress/issue_34403.dart.strong.expect b/pkg/front_end/testcases/regress/issue_34403.dart.strong.expect
index 00208c5..13c8d12 100644
--- a/pkg/front_end/testcases/regress/issue_34403.dart.strong.expect
+++ b/pkg/front_end/testcases/regress/issue_34403.dart.strong.expect
@@ -187,3 +187,13 @@
   #C4 = iss::F<dynamic> {}
   #C5 = iss::F<core::String*> {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///issue_34403.dart:
+- D.foo (from org-dartlang-testcase:///issue_34403.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- F.foo (from org-dartlang-testcase:///issue_34403_lib.dart:10:9)
+
+org-dartlang-testcase:///issue_34403_lib.dart:
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/regress/issue_34403.dart.strong.transformed.expect b/pkg/front_end/testcases/regress/issue_34403.dart.strong.transformed.expect
index 00208c5..13c8d12 100644
--- a/pkg/front_end/testcases/regress/issue_34403.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_34403.dart.strong.transformed.expect
@@ -187,3 +187,13 @@
   #C4 = iss::F<dynamic> {}
   #C5 = iss::F<core::String*> {}
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///issue_34403.dart:
+- D.foo (from org-dartlang-testcase:///issue_34403.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
+- F.foo (from org-dartlang-testcase:///issue_34403_lib.dart:10:9)
+
+org-dartlang-testcase:///issue_34403_lib.dart:
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/static_field_lowering/enum.dart.weak.expect b/pkg/front_end/testcases/static_field_lowering/enum.dart.weak.expect
index aede924..cc542ab 100644
--- a/pkg/front_end/testcases/static_field_lowering/enum.dart.weak.expect
+++ b/pkg/front_end/testcases/static_field_lowering/enum.dart.weak.expect
@@ -25,3 +25,9 @@
   #C6 = self::A {index:#C4, _name:#C5}
   #C7 = <self::A*>[#C3, #C6]
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///enum.dart:
+- A. (from org-dartlang-testcase:///enum.dart:5:6)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/pkg/front_end/testcases/static_field_lowering/enum.dart.weak.transformed.expect b/pkg/front_end/testcases/static_field_lowering/enum.dart.weak.transformed.expect
index aede924..cc542ab 100644
--- a/pkg/front_end/testcases/static_field_lowering/enum.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/static_field_lowering/enum.dart.weak.transformed.expect
@@ -25,3 +25,9 @@
   #C6 = self::A {index:#C4, _name:#C5}
   #C7 = <self::A*>[#C3, #C6]
 }
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///enum.dart:
+- A. (from org-dartlang-testcase:///enum.dart:5:6)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:31:9)
diff --git a/sdk/lib/collection/set.dart b/sdk/lib/collection/set.dart
index 5cd75d6..d414012 100644
--- a/sdk/lib/collection/set.dart
+++ b/sdk/lib/collection/set.dart
@@ -340,8 +340,38 @@
   Set<E> toSet() => _newSet()..addAll(this);
 }
 
+abstract class _UnmodifiableSetMixin<E> implements Set<E> {
+  static Never _throwUnmodifiable() {
+    throw UnsupportedError("Cannot change an unmodifiable set");
+  }
+
+  /// This operation is not supported by an unmodifiable set.
+  bool add(E value) => _throwUnmodifiable();
+
+  /// This operation is not supported by an unmodifiable set.
+  void clear() => _throwUnmodifiable();
+
+  /// This operation is not supported by an unmodifiable set.
+  void addAll(Iterable<E> elements) => _throwUnmodifiable();
+
+  /// This operation is not supported by an unmodifiable set.
+  void removeAll(Iterable<Object?> elements) => _throwUnmodifiable();
+
+  /// This operation is not supported by an unmodifiable set.
+  void retainAll(Iterable<Object?> elements) => _throwUnmodifiable();
+
+  /// This operation is not supported by an unmodifiable set.
+  void removeWhere(bool test(E element)) => _throwUnmodifiable();
+
+  /// This operation is not supported by an unmodifiable set.
+  void retainWhere(bool test(E element)) => _throwUnmodifiable();
+
+  /// This operation is not supported by an unmodifiable set.
+  bool remove(Object? value) => _throwUnmodifiable();
+}
+
 /// Class used to implement const sets.
-class _UnmodifiableSet<E> extends _SetBase<E> {
+class _UnmodifiableSet<E> extends _SetBase<E> with _UnmodifiableSetMixin<E> {
   final Map<E, Null> _map;
 
   const _UnmodifiableSet(this._map);
@@ -364,38 +394,25 @@
     }
     return null;
   }
+}
 
-  // Mutating methods throw.
+/// An unmodifiable [Set] view of another [Set].
+///
+/// Methods that could change the set, such as [add] and [remove],
+/// must not be called.
+class UnmodifiableSetView<E> extends SetBase<E> with _UnmodifiableSetMixin<E> {
+  final Set<E> _source;
 
-  bool add(E value) {
-    throw UnsupportedError("Cannot change unmodifiable set");
-  }
+  /// Creates an [UnmodifiableSetView] of [source].
+  UnmodifiableSetView(Set<E> source) : _source = source;
 
-  void clear() {
-    throw UnsupportedError("Cannot change unmodifiable set");
-  }
+  bool contains(Object? element) => _source.contains(element);
 
-  void addAll(Iterable<E> elements) {
-    throw UnsupportedError("Cannot change unmodifiable set");
-  }
+  E? lookup(Object? element) => _source.lookup(element);
 
-  void removeAll(Iterable<Object?> elements) {
-    throw UnsupportedError("Cannot change unmodifiable set");
-  }
+  int get length => _source.length;
 
-  void retainAll(Iterable<Object?> elements) {
-    throw UnsupportedError("Cannot change unmodifiable set");
-  }
+  Iterator<E> get iterator => _source.iterator;
 
-  void removeWhere(bool test(E element)) {
-    throw UnsupportedError("Cannot change unmodifiable set");
-  }
-
-  void retainWhere(bool test(E element)) {
-    throw UnsupportedError("Cannot change unmodifiable set");
-  }
-
-  bool remove(Object? value) {
-    throw UnsupportedError("Cannot change unmodifiable set");
-  }
+  Set<E> toSet() => _source.toSet();
 }
diff --git a/sdk/lib/core/set.dart b/sdk/lib/core/set.dart
index edb05cf..fa1b3e6 100644
--- a/sdk/lib/core/set.dart
+++ b/sdk/lib/core/set.dart
@@ -91,6 +91,15 @@
   factory Set.of(Iterable<E> elements) = LinkedHashSet<E>.of;
 
   /**
+   * Creates an unmodifiable [Set] from [elements].
+   *
+   * The new set behaves like the result of [Set.of],
+   * except that the set returned by this constructor is not modifiable.
+   */
+  factory Set.unmodifiable(Iterable<E> elements) =>
+      UnmodifiableSetView<E>(<E>{...elements});
+
+  /**
    * Adapts [source] to be a `Set<T>`.
    *
    * If [newSet] is provided, it is used to create the new sets returned
diff --git a/tests/corelib/set_test.dart b/tests/corelib/set_test.dart
index 117f35a..3b8dd47 100644
--- a/tests/corelib/set_test.dart
+++ b/tests/corelib/set_test.dart
@@ -482,6 +482,66 @@
   Expect.isTrue(aSet.length == 1);
 }
 
+void testUnmodifiable(Set source) {
+  var unmodifiable = Set.unmodifiable(source);
+
+  Expect.throwsUnsupportedError(() {
+    unmodifiable.add(3);
+  }, "add");
+
+  Expect.throwsUnsupportedError(() {
+    unmodifiable.addAll({1, 2, 3});
+  }, "addAll");
+
+  Expect.throwsUnsupportedError(() {
+    unmodifiable.addAll(<int>{});
+  }, "addAll empty");
+
+  Expect.throwsUnsupportedError(() {
+    unmodifiable.remove(3);
+  }, "remove");
+
+  Expect.throwsUnsupportedError(() {
+    unmodifiable.removeAll({1, 2, 3});
+  }, "removeAll");
+
+  Expect.throwsUnsupportedError(() {
+    unmodifiable.removeAll(<int>{});
+  }, "removeAll empty");
+
+  Expect.throwsUnsupportedError(() {
+    unmodifiable.retainAll({1, 2, 3});
+  }, "retainAll");
+
+  Expect.throwsUnsupportedError(() {
+    unmodifiable.retainAll(<int>{});
+  }, "retainAll empty");
+
+  Expect.throwsUnsupportedError(() {
+    unmodifiable.removeWhere((_) => true);
+  }, "removeWhere");
+
+  Expect.throwsUnsupportedError(() {
+    unmodifiable.retainWhere((_) => false);
+  }, "retainWhere");
+
+  Expect.throwsUnsupportedError(() {
+    unmodifiable.clear();
+  }, "clear");
+}
+
+void testUnmodifiableSetIsNotUpdatedIfSourceSetIsUpdated() {
+  var modifiable = {1};
+  var unmodifiable = Set.unmodifiable(modifiable);
+
+  modifiable.add(2);
+  Expect.notEquals(modifiable.length, unmodifiable.length);
+  Expect.setEquals({2}, modifiable.difference(unmodifiable));
+  modifiable.removeAll({1, 2});
+  Expect.setEquals({1}, unmodifiable.difference(modifiable));
+  Expect.setEquals({1}, unmodifiable);
+}
+
 main() {
   testMain(() => new HashSet());
   testMain(() => new LinkedHashSet());
@@ -553,4 +613,7 @@
   testASetFrom((x) => new HashSet<A>.from(x));
   testASetFrom((x) => new LinkedHashSet<A>.from(x));
   testASetFrom((x) => new SplayTreeSet<A>.from(x, identityCompare));
+
+  testUnmodifiable({1});
+  testUnmodifiableSetIsNotUpdatedIfSourceSetIsUpdated();
 }
diff --git a/tests/corelib/set_unmodifiable_view_test.dart b/tests/corelib/set_unmodifiable_view_test.dart
new file mode 100644
index 0000000..4ee582d
--- /dev/null
+++ b/tests/corelib/set_unmodifiable_view_test.dart
@@ -0,0 +1,220 @@
+// Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import "package:expect/expect.dart";
+import "dart:collection";
+
+main() {
+  testIterableApi();
+  testUnmodifiableSetApi();
+  testMutatingApisThrow();
+  testChangesInOriginalSetAreObservedInUnmodifiableView();
+}
+
+void testIterableApi() {
+  Set<int> original = {1, 2, 3};
+  Set<int> copy = {...original};
+  UnmodifiableSetView<int> wrapped = new UnmodifiableSetView(original);
+
+  Expect.equals(wrapped.any((_) => true), original.any((_) => true));
+  Expect.equals(wrapped.any((_) => false), original.any((_) => false));
+
+  Expect.equals(wrapped.contains(0), original.contains(0));
+  Expect.equals(wrapped.elementAt(0), original.elementAt(0));
+
+  Expect.equals(wrapped.every((_) => true), original.every((_) => true));
+  Expect.equals(wrapped.every((_) => false), original.every((_) => false));
+
+  Expect.setEquals(
+      wrapped.expand((x) => [x, x]), original.expand((x) => [x, x]));
+
+  Expect.equals(wrapped.first, original.first);
+
+  Expect.equals(
+      wrapped.firstWhere((_) => true), original.firstWhere((_) => true));
+  Expect.throwsStateError(() {
+    wrapped.firstWhere((_) => false);
+  }, "firstWhere");
+
+  Expect.equals(wrapped.fold<int>(0, (x, y) => x + y),
+      original.fold<int>(0, (x, y) => x + y));
+
+  testForeach(wrapped, original);
+
+  Expect.equals(wrapped.isEmpty, original.isEmpty);
+
+  Expect.equals(wrapped.isNotEmpty, original.isNotEmpty);
+
+  testIterator(wrapped, original);
+
+  Expect.equals(wrapped.join(""), original.join(""));
+  Expect.equals(wrapped.join("-"), original.join("-"));
+
+  Expect.equals(wrapped.last, original.last);
+
+  Expect.equals(
+      wrapped.lastWhere((_) => true), original.lastWhere((_) => true));
+  Expect.throwsStateError(() {
+    wrapped.lastWhere((_) => false);
+  }, "lastWhere");
+
+  Expect.equals(wrapped.length, original.length);
+
+  Expect.setEquals(wrapped.map((x) => "[$x]"), original.map((x) => "[$x]"));
+
+  Expect.equals(
+      wrapped.reduce((x, y) => x + y), original.reduce((x, y) => x + y));
+
+  Expect.throwsStateError(() {
+    wrapped.single;
+  }, "single");
+
+  Expect.throwsStateError(() {
+    wrapped.singleWhere((_) => true);
+  }, "singleWhere true");
+  Expect.throwsStateError(() {
+    wrapped.singleWhere((_) => false);
+  }, "singleWhere false");
+
+  Expect.setEquals(wrapped.skip(0), original.skip(0));
+  Expect.setEquals(wrapped.skip(1), original.skip(1));
+
+  Expect.setEquals(
+      wrapped.skipWhile((_) => true), original.skipWhile((_) => true));
+  Expect.setEquals(
+      wrapped.skipWhile((_) => false), original.skipWhile((_) => false));
+
+  Expect.setEquals(wrapped.take(0), original.take(0));
+  Expect.setEquals(wrapped.take(1), original.take(1));
+
+  Expect.setEquals(
+      wrapped.takeWhile((_) => true), original.takeWhile((_) => true));
+  Expect.setEquals(
+      wrapped.takeWhile((_) => false), original.takeWhile((_) => false));
+
+  var toListResult = wrapped.toList();
+  Expect.listEquals(original.toList(), toListResult);
+  toListResult.add(4);
+  Expect.listEquals([1, 2, 3, 4], toListResult);
+  toListResult[3] = 5;
+  Expect.listEquals([1, 2, 3, 5], toListResult);
+  // wrapped and original are intact
+  Expect.setEquals(copy, wrapped);
+  Expect.setEquals(copy, original);
+
+  var toSetResult = wrapped.toSet();
+  Expect.setEquals(original.toSet(), toSetResult);
+  toSetResult.add(4);
+  Expect.setEquals({1, 2, 3, 4}, toSetResult);
+  // wrapped and original are intact
+  Expect.setEquals(copy, wrapped);
+  Expect.setEquals(copy, original);
+
+  Expect.setEquals(wrapped.where((_) => true), original.where((_) => true));
+  Expect.setEquals(wrapped.where((_) => false), original.where((_) => false));
+}
+
+void testUnmodifiableSetApi() {
+  Set<int> original = {1, 2, 3};
+  Set<int> copy = {...original};
+  UnmodifiableSetView<int> wrapped = new UnmodifiableSetView(original);
+
+  Expect.isTrue(wrapped.containsAll(copy));
+  Expect.isTrue(wrapped.containsAll(copy.toList()));
+  Expect.isTrue(wrapped.containsAll([]));
+
+  Expect.isTrue(wrapped.intersection({}).isEmpty);
+  Expect.setEquals(wrapped.intersection(copy), original);
+
+  Expect.setEquals(wrapped.union({}), original);
+  Expect.setEquals(wrapped.union(copy), original);
+
+  Expect.setEquals(wrapped.difference({}), original);
+  Expect.isTrue(wrapped.difference(copy).isEmpty);
+}
+
+void testMutatingApisThrow() {
+  UnmodifiableSetView<int> s = new UnmodifiableSetView({1, 2, 3});
+
+  Expect.throwsUnsupportedError(() {
+    s.add(3);
+  }, "add");
+
+  Expect.throwsUnsupportedError(() {
+    s.addAll({1, 2, 3});
+  }, "addAll");
+
+  Expect.throwsUnsupportedError(() {
+    s.addAll(<int>{});
+  }, "addAll empty");
+
+  Expect.throwsUnsupportedError(() {
+    s.remove(3);
+  }, "remove");
+
+  Expect.throwsUnsupportedError(() {
+    s.removeAll({1, 2, 3});
+  }, "removeAll");
+
+  Expect.throwsUnsupportedError(() {
+    s.removeAll(<int>{});
+  }, "removeAll empty");
+
+  Expect.throwsUnsupportedError(() {
+    s.retainAll({1, 2, 3});
+  }, "retainAll");
+
+  Expect.throwsUnsupportedError(() {
+    s.retainAll(<int>{});
+  }, "retainAll empty");
+
+  Expect.throwsUnsupportedError(() {
+    s.removeWhere((_) => true);
+  }, "removeWhere");
+
+  Expect.throwsUnsupportedError(() {
+    s.retainWhere((_) => false);
+  }, "retainWhere");
+
+  Expect.throwsUnsupportedError(() {
+    s.clear();
+  }, "clear");
+}
+
+void testChangesInOriginalSetAreObservedInUnmodifiableView() {
+  Set<int> original = {1, 2, 3};
+  Set<int> copy = {...original};
+  UnmodifiableSetView<int> wrapped = new UnmodifiableSetView(original);
+
+  original.add(4);
+  Expect.setEquals(original, wrapped);
+  Expect.setEquals({4}, wrapped.difference(copy));
+}
+
+void testForeach(Set<int> wrapped, Set<int> original) {
+  var wrapCtr = 0;
+  var origCtr = 0;
+
+  wrapped.forEach((x) {
+    wrapCtr += x;
+  });
+
+  original.forEach((x) {
+    origCtr += x;
+  });
+
+  Expect.equals(wrapCtr, origCtr);
+}
+
+void testIterator(Set<int> wrapped, Set<int> original) {
+  Iterator wrapIter = wrapped.iterator;
+  Iterator origIter = original.iterator;
+
+  while (origIter.moveNext()) {
+    Expect.isTrue(wrapIter.moveNext());
+    Expect.equals(wrapIter.current, origIter.current);
+  }
+
+  Expect.isFalse(wrapIter.moveNext());
+}
diff --git a/tests/corelib_2/set_test.dart b/tests/corelib_2/set_test.dart
index c719e5f..68cf684 100644
--- a/tests/corelib_2/set_test.dart
+++ b/tests/corelib_2/set_test.dart
@@ -482,6 +482,66 @@
   Expect.isTrue(aSet.length == 1);
 }
 
+void testUnmodifiable(Set source) {
+  var unmodifiable = Set.unmodifiable(source);
+
+  Expect.throwsUnsupportedError(() {
+    unmodifiable.add(3);
+  }, "add");
+
+  Expect.throwsUnsupportedError(() {
+    unmodifiable.addAll({1, 2, 3});
+  }, "addAll");
+
+  Expect.throwsUnsupportedError(() {
+    unmodifiable.addAll(<int>{});
+  }, "addAll empty");
+
+  Expect.throwsUnsupportedError(() {
+    unmodifiable.remove(3);
+  }, "remove");
+
+  Expect.throwsUnsupportedError(() {
+    unmodifiable.removeAll({1, 2, 3});
+  }, "removeAll");
+
+  Expect.throwsUnsupportedError(() {
+    unmodifiable.removeAll(<int>{});
+  }, "removeAll empty");
+
+  Expect.throwsUnsupportedError(() {
+    unmodifiable.retainAll({1, 2, 3});
+  }, "retainAll");
+
+  Expect.throwsUnsupportedError(() {
+    unmodifiable.retainAll(<int>{});
+  }, "retainAll empty");
+
+  Expect.throwsUnsupportedError(() {
+    unmodifiable.removeWhere((_) => true);
+  }, "removeWhere");
+
+  Expect.throwsUnsupportedError(() {
+    unmodifiable.retainWhere((_) => false);
+  }, "retainWhere");
+
+  Expect.throwsUnsupportedError(() {
+    unmodifiable.clear();
+  }, "clear");
+}
+
+void testUnmodifiableSetIsNotUpdatedIfSourceSetIsUpdated() {
+  var modifiable = {1};
+  var unmodifiable = Set.unmodifiable(modifiable);
+
+  modifiable.add(2);
+  Expect.notEquals(modifiable.length, unmodifiable.length);
+  Expect.setEquals({2}, modifiable.difference(unmodifiable));
+  modifiable.removeAll({1, 2});
+  Expect.setEquals({1}, unmodifiable.difference(modifiable));
+  Expect.setEquals({1}, unmodifiable);
+}
+
 main() {
   testMain(() => new HashSet());
   testMain(() => new LinkedHashSet());
@@ -553,4 +613,7 @@
   testASetFrom((x) => new HashSet<A>.from(x));
   testASetFrom((x) => new LinkedHashSet<A>.from(x));
   testASetFrom((x) => new SplayTreeSet<A>.from(x, identityCompare));
+
+  testUnmodifiable({1});
+  testUnmodifiableSetIsNotUpdatedIfSourceSetIsUpdated();
 }
diff --git a/tests/corelib_2/set_unmodifiable_view_test.dart b/tests/corelib_2/set_unmodifiable_view_test.dart
new file mode 100644
index 0000000..4ee582d
--- /dev/null
+++ b/tests/corelib_2/set_unmodifiable_view_test.dart
@@ -0,0 +1,220 @@
+// Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import "package:expect/expect.dart";
+import "dart:collection";
+
+main() {
+  testIterableApi();
+  testUnmodifiableSetApi();
+  testMutatingApisThrow();
+  testChangesInOriginalSetAreObservedInUnmodifiableView();
+}
+
+void testIterableApi() {
+  Set<int> original = {1, 2, 3};
+  Set<int> copy = {...original};
+  UnmodifiableSetView<int> wrapped = new UnmodifiableSetView(original);
+
+  Expect.equals(wrapped.any((_) => true), original.any((_) => true));
+  Expect.equals(wrapped.any((_) => false), original.any((_) => false));
+
+  Expect.equals(wrapped.contains(0), original.contains(0));
+  Expect.equals(wrapped.elementAt(0), original.elementAt(0));
+
+  Expect.equals(wrapped.every((_) => true), original.every((_) => true));
+  Expect.equals(wrapped.every((_) => false), original.every((_) => false));
+
+  Expect.setEquals(
+      wrapped.expand((x) => [x, x]), original.expand((x) => [x, x]));
+
+  Expect.equals(wrapped.first, original.first);
+
+  Expect.equals(
+      wrapped.firstWhere((_) => true), original.firstWhere((_) => true));
+  Expect.throwsStateError(() {
+    wrapped.firstWhere((_) => false);
+  }, "firstWhere");
+
+  Expect.equals(wrapped.fold<int>(0, (x, y) => x + y),
+      original.fold<int>(0, (x, y) => x + y));
+
+  testForeach(wrapped, original);
+
+  Expect.equals(wrapped.isEmpty, original.isEmpty);
+
+  Expect.equals(wrapped.isNotEmpty, original.isNotEmpty);
+
+  testIterator(wrapped, original);
+
+  Expect.equals(wrapped.join(""), original.join(""));
+  Expect.equals(wrapped.join("-"), original.join("-"));
+
+  Expect.equals(wrapped.last, original.last);
+
+  Expect.equals(
+      wrapped.lastWhere((_) => true), original.lastWhere((_) => true));
+  Expect.throwsStateError(() {
+    wrapped.lastWhere((_) => false);
+  }, "lastWhere");
+
+  Expect.equals(wrapped.length, original.length);
+
+  Expect.setEquals(wrapped.map((x) => "[$x]"), original.map((x) => "[$x]"));
+
+  Expect.equals(
+      wrapped.reduce((x, y) => x + y), original.reduce((x, y) => x + y));
+
+  Expect.throwsStateError(() {
+    wrapped.single;
+  }, "single");
+
+  Expect.throwsStateError(() {
+    wrapped.singleWhere((_) => true);
+  }, "singleWhere true");
+  Expect.throwsStateError(() {
+    wrapped.singleWhere((_) => false);
+  }, "singleWhere false");
+
+  Expect.setEquals(wrapped.skip(0), original.skip(0));
+  Expect.setEquals(wrapped.skip(1), original.skip(1));
+
+  Expect.setEquals(
+      wrapped.skipWhile((_) => true), original.skipWhile((_) => true));
+  Expect.setEquals(
+      wrapped.skipWhile((_) => false), original.skipWhile((_) => false));
+
+  Expect.setEquals(wrapped.take(0), original.take(0));
+  Expect.setEquals(wrapped.take(1), original.take(1));
+
+  Expect.setEquals(
+      wrapped.takeWhile((_) => true), original.takeWhile((_) => true));
+  Expect.setEquals(
+      wrapped.takeWhile((_) => false), original.takeWhile((_) => false));
+
+  var toListResult = wrapped.toList();
+  Expect.listEquals(original.toList(), toListResult);
+  toListResult.add(4);
+  Expect.listEquals([1, 2, 3, 4], toListResult);
+  toListResult[3] = 5;
+  Expect.listEquals([1, 2, 3, 5], toListResult);
+  // wrapped and original are intact
+  Expect.setEquals(copy, wrapped);
+  Expect.setEquals(copy, original);
+
+  var toSetResult = wrapped.toSet();
+  Expect.setEquals(original.toSet(), toSetResult);
+  toSetResult.add(4);
+  Expect.setEquals({1, 2, 3, 4}, toSetResult);
+  // wrapped and original are intact
+  Expect.setEquals(copy, wrapped);
+  Expect.setEquals(copy, original);
+
+  Expect.setEquals(wrapped.where((_) => true), original.where((_) => true));
+  Expect.setEquals(wrapped.where((_) => false), original.where((_) => false));
+}
+
+void testUnmodifiableSetApi() {
+  Set<int> original = {1, 2, 3};
+  Set<int> copy = {...original};
+  UnmodifiableSetView<int> wrapped = new UnmodifiableSetView(original);
+
+  Expect.isTrue(wrapped.containsAll(copy));
+  Expect.isTrue(wrapped.containsAll(copy.toList()));
+  Expect.isTrue(wrapped.containsAll([]));
+
+  Expect.isTrue(wrapped.intersection({}).isEmpty);
+  Expect.setEquals(wrapped.intersection(copy), original);
+
+  Expect.setEquals(wrapped.union({}), original);
+  Expect.setEquals(wrapped.union(copy), original);
+
+  Expect.setEquals(wrapped.difference({}), original);
+  Expect.isTrue(wrapped.difference(copy).isEmpty);
+}
+
+void testMutatingApisThrow() {
+  UnmodifiableSetView<int> s = new UnmodifiableSetView({1, 2, 3});
+
+  Expect.throwsUnsupportedError(() {
+    s.add(3);
+  }, "add");
+
+  Expect.throwsUnsupportedError(() {
+    s.addAll({1, 2, 3});
+  }, "addAll");
+
+  Expect.throwsUnsupportedError(() {
+    s.addAll(<int>{});
+  }, "addAll empty");
+
+  Expect.throwsUnsupportedError(() {
+    s.remove(3);
+  }, "remove");
+
+  Expect.throwsUnsupportedError(() {
+    s.removeAll({1, 2, 3});
+  }, "removeAll");
+
+  Expect.throwsUnsupportedError(() {
+    s.removeAll(<int>{});
+  }, "removeAll empty");
+
+  Expect.throwsUnsupportedError(() {
+    s.retainAll({1, 2, 3});
+  }, "retainAll");
+
+  Expect.throwsUnsupportedError(() {
+    s.retainAll(<int>{});
+  }, "retainAll empty");
+
+  Expect.throwsUnsupportedError(() {
+    s.removeWhere((_) => true);
+  }, "removeWhere");
+
+  Expect.throwsUnsupportedError(() {
+    s.retainWhere((_) => false);
+  }, "retainWhere");
+
+  Expect.throwsUnsupportedError(() {
+    s.clear();
+  }, "clear");
+}
+
+void testChangesInOriginalSetAreObservedInUnmodifiableView() {
+  Set<int> original = {1, 2, 3};
+  Set<int> copy = {...original};
+  UnmodifiableSetView<int> wrapped = new UnmodifiableSetView(original);
+
+  original.add(4);
+  Expect.setEquals(original, wrapped);
+  Expect.setEquals({4}, wrapped.difference(copy));
+}
+
+void testForeach(Set<int> wrapped, Set<int> original) {
+  var wrapCtr = 0;
+  var origCtr = 0;
+
+  wrapped.forEach((x) {
+    wrapCtr += x;
+  });
+
+  original.forEach((x) {
+    origCtr += x;
+  });
+
+  Expect.equals(wrapCtr, origCtr);
+}
+
+void testIterator(Set<int> wrapped, Set<int> original) {
+  Iterator wrapIter = wrapped.iterator;
+  Iterator origIter = original.iterator;
+
+  while (origIter.moveNext()) {
+    Expect.isTrue(wrapIter.moveNext());
+    Expect.equals(wrapIter.current, origIter.current);
+  }
+
+  Expect.isFalse(wrapIter.moveNext());
+}
diff --git a/tools/VERSION b/tools/VERSION
index 7cff4c5..d086c9e 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 12
 PATCH 0
-PRERELEASE 140
+PRERELEASE 141
 PRERELEASE_PATCH 0
\ No newline at end of file