Issue #26146: enhance ast.Constant error message

Mention the name of the invalid type in error message of AST validation for
constants.

Suggestion made by Joseph Jevnik on a review.
diff --git a/Lib/test/test_ast.py b/Lib/test/test_ast.py
index 6d6c9bd..57060d8 100644
--- a/Lib/test/test_ast.py
+++ b/Lib/test/test_ast.py
@@ -951,6 +951,12 @@
         exec(code, ns)
         return ns['x']
 
+    def test_validation(self):
+        with self.assertRaises(TypeError) as cm:
+            self.compile_constant([1, 2, 3])
+        self.assertEqual(str(cm.exception),
+                         "got an invalid type in Constant: list")
+
     def test_singletons(self):
         for const in (None, False, True, Ellipsis, b'', frozenset()):
             with self.subTest(const=const):
diff --git a/Python/ast.c b/Python/ast.c
index ecfc14c..d19546a 100644
--- a/Python/ast.c
+++ b/Python/ast.c
@@ -288,7 +288,9 @@
             validate_keywords(exp->v.Call.keywords);
     case Constant_kind:
         if (!validate_constant(exp->v.Constant.value)) {
-            PyErr_SetString(PyExc_TypeError, "invalid type in Constant");
+            PyErr_Format(PyExc_TypeError,
+                         "got an invalid type in Constant: %s",
+                         Py_TYPE(exp->v.Constant.value)->tp_name);
             return 0;
         }
         return 1;