
    hihz                       U d 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 ddlmZmZmZmZmZmZmZmZmZmZ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!m"Z"m#Z# ddl$m%Z%m&Z&m'Z'm(Z( ddl)m*Z* ddl+m,Z, ddl-m.Z. ddl/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5 ddl6m7Z7 ddl8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z? ddl@mAZA ddlBmCZCmDZDmEZEmFZFmGZG ddlHmIZI ddlJmKZK dZLdeMd<   dnd'ZNdod-ZOdpd0ZPdqd2ZQdrd:ZR	 dsdtd=ZSdudCZTdvdEZUdwdHZVdxdJZWdydLZXdzdMZYd{dPZZd|dTZ[d}dUZ\d}dVZ]d~dZZ^dd[Z_dyd\Z`eaeef         Zb G d] d^e	          Zcdd_Zd G d` dae          Ze G db dce	          ZfddhZgddlZhdmS )a  Prepare for IR transform.

This needs to run after type checking and before generating IR.

For example, construct partially initialized FuncIR and ClassIR
objects for all functions and classes. This allows us to bind
references to functions and classes before we've generated full IR for
functions or classes.  The actual IR transform will then populate all
the missing bits, such as function bodies (basic blocks).

Also build a mapping from mypy TypeInfos to ClassIR objects.
    )annotations)defaultdict)Iterable)Final
NamedTuple)Graph)ARG_STAR	ARG_STAR2CallExprClassDef	Decorator
ExpressionFuncDef
MemberExprMypyFileNameExprOverloadedFuncDefRefExpr
SymbolNodeTypeInfoVar)refers_to_fullname)TraverserVisitor)InstanceTypeget_proper_type)FAST_PREFIXPROPSET_PREFIX	SELF_NAMEget_id_from_name)catch_errors)Errors)ClassIR)FUNC_CLASSMETHODFUNC_NORMALFUNC_STATICMETHODFuncDeclFuncSignature
RuntimeArg)	DeserMaps)	RInstanceRTypedict_rprimitivenone_rprimitiveobject_pointer_rprimitiveobject_rprimitivetuple_rprimitive)Mapper)get_func_defget_mypyc_attrsis_dataclassis_extension_classis_trait)CompilerOptions)is_same_type__mypyc_generator_helper__r   GENERATOR_HELPER_NAMEmapperr2   moduleslist[MypyFile]graphr   typesdict[Expression, Type]optionsr8   errorsr"   returnNonec                   g }|D ]4d j         D             }|                    fd|D                        5|D ]\  }t          |j        j        t          |          |j        j        |j        j                  }	t          j
        ||          |	_        |	j        r#|j        j                                        |	_        |j        sd |	_        |	| j        |j        <   | j                            |	j                   |j        j        ot+          |j        j                  dk    |	_        |D ]\  }t/          j
        |j                  5  | j        |j                 j        rt3          j
        j        ||| |           nt5          j
        j        ||| |           d d d            n# 1 swxY w Y   |D ]:\  }| j        |j                 }	|	j        rt7          |j        |	j        |            ;|D ],t9                    D ]}
t;          j        d |
| |           -|D ]\  }| j        |j                 }	|	j        D ]}|	j        dd          D ]}||j        v r|tA          |	j        |         |j        |                   sV|j        j!        |         j"        }|J |j        rdnd}|#                    d| d	| d
|j         dj
        |j                   d S )Nc                <    g | ]}t          |t                    |S  )
isinstancer   ).0nodes     e/var/www/html/Pagina-Ingenieria-Requisitos/venv/lib/python3.11/site-packages/mypyc/irbuild/prepare.py
<listcomp>z"build_type_map.<locals>.<listcomp>X   s'    UUU4*T8:T:TU$UUU    c                    g | ]}|fS rH   rH   )rJ   cdefmodules     rL   rM   z"build_type_map.<locals>.<listcomp>Y   s    BBB4BBBrN   )is_abstractis_final_classr      traitclassz	Type of "z%" is incompatible with definition in z "")$defsextendr#   namefullnamer7   inforR   is_finalr6   pathis_ext_classdeletable_attributescopy	deletableglobal_optschildren
type_to_irsymbol_fullnamesaddis_enumlenenum_membersr!   lineprepare_class_defprepare_non_ext_class_def#prepare_implicit_property_accessorsget_module_func_defsprepare_func_def
attributesmror9   namesrK   error)r<   r=   r?   r@   rB   rC   classesmodule_classesrP   class_irfuncattrbase_irrK   kindrQ   s                  @rL   build_type_mapr|   M   s    G D DUU6;UUUBBBB>BBBCCCC   Q QIOTNN	-9-
 
 
 !36;f M M  	G!%!?!D!D!F!FH" 	% $H'/$)$##H$56669,PTY5K1L1Lq1P    &+ty11 	 	 +8 !&+vffV]^^^^)K$  		 	 	 	 	 	 	 	 	 	 	 	 	 	 	   ^ ^$TY/  	^/	8V_V\]]]
  K K(00 	K 	KDV_dD&'JJJJ	K    $TY/' 	 	D#<+  7---'(;D(A7CUVZC[\\ 	#yt49#///*1*:GwwE E E-1E E5<\E E E"K I	  	 s   AF33F7	:F7	rK   r   rQ   r   boolc                8    | j         |j         dz   | j        z   k    S )N.)r[   rZ   )rK   rQ   s     rL   is_from_moduler      s    =FOc1DI===rN   	deser_ctxr*   c                   |D ]}|j                                         D ]}t          |j        t                    rst          |j        |          r^|j        |j        j                 }|| j        |j        <   | j	        
                    |j        j                   |j        | j        |j        <   |D ]N}t          |          D ]<}t          |j        |j        |j                  }|j        |         j        | j        |<   =OdS )z>Populate a Mapper with deserialized IR from a list of modules.N)rs   valuesrI   rK   r   r   ru   r[   re   rf   rg   ctorfunc_to_declro   r    rZ   rk   	functionsdecl)r<   r=   r   rQ   rK   irrx   func_ids           rL   load_type_mapr      s    9 9L'')) 	9 	9D$)X.. 9>$)V3T3T 9&ty'9:/1!$),'++DI,>???13#DI.	9  J J(00 	J 	JD&ty$-KKG(1(;G(D(IF%%	JJ JrN   Iterable[FuncDef]c              #     K   | j                                         D ]T}t          |j        t          t
          t          f          r+t          |j        |           rt          |j                  V  UdS )z?Collect all of the (non-method) functions declared in a module.N)	rs   r   rI   rK   r   r   r   r   r3   )rQ   rK   s     rL   ro   ro      s~      ##%% * * di'96G!HII 	*nIvO
 O
 	* ty)))))* *rN   module_namestr
class_name
str | Nonefdefr   r'   c                    t          | |||           |j        rt          n|j        rt          nt
          }|                    ||j                  }t          |j	        || ||          }||j
        |<   |S N) create_generator_class_if_neededis_classr$   	is_staticr&   r%   fdef_to_sigstrict_dunders_typingr'   rZ   r   )r   r   r   r<   rB   r{   sigr   s           rL   rp   rp      s     %[*dFKKK =	D#'>B{ 	
 

T7#@
A
ACDIz;TBBD $FKrN    name_suffixc                <   |j         s|j        rd                    d |j        |fD                       dz   |z   }t	          || dd          }d|_        ||j        |<   t          t          t          t                    t          dt                    t          dt                    t          dt                    t          d	t                    t          d
t                    ft                    }t          t          || |d          }||j        |j        <   dS dS )zIf function is a generator/async function, declare a generator class.

    Each generator and async function gets a dedicated class that implements the
    generator protocol with generated methods.
    _c              3     K   | ]}||V  	d S r   rH   )rJ   xs     rL   	<genexpr>z3create_generator_class_if_needed.<locals>.<genexpr>   s'      @@aa@@@@@@@rN   _genT)is_generatedrS   typevalue	tracebackargstop_iter_ptr)internalN)is_coroutineis_generatorjoinrZ   r#   reuse_freed_instancefdef_to_generatorr(   r)   r   r0   r/   r'   r;   method_decls)	r   r   r   r<   r   rZ   cir
helper_sighelper_fn_decls	            rL   r   r      s%     ?D- ?xx@@DIz#:@@@@@6IKWdKd4PPP#' ), &"9&7886#4557$566;(9::5"344?,EFF 
 

 "!4j4
 
 
 1?,---/? ?rN   r   r#   rP   r   FuncDef | Decoratorc                   t          |t                    r't          ||j        |||          | j        |j        <   d S t          |t
                    r t          ||j        |j        ||          }|j        s|| j        |j        <   nt          |j        d         t                    r_|j        d         j        dk    rIt          |j        z   |_        d|_
        d|j        j        d         _        || j        t          |j        z   <   |j        j        rC|j        j        sJ d|j         d            d|_        |j        j        | j        |j        <   d S d S d S )Nr   setterTrT   z.Expected return type annotation for property '')rI   r   rp   rZ   r   r   rx   
decoratorsr   r   is_prop_setterr   argspos_onlyis_propertyr   is_prop_getterret_typeproperty_types)r   r   rP   r<   rK   rB   r   s          rL   prepare_method_defr      s`    $   =%5D&'&
 &
	""" 
D)	$	$ =  TY	67SS 
	?)-BODI&&*J77 	?DOA<N<SW_<_<_ '2DI"&D(,DHM!%:>BONTY679  	=9>``#`TXT]#`#`#````"&D+/8+<Bdi((('= = 	= 	=rN   SymbolNode | Nonec                .   | j         rt          |t                    r|j        rdS |j        }t          |t
                    sdS t          |j        z   }|                    ||j	                  }t          ||j        ||t                    }|| j        |<   dS )z?Add fast (direct) variants of methods in non-extension classes.N)rh   rI   r   r   implr   r   rZ   r   r   r'   r%   r   )	r   r   rP   r<   rK   rB   rZ   r   r   s	            rL   prepare_fast_pathr     s     
z % d-.. 	 9D$(( 	F
 TY&  w'DEEdic;GG $
FrN   propr   c                r   t          | j                  dk    rdS | j        d         }| j        d         }t          |t                    ont          |t                    oY|j        j        oMt          |j                  dk    o5t          |j        d         t                    o|j        d         j        dk    S )N   Fr   rT   r   )	ri   itemsrI   r   rx   r   r   r   rZ   )r   getterr   s      rL   is_valid_multipart_property_defr   0  s    
4:!uZ]FZ]F 	69%% 	2vy))	2K#	2 !""a'	2 v(+Z88		2
 a %1rN   builtin_basec                
    | dv S )N)zbuiltins.Exceptionzbuiltins.LookupErrorzbuiltins.IndexErrorzbuiltins.Warningzbuiltins.UserWarningzbuiltins.ValueErrorbuiltins.objectrH   )r   s    rL   can_subclass_builtinr   B  s    	

 
rN   r^   c           	     f   j         |j                 }|j        }t          |          }|                    d          du rd|_        |                    d          du rd|_        |j        D ]}	|	j        dk    rd|_        |	j        dk    rd|_        (|	j        	                    d          rht          |	j                  sT|                    d	| |j                   |                    d
| |j                   |                    d| |j                   fd|j        D             }
t          |
          dk    rBt!          d |
D                       r)|
d         j        r|                    d| |j                   d |
D             |_        g }g }|j        D ]v}	|	j         vr|	j        dk    rd|_        j         |	         }|j        s|                    |           |                    |           |	j        j        s|j        sd|_        w|j        sdnd}t          |          |k    r||         |_        ||_        ||_        t5          ||| |||           t7          |||           |
D ]#}|j        |j                            |           $t;          |          r	d|_        dS dS )zPopulate the interface-level information in a class IR.

    This includes attribute and method declarations, and the MRO, among other things, but
    method bodies are generated in a later pass.
    allow_interpreted_subclassesTserializablezbuiltins.BaseExceptionPyBaseExceptionObjectzbuiltins.dictPyDictObject	builtins.z3Inheriting from most builtin types is unimplementedzEPotential workaround: @mypy_extensions.mypyc_attr(native_class=False)zVhttps://mypyc.readthedocs.io/en/stable/native_classes.html#defining-non-native-classesc                P    g | ]"}|j         j        v j        |j                  #S rH   )r   re   )rJ   baser<   s     rL   rM   z%prepare_class_def.<locals>.<listcomp>  s3    cccdDIQWQbDbDbVty)DbDbDbrN   rT   c              3  &   K   | ]}|j          V  d S r   r7   rJ   cs     rL   r   z$prepare_class_def.<locals>.<genexpr>  s&      <<!*n<<<<<<rN   r   z/Non-trait base must appear first in parent listc                     g | ]}|j         	|S rH   r   r   s     rL   rM   z%prepare_class_def.<locals>.<listcomp>  s    000qQZ0000rN   r   N)re   r\   r4   getr   _serializablerr   r[   r   
startswithr   rt   rk   notebasesri   anyr7   traitsinherits_pythonappenddefnremoved_base_type_exprsr_   r   base_mroprepare_methods_and_attributesprepare_init_methodrd   r5   is_augmented)r^   r   rP   rC   r<   rB   r   r\   attrsclsr   rr   r   rz   base_idxr   s       `           rL   rl   rl   Q  s    
	49	%B9DD!!Eyy/00D88*.'yy  D(( x   <3335BOO\_,,,BOO\$$[11 	'55 
 I4QUQZ   [I  
 lI   dcccdjcccE
5zzA~~#<<e<<<<<~qAR~
 	FdiXXX00E000BI
CHx & &f'''|000%)"#C( 	%OOG$$$

78+ 	&73G 	&!%B*qqH
8}}x8$BFBK"4T;PWXXXb+v666 % %=$M  $$$D  rN   c           
        | j         }|j                                        D ]\  }}	|	j        rt	          |	j        t                    r|	j        j        sJ d|z              |	j        j        s_|dvr[|	                    |	j        j                  }
|j
        r+|
j        r$t          |||
|           t          |||
|           |
|j        |<   t	          |	j        t          t           f          rt#          ||| ||	j        |           t	          |	j        t$                    r|	j        j        rWt)          |	j                  r%|	j        j        D ]}t#          ||| |||           G|                    d|| j                   e|	j        j        s|                    d|| j                   t#          ||| ||	j        j        |           |j        r|j                                         dS dS )z+Populate attribute and method declarations.zClass member %s missing type)	__slots____deletable__(Unsupported property decorator semanticsz2Overloads without implementation are not supportedN)r\   rs   r   plugin_generatedrI   rK   r   r   is_classvartype_to_rtyper7   error_overlapadd_getter_declarationadd_setter_declarationrq   r   r   r   r   r   r   rt   rk   r   r   clear)rP   r   r^   r   rC   r<   rB   r\   rZ   rK   
attr_rtypeitems               rL   r   r     s3    9Dj&&(( #_ #_
d  	di%% 	_9>HH#AD#HHHH9( 	1T9W-W-W#11$).AA
; N:#; N
 +2tZMMM*2tZMMM&0d#	GY#788 	_r;fdiQQQQ	#455 	_y$ _249== ^ $	 Y Y*2{D&$PWXXXXY LL!KTSWS\]]]] y~ _LLLdTXT]    'r;fdinV]^^^	 
 rN   r\   r   c           
     f   t                      }|j        D ]J}|j                                        D ].\  }}|                    |           t          | |||||           /K|j        dd          D ]@}|j        r7|j                                        D ]\  }}||vrt          | |||||           Ad S NrT   )setr   rq   r   rg   ,add_property_methods_for_attribute_if_neededrr   r7   )r\   r   r   r<   concrete_attributesr   rZ   r   s           rL   rn   rn     s     %%   $ 5 5 7 7 	 	D*##D)))8b$
K   	
 qrr
  = 	$(O$9$9$;$;   j222@b$
K  	 rN   	attr_namer   r,   c                    | j         dd         D ]}||j        v r|j        |         }|j                            |          }|5|j        }	t          |	t                    r!|	j        |j        vrt          ||||           rt          |	t                    r4t          |	          r%t          ||||           t          ||||           |j        r+|j        r$t          ||||           t          ||||           dS )zAdd getter and/or setter for attribute if defined as property in a base class.

    Only add declarations. The body IR will be synthesized later during irbuild.
    rT   N)rr   re   rs   r   rK   rI   r   rZ   r   r   r   r   r   r7   r   )
r\   r   r   r   r   r<   r   rz   nrK   s
             rL   r   r     s1     O O6$$$'-G
y))Ay6D$	** 	Oty/O/O&r9j+NNNND"344 O9XY]9^9^ O&r9j+NNN&r9j+NNNN! Oj&> O&r9j+NNN&r9j+NNN!O OrN   c                    t          dt          |           d          }t          |g|          }t          || j        ||t
                    }d|_        d|_        || j        |<   || j	        |<   d S )NselfTr   )
r)   r+   r(   r'   rZ   r%   r   implicitr   r   )r   r   r   r   self_argr   r   s          rL   r   r     st     &)B--$???H

J
/
/CIrwS+FFDDDM!%BOI#-Bi   rN   c                   t          dt          |           d          }t          d|d          }t          ||gt                    }t          |z   }t          || j        ||t                    }d|_        d|_	        || j
        |<   d S )Nr  Tr  r   )r)   r+   r(   r.   r   r'   rZ   r%   r   r  r   )	r   r   r   r   r  	value_argr   setter_namer   s	            rL   r   r   !  s     &)B--$???H7J>>>I
9-
?
?C 9,KK+sKHHDDDM#'BOK   rN   init_sigr(   new_sigc                ,   t          | j                  | j        z
  }t          |j                  |j        z
  }||k    rdS t          d|          D ]B}| j        |         }|j        |         }|j        |j        k    r dS |j        |j        k    r dS CdS )NFrT   T)ri   r   num_bitmap_argsranger   r{   )r	  r
  num_init_argsnum_new_argsidxinit_argnew_args          rL   check_matching_argsr  .  s    &&)AAMw|$$w'>>L$$uQ&&  =%,s#=GL((55=GL((55 ) 4rN   c           	     8   | j         d         j        }d }| j                             d          }|r(|j        r!|j                            d          s|j        }t          |t          t          f          rt          |          }|j	        s|j
        st          |t                    rp|                    |d          }d}t          |t                    r&|                    |d          }	t          ||	          }|j                            |j                   }
|
|
j        r| j         d         j        r|j         j        dk    s|sUt#          |j        d         t'          dt(          t*                    t'          dt,          t.                    g|j                  }t3          |j                  |j        z
  }t#          |j        d	|         t7          |                    }t9          | j        d ||          |_        |j        |j        | j         <   d S d S d S d S )
N__init____new__r   Tr   r   r   kwargsrT   ) r\   rK   r   r[   r   rI   r   r   r3   r7   r   r   r   r  re   r_   r   r(   r   r)   r1   r	   r-   r
   r   ri   r  r+   r'   rZ   r   r   )rP   r   r   r<   	init_nodenew_node
new_symbolr	  
args_matchr
  defining_irlast_argctor_sigs                rL   r   r   @  s   	*%*I"&Hy))J
  #j) #*2E2P2PQ\2]2] #?(Y(9:;; *)); 1r 1:i3Q3Q 1%%i66
h(( 	@((488G,Xw??J'++IN;; #"/ $9Z(9 $ '+<<< =$M!$v'7BBx)DD
 ! H x}%%(@@ qz!:IbMMJJ49dKBB)+DI&&&?1 1 1 1 1 1rN   c           
        j         |j                 }|j        }|j                                        D ]}t	          |j        t          t          f          rt          ||||j        |           nt	          |j        t                    r|j        j
        rTt          |j                  s|                    d| |j                   |j        j        D ]}	t          ||||	|           n&t          |||t          |j                  |           t!          ||||j        |           t#          fd|j        D                       r|                    d| |j                   d S d S )Nr   c              3  N   K   | ]}|j         v oj         |         j        V   d S r   )re   r_   )rJ   r   r<   s     rL   r   z,prepare_non_ext_class_def.<locals>.<genexpr>  s<      
`
`PS3&##K(9#(>(K
`
`
`
`
`
`rN   z<Non-extension classes may not inherit from extension classes)re   r\   rs   r   rI   rK   r   r   r   r   r   r   rt   rk   r   r3   r   r   rr   )
r^   r   rP   rC   r<   rB   r   r\   rK   r   s
       `     rL   rm   rm   p  s    
	49	%B9D
!!## M Mdi'9!566 	dr;fdiQQQQ	#455 		dy$ d6tyAA ^LL!KTSWS\]]] IO U UD&r;fdGTTTTU #2{D&,tyBYBY[bccc"k4GLLLL

`
`
`
`W[W_
`
`
``` 
JDRVR[	
 	
 	
 	
 	

 
rN   c                  $    e Zd ZU ded<   ded<   dS )SingledispatchInfoz%dict[FuncDef, list[RegisterImplInfo]]singledispatch_implszdict[FuncDef, list[int]]decorators_to_removeN__name__
__module____qualname____annotations__rH   rN   rL   r"  r"    s*         ????222222rN   r"  c                    t          |          }| D ]#}|j        |_        |                    |           $t	          |j        |j                  S r   )SingledispatchVisitorr^   current_pathacceptr"  r#  r$  )r=   rC   visitorrQ   s       rL   "find_singledispatch_register_implsr/    sU     $F++G  %{gg:G<XYYYrN   c                  D     e Zd ZU ded<   d fdZd fd
Zd fdZ xZS )r+  r   r,  rC   r"   rD   rE   c                    t                                                       t          t                    | _        i | _        || _        d| _        d S )Nr   )superr  r   listr#  r$  rC   func_stack_depth)r  rC   	__class__s     rL   r  zSingledispatchVisitor.__init__  sN     S^^bRcRc! ?A!$ !rN   or   c                    | xj         dz  c_         t                                          |           | xj         dz  c_         d S r   )r4  r2  visit_func_def)r  r6  r5  s     rL   r8  z$SingledispatchVisitor.visit_func_def  sI    "q!!!"rN   decr   c                N   |j         rz|j                                         }g }d }t          |          D ];\  }}t          ||j                  }|| j        dk    r&| j                            d| j        |j	                   | j
        |j                                     |j        |j        f           |                    |           |,| j                            d| j        ||         j	                   t          |d          rf| j        dk    r&| j                            d| j        |j	                   |                    |           | j
                            |j        g            |}=|r|| j        |j        <   t#                                          |           d S )Nr   z*Registering nested functions not supportedz:Calling decorator after registering function not supportedzfunctools.singledispatchz-Nested singledispatch functions not supported)r   ra   	enumerate%get_singledispatch_register_call_inforx   r4  rC   rt   r,  rk   r#  singledispatch_funcr   dispatch_typer   
setdefaultr$  r2  visit_decorator)	r  r9  decorators_to_storer$  last_non_registeridr   r5  s	           rL   r@  z%SingledispatchVisitor.visit_decorator  s   > .	K"%."5"5"7"7.0  -1!"566 "* "*1<QII#,q00))H$J[]^]c   -d.FGNN+SX6   )//222(4
 ))X -/0ABG   *!-GHH K0144 K-- O $ 1 !  
 -33A666 1<<SXrJJJ()%%# K 7K)#(3$$$$$rN   )rC   r"   rD   rE   )r6  r   rD   rE   )r9  r   rD   rE   )r&  r'  r(  r)  r  r8  r@  __classcell__)r5  s   @rL   r+  r+    s         
" 
" 
" 
" 
" 
"# # # # # #
1% 1% 1% 1% 1% 1% 1% 1% 1% 1%rN   r+  c                  $    e Zd ZU ded<   ded<   dS )RegisteredImplr   r=  r   r>  Nr%  rH   rN   rL   rG  rG    s*             rN   rG  	decoratorr   rx   RegisteredImpl | Nonec                ,   t          | t                    rt          | j                  dk    rvt          | j        d         t                    rV| j        }| j        d         j        }t          |t                    sd S t          |t                    rt          ||          S npt          | t                    r[|j
        sd S t          |j
        d         j        j                  }t          |t                    sd S |j        }t          | |          S d S )NrT   r   )rI   r   ri   r   r   calleerK   r   r   +registered_impl_from_possible_register_call	argumentsr   variabler   r   )rH  rx   rK  r>  arg_typer\   s         rL   r<  r<    s    	9h''L	1$$y~a('22 % !!q).-22 	4fj)) 	V>v}UUU	V 
Iz	*	* 	L ~ 	4"4>!#4#=#BCC(H-- 	4}:9dKKK4rN   exprr   r>  c                    | j         dk    rPt          | j        t                    r6| j        j        }t          |t
                    rt          |j        |          S d S )Nregister)rZ   rI   rP  r   rK   r   rG  rx   )rP  r>  rK   s      rL   rL  rL    sT     yJ:di#B#By~dI&& 	<!$)];;;4rN   N)r<   r2   r=   r>   r?   r   r@   rA   rB   r8   rC   r"   rD   rE   )rK   r   rQ   r   rD   r}   )r<   r2   r=   r>   r   r*   rD   rE   )rQ   r   rD   r   )r   r   r   r   r   r   r<   r2   rB   r8   rD   r'   )r   )r   r   r   r   r   r   r<   r2   r   r   rD   rE   )r   r#   r   r   rP   r   r<   r2   rK   r   rB   r8   rD   rE   )r   r#   r   r   rP   r   r<   r2   rK   r   rB   r8   rD   rE   )r   r   rD   r}   )r   r   rD   r}   )r^   r   r   r   rP   r   rC   r"   r<   r2   rB   r8   rD   rE   )rP   r   r   r#   r^   r   r   r   rC   r"   r<   r2   rB   r8   rD   rE   )
r\   r   r   r#   r   r   r<   r2   rD   rE   )r\   r   r   r#   r   r   r   r,   r   r   r<   r2   rD   rE   )
r   r#   r   r   r   r,   r   r   rD   rE   )r	  r(   r
  r(   rD   r}   )
rP   r   r   r#   r   r   r<   r2   rD   rE   )r=   r>   rC   r"   rD   r"  )rH  r   rx   r   rD   rI  )rP  r   r>  r   rD   rI  )i__doc__
__future__r   collectionsr   collections.abcr   typingr   r   
mypy.buildr   
mypy.nodesr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   mypy.semanalr   mypy.traverserr   
mypy.typesr   r   r   mypyc.commonr   r   r   r    mypyc.crashr!   mypyc.errorsr"   mypyc.ir.class_irr#   mypyc.ir.func_irr$   r%   r&   r'   r(   r)   mypyc.ir.opsr*   mypyc.ir.rtypesr+   r,   r-   r.   r/   r0   r1   mypyc.irbuild.mapperr2   mypyc.irbuild.utilr3   r4   r5   r6   r7   mypyc.optionsr8   mypyc.sametyper9   r;   r)  r|   r   r   ro   rp   r   r   r   r   r   rl   r   rn   r   r   r   r  r   rm   tupleRegisterImplInfor"  r/  r+  rG  r<  rL  rH   rN   rL   <module>rj     s     # " " " " " # # # # # # $ $ $ $ $ $ $ $ $ $ $ $ $ $                                       " , + + + + + + + + + + + 6 6 6 6 6 6 6 6 6 6 Q Q Q Q Q Q Q Q Q Q Q Q $ $ $ $ $ $       % % % % % %                # " " " " "                  ( ' ' ' ' '              * ) ) ) ) ) ' ' ' ' ' ';  ; ; ; ;J J J JZ> > > >J J J J 	* 	* 	* 	*   * ac? ? ? ? ?D= = = =D   <   $   [ [ [ [|1 1 1 1h   &O O O O>	. 	. 	. 	.
( 
( 
( 
(   $-1 -1 -1 -1`
 
 
 
B 7*+ 3 3 3 3 3 3 3 3
Z Z Z ZE% E% E% E% E%, E% E% E%P    Z   
   @     rN   