On Nov 6, 2014, at 10:54, Guido van Rossum
This is confusing because it breaks the (intended) equivalence between list(<genexp>) and [<genexp>] (even though we refer to the latter as a comprehension, the syntax inside the [] is the same as a generator expression.
If this change (I mean the proposed clever workaround, not the "no terminating generators with StopIteration" change that's too radical) would be sufficient to make that equivalence actually true instead of just pretty close, I think that's reason enough to fix it on its own. Especially since that would make it easy to fix the genexpr docs. (Read 6.2.8 and tell me what it says the semantics of a genexpr are, and what values it yields. Now try to think of a way to fix that without repeating most of the text from 6.2.4, which nobody wants to do. If the docs could just define the semantics of genexprs, then define listcomps by saying that [<genexpr>] is equivalent to list(<genexpr>), that would be a lot simpler and clearer.)