Author ncoghlan
Recipients Inyeol.Lee, Jim Fasarakis-Hilliard, belopolsky, benjamin.peterson, danielsh, emptysquare, erickt, esc24, georg.brandl, glyph, gvanrossum, ncoghlan, rhettinger, serhiy.storchaka, yselivanov
Date 2017-11-26.02:01:20
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1511661682.14.0.213398074469.issue10544@psf.upfronthosting.co.za>
In-reply-to
Content
Serhiy's PR now implements the "Prohibit yield & yield from in generator expressions and comprehensions" approach discussed on python-dev (currently as a hard SyntaxError, but it could be amended to be a warning instead without too much difficulty).

The PR does highlight an interesting subtlety though: the easiest way to implement this still allows yield expressions in the outermost iterator, since that gets compiled in a different scope from the rest of the comprehension body (it's evaluated eagerly and passed in to the implicit nested function).

I'm thinking we probably don't want to expose that detail to end users, and will instead want to include a second check that prohibits yield expressions in the outermost iterator as well. However, I'm not entirely sure how we could implement such a check, short of adding a new "yield expression prohibited" counter in the AST generation and/or symbol analysis pass.
History
Date User Action Args
2017-11-26 02:01:22ncoghlansetrecipients: + ncoghlan, gvanrossum, georg.brandl, rhettinger, belopolsky, benjamin.peterson, erickt, glyph, Inyeol.Lee, serhiy.storchaka, yselivanov, esc24, danielsh, emptysquare, Jim Fasarakis-Hilliard
2017-11-26 02:01:22ncoghlansetmessageid: <1511661682.14.0.213398074469.issue10544@psf.upfronthosting.co.za>
2017-11-26 02:01:22ncoghlanlinkissue10544 messages
2017-11-26 02:01:20ncoghlancreate