diff --git a/pkg/analyzer/lib/src/dart/resolver/instance_creation_expression_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/instance_creation_expression_resolver.dart
index 87d363e..4037dc4 100644
--- a/pkg/analyzer/lib/src/dart/resolver/instance_creation_expression_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/instance_creation_expression_resolver.dart
@@ -85,10 +85,13 @@
             when element.isAccessibleIn(_resolver.definingLibrary)) {
           node.element = element;
         } else {
-          _resolver.diagnosticReporter.atNode(
-            node.constructorName,
-            diag.constWithUndefinedConstructor,
-            arguments: [contextType, node.constructorName.name],
+          _resolver.diagnosticReporter.report(
+            diag.constWithUndefinedConstructor
+                .withArguments(
+                  className: contextElement.displayName,
+                  constructorName: node.constructorName.name,
+                )
+                .at(node.constructorName),
           );
         }
       }
diff --git a/pkg/analyzer/lib/src/diagnostic/diagnostic.g.dart b/pkg/analyzer/lib/src/diagnostic/diagnostic.g.dart
index b4ba712..67ac296 100644
--- a/pkg/analyzer/lib/src/diagnostic/diagnostic.g.dart
+++ b/pkg/analyzer/lib/src/diagnostic/diagnostic.g.dart
@@ -2846,10 +2846,13 @@
 /// a constant constructor declared by the type <i>T</i>.
 ///
 /// Parameters:
-/// Object p0: the name of the type
-/// String p1: the name of the requested constant constructor
+/// String className: the name of the type
+/// String constructorName: the name of the requested constant constructor
 const DiagnosticWithArguments<
-  LocatableDiagnostic Function({required Object p0, required String p1})
+  LocatableDiagnostic Function({
+    required String className,
+    required String constructorName,
+  })
 >
 constWithUndefinedConstructor = DiagnosticWithArguments(
   name: 'const_with_undefined_constructor',
@@ -2858,7 +2861,7 @@
   type: DiagnosticType.COMPILE_TIME_ERROR,
   uniqueName: 'const_with_undefined_constructor',
   withArguments: _withArgumentsConstWithUndefinedConstructor,
-  expectedTypes: [ExpectedType.object, ExpectedType.string],
+  expectedTypes: [ExpectedType.string, ExpectedType.string],
 );
 
 /// 16.12.2 Const: It is a compile-time error if <i>T.id</i> is not the name of
@@ -17536,7 +17539,7 @@
 >
 wrongNumberOfTypeArgumentsDotShorthandConstructor = DiagnosticWithArguments(
   name: 'wrong_number_of_type_arguments_constructor',
-  problemMessage: "The constructor '{0}.{1}` doesn't have type parameters.",
+  problemMessage: "The constructor '{0}.{1}' doesn't have type parameters.",
   correctionMessage:
       "Try removing the type arguments, or adding a class name, followed by "
       "the type arguments, then the constructor name.",
@@ -18445,10 +18448,13 @@
 }
 
 LocatableDiagnostic _withArgumentsConstWithUndefinedConstructor({
-  required Object p0,
-  required String p1,
+  required String className,
+  required String constructorName,
 }) {
-  return LocatableDiagnosticImpl(diag.constWithUndefinedConstructor, [p0, p1]);
+  return LocatableDiagnosticImpl(diag.constWithUndefinedConstructor, [
+    className,
+    constructorName,
+  ]);
 }
 
 LocatableDiagnostic _withArgumentsConstWithUndefinedConstructorDefault({
diff --git a/pkg/analyzer/lib/src/generated/error_verifier.dart b/pkg/analyzer/lib/src/generated/error_verifier.dart
index 36da7ec..6ee1152 100644
--- a/pkg/analyzer/lib/src/generated/error_verifier.dart
+++ b/pkg/analyzer/lib/src/generated/error_verifier.dart
@@ -2932,10 +2932,13 @@
     // report as named or default constructor absence
     var name = constructorName.name;
     if (name != null) {
-      diagnosticReporter.atNode(
-        name,
-        diag.constWithUndefinedConstructor,
-        arguments: [namedType.qualifiedName, name.name],
+      diagnosticReporter.report(
+        diag.constWithUndefinedConstructor
+            .withArguments(
+              className: namedType.qualifiedName,
+              constructorName: name.name,
+            )
+            .at(name),
       );
     } else {
       diagnosticReporter.report(
diff --git a/pkg/analyzer/messages.yaml b/pkg/analyzer/messages.yaml
index 13b6b30..5d784a4 100644
--- a/pkg/analyzer/messages.yaml
+++ b/pkg/analyzer/messages.yaml
@@ -4156,9 +4156,9 @@
   constWithUndefinedConstructor:
     type: compileTimeError
     parameters:
-      Object p0: the name of the type
-      String p1: the name of the requested constant constructor
-    problemMessage: "The class '#p0' doesn't have a constant constructor '#p1'."
+      String className: the name of the type
+      String constructorName: the name of the requested constant constructor
+    problemMessage: "The class '#className' doesn't have a constant constructor '#constructorName'."
     correctionMessage: Try calling a different constructor.
     hasPublishedDocs: false
     comment: |-
@@ -19435,7 +19435,7 @@
       String p1: the name of the constructor being invoked
     sharedName: wrongNumberOfTypeArgumentsConstructor
     experiment: dot-shorthands
-    problemMessage: "The constructor '#p0.#p1` doesn't have type parameters."
+    problemMessage: "The constructor '#p0.#p1' doesn't have type parameters."
     correctionMessage: Try removing the type arguments, or adding a class name, followed by the type arguments, then the constructor name.
     hasPublishedDocs: true
   wrongNumberOfTypeArgumentsEnum:
diff --git a/pkg/analyzer/test/src/dart/resolution/dot_shorthand_constructor_invocation_test.dart b/pkg/analyzer/test/src/dart/resolution/dot_shorthand_constructor_invocation_test.dart
index ece6e92..18274d5 100644
--- a/pkg/analyzer/test/src/dart/resolution/dot_shorthand_constructor_invocation_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/dot_shorthand_constructor_invocation_test.dart
@@ -1089,4 +1089,74 @@
       [error(diag.dotShorthandMissingContext, 24, 17)],
     );
   }
+
+  test_undefinedConstructor_message() async {
+    await assertErrorsInCode(
+      r'''
+int f() => const .foo();
+''',
+      [
+        error(
+          diag.constWithUndefinedConstructor,
+          18,
+          3,
+          messageContains: ["class 'int'", "constructor 'foo'"],
+        ),
+      ],
+    );
+  }
+
+  test_undefinedConstructor_message_equalityRhs() async {
+    await assertErrorsInCode(
+      r'''
+bool f(int x) => x == const .foo();
+''',
+      [
+        // Make sure the error message properly refers to the `int` class. See
+        // https://github.com/dart-lang/sdk/issues/62352.
+        error(
+          diag.constWithUndefinedConstructor,
+          29,
+          3,
+          messageContains: ["class 'int'", "constructor 'foo'"],
+        ),
+      ],
+    );
+  }
+
+  test_wrongNumberOfTypeArguments_message() async {
+    await assertErrorsInCode(
+      r'''
+class C {}
+
+C f() => .new<int>();
+''',
+      [
+        error(
+          diag.wrongNumberOfTypeArgumentsDotShorthandConstructor,
+          25,
+          5,
+          messageContains: ["constructor 'C.new'"],
+        ),
+      ],
+    );
+  }
+
+  test_wrongNumberOfTypeArguments_message_equalityRhs() async {
+    await assertErrorsInCode(
+      r'''
+class C {}
+
+bool f(C c) => c == .new<int>();
+''',
+      [
+        error(
+          diag.wrongNumberOfTypeArgumentsDotShorthandConstructor,
+          36,
+          5,
+          messageContains: ["constructor 'C.new'"],
+        ),
+      ],
+    );
+  }
 }
diff --git a/pkg/analyzer/test/src/dart/resolution/dot_shorthand_invocation_test.dart b/pkg/analyzer/test/src/dart/resolution/dot_shorthand_invocation_test.dart
index 0352581..ca1d635 100644
--- a/pkg/analyzer/test/src/dart/resolution/dot_shorthand_invocation_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/dot_shorthand_invocation_test.dart
@@ -758,4 +758,42 @@
       [error(diag.invalidAssignment, 105, 9)],
     );
   }
+
+  test_undefinedInvocation_message() async {
+    await assertErrorsInCode(
+      r'''
+int f() => .foo();
+''',
+      [
+        error(
+          diag.dotShorthandUndefinedInvocation,
+          12,
+          3,
+          messageContains: [
+            "context type 'int'",
+            "static method or constructor 'foo'",
+          ],
+        ),
+      ],
+    );
+  }
+
+  test_undefinedInvocation_message_equalityRhs() async {
+    await assertErrorsInCode(
+      r'''
+bool f(int x) => x == .foo();
+''',
+      [
+        error(
+          diag.dotShorthandUndefinedInvocation,
+          23,
+          3,
+          messageContains: [
+            "context type 'int'",
+            "static method or constructor 'foo'",
+          ],
+        ),
+      ],
+    );
+  }
 }
diff --git a/pkg/analyzer/test/src/dart/resolution/dot_shorthand_property_access_test.dart b/pkg/analyzer/test/src/dart/resolution/dot_shorthand_property_access_test.dart
index 500139d..4a40ce7 100644
--- a/pkg/analyzer/test/src/dart/resolution/dot_shorthand_property_access_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/dot_shorthand_property_access_test.dart
@@ -717,4 +717,36 @@
   staticType: Object Function()
 ''');
   }
+
+  test_undefinedGetter_message() async {
+    await assertErrorsInCode(
+      r'''
+int f() => .foo;
+''',
+      [
+        error(
+          diag.dotShorthandUndefinedGetter,
+          12,
+          3,
+          messageContains: ["static getter 'foo'", "context type 'int'"],
+        ),
+      ],
+    );
+  }
+
+  test_undefinedGetter_message_equalityRhs() async {
+    await assertErrorsInCode(
+      r'''
+bool f(int x) => x == .foo;
+''',
+      [
+        error(
+          diag.dotShorthandUndefinedGetter,
+          23,
+          3,
+          messageContains: ["static getter 'foo'", "context type 'int'"],
+        ),
+      ],
+    );
+  }
 }
