
    hi                       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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)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                j    t          | |d          }d|_        d|_        d|_        t          |_        |S )N   T)r   use_builtins_fixturessemantic_analysis_onlyshow_tracebackr   python_version)r   r   optionss      e/var/www/html/Pagina-Ingenieria-Requisitos/venv/lib/python3.11/site-packages/mypy/test/testsemanal.pyget_semanal_optionsr'   )   s8    L(A66G$(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_case6   s    Xr(   Nr   r   r   r+   )__name__
__module____qualname__semanal_filesfiles
native_sepr1    r(   r&   r*   r*   2   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   sortedr7   keystest_modulesstr_with_optionssplitmessagesnormalize_outputr   r   outputline)r   srcr%   resultamodulees          r&   r.   r.   :   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_errorr/   s     r&   r1   zSemAnalErrorSuite.run_casec   s    8$$$$$r(   Nr2   )	r3   r4   r5   r7   sysversion_infor6   appendr1   r9   r(   r&   rV   rV   ^   sS        "#E
7""<===% % % % % %r(   rV   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 (rA   rB   )rC   rD   r   r   r'   r
   rF   r   rL   rM   r   r   rN   rE   rO   )r   rP   resrR   rT   s        r&   rX   rX   g   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=   :  r@   rA   rB   )rC   rD   r   r   r'   r
   rF   r   rG   r7   rH   rI   r[   r   namesrK   rL   r   rN   rE   rO   )r0   r   rP   rQ   rR   rS   srT   s           r&   r1   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!Nr2   r3   r4   r5   required_out_sectionr7   r1   r9   r(   r&   r`   r`      s6        $%E
 
 
 
 
 
r(   r`   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(   r@   rA   rB   )rC   rD   r   r   r'   r
   rF   r   TypeInfoMapr7   itemsrI   rd   values
isinstancenoder   rm   anyr   rK   rL   r   rN   rE   rO   )
r0   r   rP   rQ   rR   	typeinfosrS   rE   rT   rq   s
            @r&   r1   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Nr2   rf   r9   r(   r&   ri   ri      s6        $%E 
  
  
  
  
  
r(   ri   c                      e Zd ZddZdS )rs   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;   rc   z : rB   )rG   rt   rC   r   rK   r[   )r0   rR   xytis        r&   __str__zTypeInfoMap.__str__   s    &'4::<<(( 	& 	&DAq##CFFLL$6$677BHH_!____%%%%	"yy||r(   N)r   r   )r3   r4   r5   r   r9   r(   r&   rs   rs      s(             r(   rs   )r   r   r   r   r   r	   r2   )(__doc__
__future__r   rY   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   r6   rZ   remover'   r*   r.   rV   rX   r`   ri   dictr   rs   r9   r(   r&   <module>r      su   " " " " " " " " 



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