Stefan Behnel wrote: > Hi, > > I ran into this more than once already, so I think this is worth > discussing. In a couple of cases, an analyse_types() method finds out that > the current node isn't suitable for what is actually happening. There are a > couple of different hacks that deal with that, ranging from __class__ > replacement to a partial reconfiguration of the node together with a > subsequent transform that replaces it. > > Could we change the semantics of analyse_types() to return the current node > instead, so that it is free to return a different node if it needs to? > Since this isn't happening in a transform, this would mean that we need to > change a lot of code to get the old node reference replaced wherever > analyse_types() is called, but these places shouldn't be too hard to find > at least. > > I know that this interferes with the idea of transforms, but at least in > some cases, it's easier to replace a node directly after finding out that > it needs to be replaced, than to do part of the analysis now and to rely on > a later transform to do the replacement and the correct setup of the new > node, especially when it may have an impact on some of the surrounding > nodes (e.g. because the new node returns a completely different type). > > What do you think? > +1. I don't think it really interferes with the idea of transforms; it's more like going only half the way because it is less likely to break the code.
If somebody is preparing 0.13 for release then that somebody will have to comment on whether it should wait until after the release though. Dag Sverre _______________________________________________ Cython-dev mailing list [email protected] http://codespeak.net/mailman/listinfo/cython-dev
