• Jeremy Hylton's avatar
    Preliminary support for future nested scopes · 29906eef
    Jeremy Hylton yazdı
    compile.h: #define NESTED_SCOPES_DEFAULT 0 for Python 2.1
               __future__ feature name: "nested_scopes"
    
    symtable.h: Add st_nested_scopes slot.  Define flags to track exec and
        import star.
    
    Lib/test/test_scope.py: requires nested scopes
    
    compile.c: Fiddle with error messages.
    
        Reverse the sense of ste_optimized flag on
        PySymtableEntryObjects.  If it is true, there is an optimization
        conflict.
    
        Modify get_ref_type to respect st_nested_scopes flags.
    
        Refactor symtable_load_symbols() into several smaller functions,
        which use struct symbol_info to share variables.  In new function
        symtable_update_flags(), raise an error or warning for import * or
        bare exec that conflicts with nested scopes.  Also, modify handle
        for free variables to respect st_nested_scopes flag.
    
        In symtable_init() assign st_nested_scopes flag to
        NESTED_SCOPES_DEFAULT (defined in compile.h).
    
        Add preliminary and often incorrect implementation of
        symtable_check_future().
    
        Add symtable_lookup() helper for future use.
    29906eef
test_scope.py 5.78 KB