bpo-42576: Raise TypeError when passing in keyword arguments to GenericAlias (GH-23656)



Use `_PyArg_NoKeywords` instead of `_PyArg_NoKwnames` when checking the `kwds` tuple when creating `GenericAlias`. This fixes an interpreter crash when passing in keyword arguments to `GenericAlias`'s constructor.

Needs backport to 3.9.

Automerge-Triggered-By: GH:gvanrossum
diff --git a/Lib/test/test_genericalias.py b/Lib/test/test_genericalias.py
index 912fb33..c113e53 100644
--- a/Lib/test/test_genericalias.py
+++ b/Lib/test/test_genericalias.py
@@ -302,6 +302,11 @@ def test_weakref(self):
                 alias = t[int]
                 self.assertEqual(ref(alias)(), alias)
 
+    def test_no_kwargs(self):
+        # bpo-42576
+        with self.assertRaises(TypeError):
+            GenericAlias(bad=float)
+
 
 if __name__ == "__main__":
     unittest.main()