Cause passing a string to generator.throw() to raise a deprecation warning.
diff --git a/Misc/NEWS b/Misc/NEWS
index 214611b..24b29eb 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,9 @@
Core and builtins
-----------------
+- Issue #1147: Generators were not raising a DeprecationWarning when a string
+ was passed into throw().
+
- Patch #1031213: Decode source line in SyntaxErrors back to its original source
encoding.
diff --git a/Objects/genobject.c b/Objects/genobject.c
index 4d0c4f6..063b907 100644
--- a/Objects/genobject.c
+++ b/Objects/genobject.c
@@ -262,6 +262,12 @@
typ->ob_type->tp_name);
goto failed_throw;
}
+ else {
+ /* String exceptions are deprecated. */
+ if (PyErr_Warn(PyExc_DeprecationWarning,
+ "raising string exceptions is deprecated"))
+ goto failed_throw;
+ }
PyErr_Restore(typ, val, tb);
return gen_send_ex(gen, Py_None, 1);