
    /hh                     .    S SK r S SKJr   " S S\5      rg)    N)CodegenTestCasec                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)IsolatedCodeGenTests   c                    U Vs/ s H  n[        U[        5      (       d  M  UPM     nnU Vs/ s H  n[        U[        5      (       a  M  UPM     nnU R                  X5        U R                  [	        UR                  5       5      [	        U5      5        [        UR                  5       U5       H  u  pVU R                  XV5        M     g s  snf s  snf )N)
isinstancelistassertInstructionsMatchassertEquallen
get_nestedzip!assertInstructionsMatch_recursive)selfinstsexpected_instsiexpected_nestedn_insts
n_expecteds          C/opt/python-3.13.8/usr/lib/python3.13/test/test_compiler_codegen.pyr   6IsolatedCodeGenTests.assertInstructionsMatch_recursive
   s    &4Ln
1d8K1nL%3O^:a;N!^O$$U;U--/0#o2FG#&u'7'7'9?#KG227G $L	 MOs   CCCCc                 v    SS K nUR                  USS5      nU R                  U5      nU R                  XR5        g )Nr   z
my_file.pyexec)astparsegenerate_coder   )r   snippetr   r   ar   s         r   codegen_test!IsolatedCodeGenTests.codegen_test   s5    IIg|V4""1%..uE    c                     SnU R                  5       nSSSSU R                  5       =nS4SSU R                  5       =n4US	US
SS/nU R                  X5        g )Nz42 if True else 24RESUMEr   r   )
LOAD_CONSTr      )TO_BOOLr   r'   POP_JUMP_IF_FALSEr'   )r&   r'   r'   JUMP_NO_INTERRUPT)r&      r'   POP_TOPNr&      RETURN_VALUENLabelr    )r   r   	false_lblexit_lblexpecteds        r   test_if_expression'IsolatedCodeGenTests.test_if_expression   so    &JJL	  tzz|";)Q?  djjl":(; "
 	',r"   c                     SnU R                  5       nSSSU R                  5       =nSU R                  5       =nS4SSS	S
SSSSU4USSSS/nU R                  X5        g )Nzfor x in l:
	print(x)r$   )	LOAD_NAMEr   r'   )GET_ITERNr'   FOR_ITERr'   )NOPNr'   r'   )
STORE_NAMEr'   r'   )r:   r+   r+   )	PUSH_NULLNr+   )r:   r'   r+   )CALLr'   r+   r,   JUMP)END_FORNr&   r   r0   r2   )r   r   r4   loop_lblr5   r6   s         r   test_for_loop"IsolatedCodeGenTests.test_for_loop+   s    +JJL	!

$HTZZ\115 "X"%
( 	',r"   c                 h    [         R                  " S5      nSSSSSS/ SQ/nU R                  X5        g )	Nz=
            def f(x):
                return x + 42
        r%   r   rC   MAKE_FUNCTIONNr>   r   r&   r'   r0   )rH   )	LOAD_FASTr   rL   )	BINARY_OPr   r0   rC   r0   textwrapdedentr    r   r   r6   s      r   test_function"IsolatedCodeGenTests.test_functionD   sE    // #  #"	
& 	',r"   c                     [         R                  " S5      nSSSSSSSSSSS	SS
SS/ SQ/ SQ//nU R                  X5        g )Nz
            def f():
                def h():
                    return 12
                def g():
                    x = 1
                    y = 2
                    z = 3
                    u = 4
                    return 42
        rH   rC   rI   rK   rL   r0   
STORE_FASTr   r&   r+   rW   r'   )rH   r=   NrL   r0   rC   r0   )rH   rL   rV   rX   rY   r.   )rW   r+   )r&      )rW   r/   rZ   )r&      r0   rC   r0   rO   rR   s      r   test_nested_functions*IsolatedCodeGenTests.test_nested_functions^   sm    // 
# 
 #" !'!!'!!&'#,
Z 	',r"   c                 n   SnU R                  [        S5       nU R                  US 5        S S S 5        U R                  WR                  R
                  5        U R                  UR                  R                  S5        U R                  UR                  R                  S5        g ! , (       d  f       N= f)Nz	return 42z'return' outside functionr'   
   )	assertRaisesRegexSyntaxErrorr    assertIsNone	exceptiontextr   offset
end_offset)r   r   cms      r   )test_syntax_error__return_not_in_function>IsolatedCodeGenTests.test_syntax_error__return_not_in_function   s    ##K1LMQSgt, N",,++,,,a000"5	 NMs   B&&
B4 N)__name__
__module____qualname____firstlineno__r   r    r7   rE   rS   r]   ri   __static_attributes__rk   r"   r   r   r      s(    HF-&-2-49-v6r"   r   )rP   test.support.bytecode_helperr   r   rk   r"   r   <module>rr      s     8
W6? W6r"   