Hi,

Dag Sverre Seljebotn wrote:
> When it comes to FlattenInListTransform, I was thinking about something 
> along the lines of an "StatAsExprNode", which would be sort of the 
> inverse of ExprStatNode: It would contain a block which could contain 
> "ReturnFromStatAsExprNodeNode" (though a better name is needed :-)) 
> which would yield the value of the statement list, evaluated as an 
> expression.

I thought about this, too. The main problems with TempsBlockNode are that
it a) requires the type of a temp variable before hand (which is bad for
transforms that run before type analysis), and b) is a block statement, not
an expression. Making it an ExprNode and moving the current use into a
ExprStatNode would fix that.

However, there is still a problem with things like except blocks, where
special subexpressions have a dedicated type that cannot easily be replaced
by a generic temp handling class. This currently leads to sub-optimal temps
usage e.g. for the exception value that the with-transform must catch.

Not sure if that remains a problem once we moved everything to new-style
temps. (and yes, I fear migrating NameNode, too).

Stefan
_______________________________________________
Cython-dev mailing list
[email protected]
http://codespeak.net/mailman/listinfo/cython-dev

Reply via email to