
    6 f7                       d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z	 ddl
mZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZmZ ddlmZmZmZmZmZ  edg d          Zej        dk     re                    d           d'dZ  G d de          Z!d(dZ" G d de          Z#d(d Z$ G d! d"e          Z% G d# d$e          Z& G d% d&ee'ef                   Z(dS ))zSemantic analyzer test cases    )annotationsN)Dict)build)PYTHON3_VERSION)CompileError)BuildSource)TypeInfo)Options)test_temp_dir)DataDrivenTestCase	DataSuite)assert_string_arrays_equalfind_test_filesnormalize_error_messagesparse_optionstestfile_pyversionzsemanal-*.test)semanal-errors-python310.testsemanal-errors.testsemanal-typeinfo.testsemanal-symtable.test)patternexclude   
   zsemanal-python310.testprogram_textstrtestcaser   returnr
   c                x    t          | |d          }d|_        d|_        d|_        t          |_        d|_        |S )N   T)r   use_builtins_fixturessemantic_analysis_onlyshow_tracebackr   python_versionforce_uppercase_builtins)r   r   optionss      K/var/www/equiseq/venv/lib/python3.11/site-packages/mypy/test/testsemanal.pyget_semanal_optionsr)   *   s@    L(A66G$(G!%)G"!G,G'+G$N    c                      e Zd ZeZdZddZdS )	SemAnalSuiteTr   r   r   Nonec                $    t          |           d S N)test_semanalselfr   s     r(   run_casezSemAnalSuite.run_case8   s    Xr*   Nr   r   r   r-   )__name__
__module____qualname__semanal_filesfiles
native_sepr3    r*   r(   r,   r,   4   s2        EJ     r*   r,   r-   c           	        	 d                     | j                  }t          ||           }t          | j                  |_        t          j        t          dd|          g|t                    }|j	        }|rt          |          t          |j                                                  D ]A}|| j        v r6||j        |                             |                              d          z  }Bn# t          $ r}|j        }Y d}~nd}~ww xY w| j        rt'          |          }t)          | j        |d| j         d| j         d           dS )zPerform a semantic analysis test case.

    The testcase argument contains a description of the test case
    (inputs and output).
    
mainNsourcesr'   alt_lib_path"Invalid semantic analyzer output (, line ))joininputr)   r   filer%   r   r   r   errorsr   sortedr9   keystest_modulesstr_with_optionssplitmessagesnormalize_outputr   r   outputline)r   srcr'   resultamodulees          r(   r0   r0   <   sx   ii''%c844!3HM!B!B s334gTa
 
 
 M 	"q//! V\..0011 	P 	PF...V\&)::7CCII$OOO	P    J  ($Q''	SX]SS8=SSS    s   C/C2 2
D<DDc                  \    e Zd ZdgZej        dk    re                    d           d
dZd	S )SemAnalErrorSuiter   r   r   r   r   r   r-   c                $    t          |           d S r/   )test_semanal_errorr1   s     r(   r3   zSemAnalErrorSuite.run_casee   s    8$$$$$r*   Nr4   )	r5   r6   r7   r9   sysversion_infor8   appendr3   r;   r*   r(   rX   rX   `   sS        "#E
7""<===% % % % % %r*   rX   c           	     v   	 d                     | j                  }t          j        t          dd|          gt	          ||           t
                    }|j        }n# t          $ r}|j        }Y d}~nd}~ww xY w| j	        rt          |          }t          | j        |d| j         d| j         d           dS )Perform a test case.r=   r>   Nr?   zInvalid compiler output (rC   rD   )rE   rF   r   r   r)   r   rH   r   rN   rO   r   r   rP   rG   rQ   )r   rR   resrT   rV   s        r(   rZ   rZ   i   s    ii''k s334'X66&
 
 

 J    J   ($Q''^^^hm^^^    s   AA 
A9(A44A9c                       e Zd ZdZdgZd	dZdS )
SemAnalSymtableSuiteTr   r   r   r   r-   c           	        	 d                     |j                  }t          j        t          dd|          gt	          ||          t
                    }|j        }|rt          |          t          |j	        
                                          D ]p}||j        v re|                    | d           t          |j	        |         j                                      d          D ]}|                    d|z              qn# t          $ r}|j        }Y d}~nd}~ww xY wt#          |j        |d|j         d|j         d	           dS )
r_   r=   r>   Nr?   :  rB   rC   rD   )rE   rF   r   r   r)   r   rH   r   rI   r9   rJ   rK   r]   r   namesrM   rN   r   rP   rG   rQ   )r2   r   rR   rS   rT   rU   srV   s           r(   r3   zSemAnalSymtableSuite.run_case   sx   	))HN++C[$VT3778+C::*  F A &"1oo% !2!2!4!455 + +X222HH\\\*** f!5!;<<BB4HH + +****	+
  	 	 	
AAAAAA	"OWWWx}WWW	
 	
 	
 	
 	
s   DD 
D!DD!Nr4   r5   r6   r7   required_out_sectionr9   r3   r;   r*   r(   rb   rb      s6        $%E
 
 
 
 
 
r*   rb   c                       e Zd ZdZdgZd	dZdS )
SemAnalTypeInfoSuiteTr   r   r   r   r-   c           	       	 	 d                     |j                  }t          j        t          dd|          gt	          ||          t
                    }|j        }|rt          |          t                      }|j	        
                                D ]|\  }}||j        v rn|j                                        D ]T	t          	j        t                     r8	j        sJ t%          	fd|j        D                       r	j        |	j        <   U}t'          |                              d          }n# t          $ r}|j        }Y d}~nd}~ww xY wt-          |j        |d|j         d|j         d           dS )	r_   r=   r>   Nr?   c              3  R   K   | ]!}j                             |d z             V  "dS ).N)fullname
startswith).0mns     r(   	<genexpr>z0SemAnalTypeInfoSuite.run_case.<locals>.<genexpr>   s7      "a"aa1:#8#8S#A#A"a"a"a"a"a"ar*   rB   rC   rD   )rE   rF   r   r   r)   r   rH   r   TypeInfoMapr9   itemsrK   rf   values
isinstancenoder	   ro   anyr   rM   rN   r   rP   rG   rQ   )
r2   r   rR   rS   rT   	typeinfosrU   rG   rV   rs   s
            @r(   r3   zSemAnalTypeInfoSuite.run_case   s   	))HN++C[$VT3778+C::*  F
 A &"1oo% $I & 2 2 4 4 ? ?X222!Z..00 ? ?%afh77 ?#$:--:""a"a"a"a8K`"a"a"aaa ?89	!* 5 I$$T**AA 	 	 	
AAAAAA	"OWWWx}WWW	
 	
 	
 	
 	
s   D2D6 6
E EENr4   rh   r;   r*   r(   rk   rk      s6        $%E 
  
  
  
  
  
r*   rk   c                      e Zd ZddZdS )ru   r   r   c                @   dg}t          |                                           D ]U\  }}d                    t          |                              d                    }|                    d| d|            V|dxx         dz  cc<   d                    |          S )NzTypeInfoMap(z
  r=   re   z : rD   )rI   rv   rE   r   rM   r]   )r2   rT   xytis        r(   __str__zTypeInfoMap.__str__   s    &'4::<<(( 	& 	&DAq##CFFLL$6$677BHH_!____%%%%	"yy||r*   N)r   r   )r5   r6   r7   r   r;   r*   r(   ru   ru      s(             r*   ru   )r   r   r   r   r   r
   r4   ))__doc__
__future__r   r[   typingr   mypyr   mypy.defaultsr   mypy.errorsr   mypy.modulefinderr   
mypy.nodesr	   mypy.optionsr
   mypy.test.configr   mypy.test.datar   r   mypy.test.helpersr   r   r   r   r   r8   r\   remover)   r,   r0   rX   rZ   rb   rk   r   ru   r;   r*   r(   <module>r      s   " " " " " " " " 



             ) ) ) ) ) ) $ $ $ $ $ $ ) ) ) ) ) )                   * * * * * * 8 8 8 8 8 8 8 8                    g1222       9      H% % % % %	 % % %   2
 
 
 
 
9 
 
 
B$
 $
 $
 $
 $
9 $
 $
 $
N    $sH}%     r*   