Ë
    pPêjù  ã                  ó‚   — d dl mZ d dlZd dlmZmZmZmZmZ d dl	m
Z
 d dlmZ d dlmZ  G d„ dej                  «      Zy)	é    )ÚannotationsN)ÚENV_ATTR_NAMEÚGENERATOR_ATTRIBUTE_PREFIXÚNEXT_LABEL_ATTR_NAMEÚTEMP_ATTR_NAMEÚ generator_frame_attribute_prefix)Ú	RInstance)Úbuild_ir_for_single_file2)Úinsert_spillsc                  ó   — e Zd Zdd„Zdd„Zy)Ú	TestSpillc                ó€  — d}t        |j                  «       «      \  }}}}t        d„ |j                  D «       «      }|j                  €J ‚t        |j                  |«       |j                  t           }t        |t        «      sJ ‚|j                  }|j                  «       sJ ‚t        |j                  v sJ ‚t        d„ |j                  D «       «      sJ ‚t        d„ |j                  D «       «      sJ ‚t        |j                  |j                   ¬«      }|dz   |j                  v sJ ‚t"        dz   |j                  vsJ ‚y )Nay  def make() -> str:
    return "left"

def outer():
    def nested(value: str):
        result = ""
        for item in [value]:
            # The loop iterator is promoted from a register during IR building,
            # while the result of make() is spilled by the later transform.
            result += make() + (yield item)
        return result
    return nested("right")
c              3  ó:   K  — | ]  }|j                   sŒ|–— Œ y ­w©N©Úhas_running_flag©Ú.0Úcls     úZ/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypyc/test/test_spill.pyú	<genexpr>zVTestSpill.test_separate_generator_environment_keeps_spills_on_frame.<locals>.<genexpr>%   ó   è ø€ ÒH˜B°B×4GÓ4G”RÑHùó   ‚”c              3  óL   K  — | ]  }|j                  t        d z   «      –— Œ y­w)Ú2_N©Ú
startswithr   ©r   Únames     r   r   zVTestSpill.test_separate_generator_environment_keeps_spills_on_frame.<locals>.<genexpr>2   ó   è ø€ ÒW¸d�4—?‘?¤>°DÑ#8×9ÑWùó   ‚"$c              3  óL   K  — | ]  }|j                  t        d z   «      –— Œ y­w)Ú3_Nr   r   s     r   r   zVTestSpill.test_separate_generator_environment_keeps_spills_on_frame.<locals>.<genexpr>3   r    r!   ©Úis_final_classÚvalue)r
   Ú
splitlinesÚnextÚclassesÚenv_user_functionr   Ú
attributesr   Ú
isinstancer	   Úclass_irÚattrs_are_thread_confinedr   Úanyr   Úfullnamer%   r   )ÚselfÚsourceÚmoduleÚ_ÚframeÚenv_typeÚenvironmentÚframe_prefixs           r   Ú9test_separate_generator_environment_keeps_spills_on_framezCTestSpill.test_separate_generator_environment_keeps_spills_on_frame   s2  € ðˆô 4°F×4EÑ4EÓ4GÓH‰ˆ��1�aÜÑH &§.¡.ÔHÓHˆØ×&Ñ&Ð2Ð2Ð2ä�e×-Ñ-¨uÔ5à×#Ñ#¤MÑ2ˆÜ˜(¤IÔ.Ð.Ð.Ø×'Ñ'ˆð ×.Ñ.Ô0Ð0Ð0Ü# u×'7Ñ'7Ñ7Ð7Ð7ÜÑWÀe×FVÑFVÔWÔWÐWÐWÜÑWÀe×FVÑFVÔWÔWÐWÐWô 8Ø�N‰N¨5×+?Ñ+?ô
ˆð ˜gÑ%¨×)9Ñ)9Ñ9Ð9Ð9Ü)¨GÑ3¸;×;QÑ;QÑQÐQÑQó    c                ó"  — d}t        |j                  «       «      \  }}}}t        d„ |j                  D «       «      }|j                  t
           }t        |t        «      sJ ‚|j                  }t        |j                  «      }t        |j                  «      }|j                  «       sJ ‚|j                  «       rJ ‚t        |j                  |j                  ¬«      }	t        dz   |v sJ ‚|	dz   |vsJ ‚dD ]  }
|	|
z   |v sJ ‚t        |
z   |vrŒJ ‚ y )Nzôdef outer():
    def nested(captured: str, private: str):
        def callback() -> str:
            return captured

        private_local = private
        yield callback()
        yield private_local
    return nested("captured", "private")
c              3  ó:   K  — | ]  }|j                   sŒ|–— Œ y ­wr   r   r   s     r   r   zTTestSpill.test_generator_locals_use_private_frame_unless_captured.<locals>.<genexpr>I   r   r   r$   Úcaptured)ÚprivateÚprivate_localÚcallback)r
   r'   r(   r)   r+   r   r,   r	   r-   Úsetr.   r   r0   r%   r   )r1   r2   r3   r4   r5   r6   r7   Úframe_attrsÚenvironment_attrsr8   r   s              r   Ú7test_generator_locals_use_private_frame_unless_capturedzATestSpill.test_generator_locals_use_private_frame_unless_captured<   s$  € ð
ˆô 4°F×4EÑ4EÓ4GÓH‰ˆ��1�aÜÑH &§.¡.ÔHÓHˆà×#Ñ#¤MÑ2ˆÜ˜(¤IÔ.Ð.Ð.Ø×'Ñ'ˆÜ˜%×*Ñ*Ó+ˆÜ × 6Ñ 6Ó7Ðà×.Ñ.Ô0Ð0Ð0Ø×8Ñ8Ô:Ð:Ð:ä7Ø�N‰N¨5×+?Ñ+?ô
ˆô *¨JÑ6Ð:KÑKÐKÐKØ˜jÑ(°Ñ;Ð;Ð;Ø<ò 	NˆDØ $Ñ&¨+Ñ5Ð5Ð5Ü-°Ñ4Ð<MÒMÐMÐMñ	Nr:   N)ÚreturnÚNone)Ú__name__Ú
__module__Ú__qualname__r9   rD   © r:   r   r   r      s   „ ó(RôTNr:   r   )Ú
__future__r   ÚunittestÚmypyc.commonr   r   r   r   r   Úmypyc.ir.rtypesr	   Úmypyc.test.testutilr
   Úmypyc.transform.spillr   ÚTestCaser   rJ   r:   r   ú<module>rR      s6   ðÝ "ã ÷õ õ &Ý 9Ý /ôJN�×!Ñ!õ JNr:   