[Cython] ComprehensionNode problem

Robert Bradshaw robertwb at math.washington.edu
Fri Sep 2 07:55:50 CEST 2011


On Sun, Aug 28, 2011 at 1:19 PM, Vitja Makarov <vitja.makarov at gmail.com> wrote:
> I've started #715 ticket investigation.
>
>
> Here is minimal test case:
>
> # cython: language_level=3
> def foo(target):
>    return [(e for e in t) for t in target]
>
> Crash in the ticket is related to GeneratorExpressionScope (name is
> not correct, actually ScopedExprScope or NestedScope)
>
> If you set languange_level to 2 you will see next error:
> ...
> Compiler crash traceback from this point on:
>  File "/home/vitja/work/cython-vitek-git/Cython/Compiler/ExprNodes.py",
> line 7732, in __init__
>    if not result_type.create_from_py_utility_code(env):
> AttributeError: 'UnspecifiedType' object has no attribute
> 'create_from_py_utility_code'
>
>
> Since ComprehensionNode.append and ComprehensionNode.loop.body is the
> same generator body is created twice in MarkClosureVisitor
>
> So the issue could be solved in two ways:
>
>  - Write special handler for ComprehensionNode in MarkClosureVisitor
>  - Remove append child attribute from ComprehensionNode (it can be
> removed completely or just from children attribute list)

+1 to the latter option (which I see is what you did, thanks).

- Robert


More information about the cython-devel mailing list