Ë
    pPêjzh  ã                  ó¨  — 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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'm(Z(m)Z)m*Z*m+Z+m,Z, d dl-m.Z. d dl/m0Z0m1Z1 d dl2m3Z3m4Z4 d d	l5m6Z6 d d
l7m8Z8m9Z9m:Z:  G d„ d«      Z; G d„ d«      Z< G d„ de«      Z= G d„ d«      Z> G d„ d«      Z? G d„ d«      Z@ G d„ de6«      ZAy)é    )Úannotations)ÚEnum)ÚcheckerÚ
errorcodes)ÚMessageBuilder)#Ú
AssertStmtÚAssignmentExprÚAssignmentStmtÚ	BreakStmtÚClassDefÚContextÚContinueStmtÚDictionaryComprehensionÚ
ExpressionÚExpressionStmtÚForStmtÚFuncDefÚFuncItemÚGeneratorExprÚ
GlobalDeclÚIfStmtÚImportÚ
ImportFromÚ
LambdaExprÚListExprÚLvalueÚ	MatchStmtÚMypyFileÚNameExprÚNonlocalDeclÚ	RaiseStmtÚ
ReturnStmtÚStarExprÚSymbolTableÚTryStmtÚ	TupleExprÚTypeAliasStmtÚ	WhileStmtÚWithStmtÚimplicit_module_attrs)ÚOptions)Ú	AsPatternÚStarredPattern)ÚALWAYS_TRUEÚinfer_pattern_value)ÚExtendedTraverserVisitor)ÚTypeÚUninhabitedTypeÚget_proper_typec                  ó6   — e Zd ZdZ	 	 	 d	 	 	 	 	 	 	 dd„Zdd„Zy)ÚBranchStatea=  BranchState contains information about variable definition at the end of a branching statement.
    `if` and `match` are examples of branching statements.

    `may_be_defined` contains variables that were defined in only some branches.
    `must_be_defined` contains variables that were defined in all branches.
    Nc                ó‚   — |€
t        «       }|€
t        «       }t        |«      | _        t        |«      | _        || _        y ©N)ÚsetÚmay_be_definedÚmust_be_definedÚskipped)Úselfr:   r9   r;   s       ú[/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypy/partially_defined.pyÚ__init__zBranchState.__init__;   s?   € ð Ð!Ü ›UˆNØÐ"Ü!›eˆOä! .Ó1ˆÔÜ" ?Ó3ˆÔØˆ�ó    c                ó~   — t        t        | j                  «      t        | j                  «      | j                  ¬«      S )N©r:   r9   r;   )r5   r8   r:   r9   r;   ©r<   s    r=   ÚcopyzBranchState.copyJ   s2   € ÜÜ × 4Ñ 4Ó5Ü˜t×2Ñ2Ó3Ø—L‘Lô
ð 	
r?   )NNF)r:   úset[str] | Noner9   rD   r;   ÚboolÚreturnÚNone©rF   r5   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r>   rC   © r?   r=   r5   r5   3   sB   „ ñð ,0Ø*.Øð	à(ðð (ðð ð	ð
 
óô
r?   r5   c                  óf   — e Zd Zddd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Z	dd	„Z
dd
„Zdd„Zdd„Zy)ÚBranchStatementNc                ó    — |€
t        «       }|| _        t        | j                  j                  | j                  j                  ¬«      g| _        y ©N)r:   r9   )r5   Úinitial_stater:   r9   Úbranches)r<   rR   s     r=   r>   zBranchStatement.__init__S   sF   € ØÐ Ü'›MˆMØ*ˆÔäØ $× 2Ñ 2× BÑ BØ#×1Ñ1×@Ñ@ôð,
ˆ�r?   c                ó”   — t        | j                  «      }| j                  D �cg c]  }|j                  «       ‘Œ c}|_        |S c c}w r7   )rO   rR   rS   rC   )r<   ÚresultÚbs      r=   rC   zBranchStatement.copy^   s8   € Ü  ×!3Ñ!3Ó4ˆØ-1¯]©]Ö;¨˜1Ÿ6™6�8Ò;ˆŒØˆùò <s   ¤Ac                ó    — | j                   j                  t        | j                  j                  | j                  j
                  ¬«      «       y rQ   )rS   Úappendr5   rR   r:   r9   rB   s    r=   Únext_branchzBranchStatement.next_branchc   s:   € Ø�‰×ÑÜØ $× 2Ñ 2× BÑ BØ#×1Ñ1×@Ñ@ôõ	
r?   c                óØ   — t        | j                  «      dkD  sJ ‚| j                  d   j                  j                  |«       | j                  d   j                  j                  |«       y ©Nr   éÿÿÿÿ)ÚlenrS   r:   Úaddr9   Údiscard©r<   Únames     r=   Úrecord_definitionz!BranchStatement.record_definitionk   sS   € Ü�4—=‘=Ó! AÒ%Ð%Ð%Ø�‰�bÑ×)Ñ)×-Ñ-¨dÔ3Ø�‰�bÑ×(Ñ(×0Ñ0°Õ6r?   c                óØ   — t        | j                  «      dkD  sJ ‚| j                  d   j                  j                  |«       | j                  d   j                  j                  |«       y r[   )r]   rS   r:   r_   r9   r`   s     r=   Ú
delete_varzBranchStatement.delete_varp   sS   € Ü�4—=‘=Ó! AÒ%Ð%Ð%Ø�‰�bÑ×)Ñ)×1Ñ1°$Ô7Ø�‰�bÑ×(Ñ(×0Ñ0°Õ6r?   c                ó\  — t        | j                  «      dkD  sJ ‚| j                  d   }|j                  rd|_        y |j                  j	                  |j                  «       |j
                  j	                  |j
                  «       |j
                  j                  |j                  «       y )Nr   r\   T)r]   rS   r;   r:   Úupdater9   Údifference_update)r<   ÚstateÚcurrent_branchs      r=   Úrecord_nested_branchz$BranchStatement.record_nested_branchu   s‡   € Ü�4—=‘=Ó! AÒ%Ð%Ð%ØŸ™ rÑ*ˆØ�=Š=Ø%)ˆNÔ"ØØ×&Ñ&×-Ñ-¨e×.CÑ.CÔDØ×%Ñ%×,Ñ,¨U×-AÑ-AÔBØ×%Ñ%×7Ñ7¸×8VÑ8VÕWr?   c                ó`   — t        | j                  «      dkD  sJ ‚d| j                  d   _        y )Nr   Tr\   )r]   rS   r;   rB   s    r=   Úskip_branchzBranchStatement.skip_branch   s*   € Ü�4—=‘=Ó! AÒ%Ð%Ð%Ø$(ˆ�‰�bÑÕ!r?   c                ól   — t        | j                  «      dkD  sJ ‚|| j                  d   j                  v S r[   )r]   rS   r9   r`   s     r=   Úis_possibly_undefinedz%BranchStatement.is_possibly_undefinedƒ   s3   € Ü�4—=‘=Ó! AÒ%Ð%Ð%Ø�t—}‘} RÑ(×7Ñ7Ð7Ð7r?   c                ó�   — t        | j                  «      dkD  sJ ‚| j                  d   }||j                  vxr ||j                  vS r[   )r]   rS   r9   r:   )r<   ra   Úbranchs      r=   Úis_undefinedzBranchStatement.is_undefined‡   sH   € Ü�4—=‘=Ó! AÒ%Ð%Ð%Ø—‘˜rÑ"ˆØ˜6×0Ñ0Ð0ÒW°TÀ×AWÑAWÐ5WÐWr?   c                ó–   — t        | j                  «      dkD  sJ ‚| j                  D ]   }||j                  v s||j                  v sŒ  y y)Nr   TF)r]   rS   r:   r9   )r<   ra   rV   s      r=   Úis_defined_in_a_branchz&BranchStatement.is_defined_in_a_branchŒ   sO   € Ü�4—=‘=Ó! AÒ%Ð%Ð%Ø—‘ò 	ˆAØ�q×(Ñ(Ñ(¨D°A×4DÑ4DÒ,DÙð	ð r?   c                óÒ  — t        «       }| j                  D ]8  }|j                  |j                  «       |j                  |j                  «       Œ: | j                  D �cg c]  }|j
                  rŒ|‘Œ }}|r5|d   j                  }|dd  D ]  }|j                  |j                  «       Œ n
t        «       }|j                  |«      }t        ||t        |«      dk(  ¬«      S c c}w )Nr   é   rA   )
r8   rS   rf   r9   r:   r;   Úintersection_updateÚ
differencer5   r]   )r<   Úall_varsrV   Únon_skipped_branchesr:   r9   s         r=   ÚdonezBranchStatement.done“   sã   € ô “5ˆØ—‘ò 	/ˆAØ�O‰O˜A×,Ñ,Ô-Ø�O‰O˜A×-Ñ-Õ.ð	/ð ,0¯=©=ÖJ aÀÇ	Ã	¢ÐJÐÐJÙØ2°1Ñ5×EÑEˆOØ)¨!¨"Ð-ò G�Ø×3Ñ3°A×4EÑ4EÕFñGô "›eˆOð "×,Ñ,¨_Ó=ˆÜØ+Ø)ÜÐ,Ó-°Ñ2ô
ð 	
ùò  Ks   Á C$Á2C$r7   )rR   zBranchState | NonerF   rG   )rF   rO   ©rF   rG   ©ra   ÚstrrF   rG   )rh   r5   rF   rG   ©ra   r}   rF   rE   rH   )rI   rJ   rK   r>   rC   rY   rb   rd   rj   rl   rn   rq   rs   rz   rM   r?   r=   rO   rO   R   s;   „ ô	
óó

ó7ó
7ó
Xó)ó8óXó
ô
r?   rO   c                  ó   — e Zd ZdZdZdZdZy)Ú	ScopeTyperu   é   é   é   N)rI   rJ   rK   ÚGlobalÚClassÚFuncÚ	GeneratorrM   r?   r=   r€   r€   ­   s   „ Ø€FØ€EØ€DØ�Ir?   r€   c                  ó,   — e Zd Zdd„Zdd„Zdd„Zd	d„Zy)
ÚScopec                ó.   — || _         || _        i | _        y r7   )Úbranch_stmtsÚ
scope_typeÚundefined_refs)r<   ÚstmtsrŒ   s      r=   r>   zScope.__init__µ   s   € Ø38ˆÔØ$ˆŒØ8:ˆÕr?   c                óÆ   — t        | j                  D �cg c]  }|j                  «       ‘Œ c}| j                  «      }| j                  j                  «       |_        |S c c}w r7   )r‰   r‹   rC   rŒ   r�   )r<   ÚsrU   s      r=   rC   z
Scope.copyº   sJ   € Ü¨$×*;Ñ*;Ö< Q˜Ÿ™�Ò<¸d¿o¹oÓNˆØ $× 3Ñ 3× 8Ñ 8Ó :ˆÔØˆùò =s   ”Ac                óÆ   — |j                   | j                  vr!t        «       | j                  |j                   <   | j                  |j                      j                  |«       y r7   )ra   r�   r8   r^   ©r<   Úos     r=   Úrecord_undefined_refzScope.record_undefined_ref¿   sG   € Ø�6‰6˜×,Ñ,Ñ,Ü*-«%ˆD×Ñ §¡Ñ'Ø×Ñ˜AŸF™FÑ#×'Ñ'¨Õ*r?   c                óJ   — | j                   j                  |t        «       «      S r7   )r�   Úpopr8   r`   s     r=   Úpop_undefined_refzScope.pop_undefined_refÄ   s   € Ø×"Ñ"×&Ñ& t¬S«UÓ3Ð3r?   N)rŽ   zlist[BranchStatement]rŒ   r€   rF   rG   ©rF   r‰   ©r“   r   rF   rG   ©ra   r}   rF   zset[NameExpr])rI   rJ   rK   r>   rC   r”   r—   rM   r?   r=   r‰   r‰   ´   s   „ ó;ó
ó
+ô
4r?   r‰   c                  ó˜   — e Zd ZdZdd„Zdd„Zdd„Zdd„Zdd„Zdd„Z	dd„Z
dd	„Zdd
„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zy)ÚDefinedVariableTrackerzUDefinedVariableTracker manages the state and scope for the UndefinedVariablesVisitor.c                ór   — t        t        «       gt        j                  «      g| _        d| _        d| _        y ©NF)r‰   rO   r€   r„   ÚscopesÚdisable_branch_skipÚ
in_finallyrB   s    r=   r>   zDefinedVariableTracker.__init__Ë   s0   € ä$)¬?Ó+<Ð*=¼y×?OÑ?OÓ$PÐ#QˆŒð $)ˆÔ Øˆ�r?   c                óÂ   — t        «       }| j                  D �cg c]  }|j                  «       ‘Œ c}|_        | j                  |_        | j                  |_        |S c c}w r7   )rœ   rŸ   rC   r    r¡   )r<   rU   r�   s      r=   rC   zDefinedVariableTracker.copyÓ   sJ   € Ü'Ó)ˆØ+/¯;©;Ö7 a˜Ÿ™�Ò7ˆŒØ%)×%=Ñ%=ˆÔ"Ø ŸO™OˆÔØˆùò 8s   ™Ac                óT   — t        | j                  «      dkD  sJ ‚| j                  d   S r[   )r]   rŸ   rB   s    r=   Ú_scopezDefinedVariableTracker._scopeÚ   s'   € Ü�4—;‘;Ó !Ò#Ð#Ð#Ø�{‰{˜2‰Ðr?   c                ó0  — t        | j                  «       j                  «      dkD  sJ ‚d }|t        j                  k(  r*| j                  «       j                  d   j
                  d   }| j                  j                  t        t        |«      g|«      «       y r[   )
r]   r¤   r‹   r€   r‡   rS   rŸ   rX   r‰   rO   )r<   rŒ   rR   s      r=   Úenter_scopez"DefinedVariableTracker.enter_scopeÞ   sv   € Ü�4—;‘;“=×-Ñ-Ó.°Ò2Ð2Ð2ØˆØœ×,Ñ,Ò,à ŸK™K›M×6Ñ6°rÑ:×CÑCÀBÑGˆMØ�‰×Ñœ5¤/°-Ó"@Ð!AÀ:ÓNÕOr?   c                ó8   — | j                   j                  «        y r7   )rŸ   r–   rB   s    r=   Ú
exit_scopez!DefinedVariableTracker.exit_scopeæ   s   € Ø�‰�‰Õr?   c                ó<   — | j                  «       j                  |k(  S r7   )r¤   rŒ   )r<   rŒ   s     r=   Úin_scopezDefinedVariableTracker.in_scopeé   s   € Ø�{‰{‹}×'Ñ'¨:Ñ5Ð5r?   c                ó  — t        | j                  «       j                  «      dkD  sJ ‚| j                  «       j                  j                  t	        | j                  «       j                  d   j
                  d   «      «       y r[   )r]   r¤   r‹   rX   rO   rS   rB   s    r=   Ústart_branch_statementz-DefinedVariableTracker.start_branch_statementì   s_   € Ü�4—;‘;“=×-Ñ-Ó.°Ò2Ð2Ð2Ø�‰‹×"Ñ"×)Ñ)Ü˜DŸK™K›M×6Ñ6°rÑ:×CÑCÀBÑGÓHõ	
r?   c                óª   — t        | j                  «       j                  «      dkD  sJ ‚| j                  «       j                  d   j                  «        y ©Nru   r\   )r]   r¤   r‹   rY   rB   s    r=   rY   z"DefinedVariableTracker.next_branchò   s>   € Ü�4—;‘;“=×-Ñ-Ó.°Ò2Ð2Ð2Ø�‰‹×"Ñ" 2Ñ&×2Ñ2Õ4r?   c                ó  — t        | j                  «       j                  «      dkD  sJ ‚| j                  «       j                  j                  «       j	                  «       }| j                  «       j                  d   j                  |«       y r®   )r]   r¤   r‹   r–   rz   rj   )r<   rU   s     r=   Úend_branch_statementz+DefinedVariableTracker.end_branch_statementö   sc   € Ü�4—;‘;“=×-Ñ-Ó.°Ò2Ð2Ð2Ø—‘“×+Ñ+×/Ñ/Ó1×6Ñ6Ó8ˆØ�‰‹×"Ñ" 2Ñ&×;Ñ;¸FÕCr?   c                óÂ   — t        | j                  «       j                  «      dkD  r9| j                  s,| j                  «       j                  d   j	                  «        y y y r®   )r]   r¤   r‹   r    rl   rB   s    r=   rl   z"DefinedVariableTracker.skip_branchû   sI   € äˆt�{‰{‹}×)Ñ)Ó*¨QÒ.°t×7OÒ7OØ�K‰K‹M×&Ñ& rÑ*×6Ñ6Õ8ð 8PÐ.r?   c                óÞ   — t        | j                  «      dkD  sJ ‚t        | j                  d   j                  «      dkD  sJ ‚| j                  «       j                  d   j	                  |«       y r[   )r]   rŸ   r‹   r¤   rb   r`   s     r=   rb   z(DefinedVariableTracker.record_definition   sY   € Ü�4—;‘;Ó !Ò#Ð#Ð#Ü�4—;‘;˜r‘?×/Ñ/Ó0°1Ò4Ð4Ð4Ø�‰‹×"Ñ" 2Ñ&×8Ñ8¸Õ>r?   c                óÞ   — t        | j                  «      dkD  sJ ‚t        | j                  d   j                  «      dkD  sJ ‚| j                  «       j                  d   j	                  |«       y r[   )r]   rŸ   r‹   r¤   rd   r`   s     r=   rd   z!DefinedVariableTracker.delete_var  sY   € Ü�4—;‘;Ó !Ò#Ð#Ð#Ü�4—;‘;˜r‘?×/Ñ/Ó0°1Ò4Ð4Ð4Ø�‰‹×"Ñ" 2Ñ&×1Ñ1°$Õ7r?   c                óv   — t        | j                  «      dkD  sJ ‚| j                  «       j                  |«       y)zURecords an undefined reference. These can later be retrieved via `pop_undefined_ref`.r   N)r]   rŸ   r¤   r”   r’   s     r=   r”   z+DefinedVariableTracker.record_undefined_ref
  s-   € ä�4—;‘;Ó !Ò#Ð#Ð#Ø�‰‹×*Ñ*¨1Õ-r?   c                ót   — t        | j                  «      dkD  sJ ‚| j                  «       j                  |«      S )zaIf name has previously been reported as undefined, the NameExpr that was called will be returned.r   )r]   rŸ   r¤   r—   r`   s     r=   r—   z(DefinedVariableTracker.pop_undefined_ref  s0   € ä�4—;‘;Ó !Ò#Ð#Ð#Ø�{‰{‹}×.Ñ.¨tÓ4Ð4r?   c                óª   — t        | j                  «       j                  «      dkD  sJ ‚| j                  «       j                  d   j                  |«      S r[   )r]   r¤   r‹   rn   r`   s     r=   rn   z,DefinedVariableTracker.is_possibly_undefined  sC   € Ü�4—;‘;“=×-Ñ-Ó.°Ò2Ð2Ð2à�{‰{‹}×)Ñ)¨"Ñ-×CÑCÀDÓIÐIr?   c                ó  — t        | j                  «       j                  «      dkD  sJ ‚| j                  «       j                  d   }|j                  |«      sy| j                  «       j                  D ]  }|j	                  |«      sŒ y y)zYThis will return true if a variable is defined in a branch that's not the current branch.r   r\   FT)r]   r¤   r‹   rq   rs   )r<   ra   Ústmts      r=   Úis_defined_in_different_branchz5DefinedVariableTracker.is_defined_in_different_branch  sy   € ä�4—;‘;“=×-Ñ-Ó.°Ò2Ð2Ð2Ø�{‰{‹}×)Ñ)¨"Ñ-ˆØ× Ñ  Ô&ØØ—K‘K“M×.Ñ.ò 	ˆDØ×*Ñ*¨4Õ0Ùð	ð r?   c                óª   — t        | j                  «       j                  «      dkD  sJ ‚| j                  «       j                  d   j                  |«      S r[   )r]   r¤   r‹   rq   r`   s     r=   rq   z#DefinedVariableTracker.is_undefined$  sC   € Ü�4—;‘;“=×-Ñ-Ó.°Ò2Ð2Ð2Ø�{‰{‹}×)Ñ)¨"Ñ-×:Ñ:¸4Ó@Ð@r?   Nr{   )rF   rœ   r˜   )rŒ   r€   rF   rG   )rŒ   r€   rF   rE   r|   r™   rš   r~   )rI   rJ   rK   rL   r>   rC   r¤   r¦   r¨   rª   r¬   rY   r°   rl   rb   rd   r”   r—   rn   r¹   rq   rM   r?   r=   rœ   rœ   È   s^   „ Ù_ó óóóPóó6ó
ó5óDó
9ó
?ó
8ó
.ó
5ó
Jó
	ôAr?   rœ   c                  ó   — e Zd Zdd„Zy)ÚLoopc                ó    — d| _         d | _        y rž   )Ú	has_breakÚ
break_varsrB   s    r=   r>   zLoop.__init__*  s   € ØˆŒà+/ˆ�r?   Nr{   )rI   rJ   rK   r>   rM   r?   r=   r¼   r¼   )  s   „ ô0r?   r¼   c                  óŒ  ‡ — e Zd ZdZ	 	 	 	 	 	 	 	 	 	 d$d„Zd%d„Zd%d„Zd&d„Zd'ˆ fd„Zd(ˆ fd„Z	d)d„Z
d*ˆ fd	„Zd+d
„Zd,d„Zd-d„Zd.ˆ fd„Zd/ˆ fd„Zd0ˆ fd„Zd1ˆ fd„Zd2d„Zd3ˆ fd„Zd4ˆ fd„Zd5ˆ fd„Zd6ˆ fd„Zd7ˆ fd„Zd8ˆ fd„Zd9ˆ fd„Zd:d„Zd:d„Zd;d„Zd<ˆ fd„Zd=ˆ fd„Zd>ˆ fd„Z d?d„Z!d@ˆ fd „Z"dAˆ fd!„Z#dBˆ fd"„Z$dCd#„Z%ˆ xZ&S )DÚ PossiblyUndefinedVariableVisitoraÂ  Detects the following cases:
    - A variable that's defined only part of the time.
    - If a variable is used before definition

    An example of a partial definition:
    if foo():
        x = 1
    print(x)  # Error: "x" may be undefined.

    Example of a used before definition:
    x = y
    y: int = 2

    Note that this code does not detect variables not defined in any of the branches -- that is
    handled by the semantic analyzer.
    c                óh  — || _         || _        || _        t        «       | _        |j                  dd «      }|r7t        |j                  t        «      sJ ‚|j                  j                  | _        g | _
        d| _        t        «       | _        t        D ]  }| j                  j                  |«       Œ y )NÚ__builtins__r   )ÚmsgÚtype_mapÚoptionsr$   ÚbuiltinsÚgetÚ
isinstanceÚnoder   ÚnamesÚloopsÚ	try_depthrœ   Útrackerr*   rb   )r<   rÄ   rÅ   rÆ   rË   Úbuiltins_modra   s          r=   r>   z)PossiblyUndefinedVariableVisitor.__init__B  s—   € ð ˆŒØ ˆŒØˆŒÜ#›ˆŒØ—y‘y °Ó6ˆÙÜ˜l×/Ñ/´Ô:Ð:Ð:Ø(×-Ñ-×3Ñ3ˆDŒMØ!#ˆŒ
ØˆŒÜ-Ó/ˆŒÜ)ò 	1ˆDØ�L‰L×*Ñ*¨4Õ0ñ	1r?   c                ó¤   — | j                   j                  j                  t        j                  «      r| j                   j                  ||«       y y r7   )rÄ   ÚerrorsÚis_error_code_enabledr   ÚUSED_BEFORE_DEFÚvar_used_before_def©r<   ra   Úcontexts      r=   rÔ   z4PossiblyUndefinedVariableVisitor.var_used_before_defW  s8   € Ø�8‰8�?‰?×0Ñ0´×1KÑ1KÔLØ�H‰H×(Ñ(¨¨wÕ7ð Mr?   c                ó¤   — | j                   j                  j                  t        j                  «      r| j                   j                  ||«       y y r7   )rÄ   rÑ   rÒ   r   ÚPOSSIBLY_UNDEFINEDÚvariable_may_be_undefinedrÕ   s      r=   rÙ   z:PossiblyUndefinedVariableVisitor.variable_may_be_undefined[  s8   € Ø�8‰8�?‰?×0Ñ0´×1NÑ1NÔOØ�H‰H×.Ñ.¨t°WÕ=ð Pr?   c                ó6  — | j                   j                  t        j                  «      sT| j                   j	                  |«      }|D ]3  }| j
                  r| j                  ||«       Œ"| j                  ||«       Œ5 n	 | j                   j                  |«       y r7   )	rÎ   rª   r€   r…   r—   rÌ   rÙ   rÔ   rb   )r<   ra   ÚrefsÚrefs       r=   Úprocess_definitionz3PossiblyUndefinedVariableVisitor.process_definition_  sy   € à�|‰|×$Ñ$¤Y§_¡_Ô5Ø—<‘<×1Ñ1°$Ó7ˆDØò 8�Ø—:’:Ø×2Ñ2°4¸Õ=à×,Ñ,¨T°3Õ7ñ	8ð Ø�‰×&Ñ& tÕ,r?   c                óh   •— |j                   D ]  }| j                  |«       Œ t        ‰| �  |«       y r7   )rË   rÝ   ÚsuperÚvisit_global_decl©r<   r“   ra   Ú	__class__s      €r=   rà   z2PossiblyUndefinedVariableVisitor.visit_global_declm  s1   ø€ Ø—G‘Gò 	*ˆDØ×#Ñ# DÕ)ð	*ä‰Ñ! !Õ$r?   c                óh   •— |j                   D ]  }| j                  |«       Œ t        ‰| �  |«       y r7   )rË   rÝ   rß   Úvisit_nonlocal_declrá   s      €r=   rä   z4PossiblyUndefinedVariableVisitor.visit_nonlocal_declr  s1   ø€ Ø—G‘Gò 	*ˆDØ×#Ñ# DÕ)ð	*ä‰Ñ# AÕ&r?   c                ó&  — t        |t        «      r| j                  |j                  «       y t        |t        «      r| j                  |j                  «       y t        |t        t        f«      r#|j                  D ]  }| j                  |«       Œ y y r7   )
rÉ   r   rÝ   ra   r#   Úprocess_lvalueÚexprr   r&   Úitems)r<   ÚlvalueÚitems      r=   ræ   z/PossiblyUndefinedVariableVisitor.process_lvaluew  so   € Ü�fœhÔ'Ø×#Ñ# F§K¡KÕ0Ü˜¤Ô)Ø×Ñ §¡Õ,Ü˜¤¬9Ð 5Ô6ØŸ™ò *�Ø×#Ñ# DÕ)ñ*ð 7r?   c                óh   •— |j                   D ]  }| j                  |«       Œ t        ‰| �  |«       y r7   )Úlvaluesræ   rß   Úvisit_assignment_stmt)r<   r“   ré   râ   s      €r=   rí   z6PossiblyUndefinedVariableVisitor.visit_assignment_stmt€  s1   ø€ Ø—i‘iò 	(ˆFØ×Ñ Õ'ð	(ä‰Ñ% aÕ(r?   c                óp   — |j                   j                  | «       | j                  |j                  «       y r7   )ÚvalueÚacceptræ   Útargetr’   s     r=   Úvisit_assignment_exprz6PossiblyUndefinedVariableVisitor.visit_assignment_expr…  s$   € Ø	�‰�‰�tÔØ×Ñ˜AŸH™HÕ%r?   c                ó@  — |j                   D ]  }|j                  | «       Œ | j                  j                  «        |j                  D ]:  }|j
                  rŒ|j                  | «       | j                  j                  «        Œ< |j                  r| j                  j                  «        nX|j                  rL|j                  j
                  r| j                  j                  «        n|j                  j                  | «       | j                  j                  «        y r7   )rç   rð   rÎ   r¬   ÚbodyÚis_unreachablerY   Úunreachable_elserl   Ú	else_bodyr°   )r<   r“   ÚerV   s       r=   Úvisit_if_stmtz.PossiblyUndefinedVariableVisitor.visit_if_stmt‰  sË   € Ø—‘ò 	ˆAØ�H‰H�T�Nð	à�‰×+Ñ+Ô-Ø—‘ò 	'ˆAØ×ÒØØ�H‰H�TŒNØ�L‰L×$Ñ$Õ&ð		'ð
 ×ÒØ�L‰L×$Ñ$Õ&Ø�[Š[Ø�{‰{×)Ò)Ø—‘×(Ñ(Õ*à—‘×"Ñ" 4Ô(Ø�‰×)Ñ)Õ+r?   c                ón  — |j                   j                  | «       | j                  j                  «        t	        t        |j                  «      «      D ]Å  }|j                  |   }|j                  | «       |j                  |   }|�|j                  | «       |j                  |   j                  s|j                  |   j                  | «       n| j                  j                  «        t        |«      t        k(  }|rŒ¬| j                  j                  «        ŒÇ | j                  j                  «        y r7   )Úsubjectrð   rÎ   r¬   Úranger]   ÚpatternsÚguardsÚbodiesrõ   rl   r/   r.   rY   r°   )r<   r“   ÚiÚpatternÚguardÚis_catchalls         r=   Úvisit_match_stmtz1PossiblyUndefinedVariableVisitor.visit_match_stmt›  sã   € Ø	�	‰	×Ñ˜ÔØ�‰×+Ñ+Ô-Ü”s˜1Ÿ:™:“Ó'ò 	+ˆAØ—j‘j ‘mˆGØ�N‰N˜4Ô Ø—H‘H˜Q‘KˆEØÐ Ø—‘˜TÔ"Ø—8‘8˜A‘;×-Ò-Ø—‘˜‘×"Ñ" 4Õ(à—‘×(Ñ(Ô*Ü-¨gÓ6¼+ÑEˆKÚØ—‘×(Ñ(Õ*ð	+ð 	�‰×)Ñ)Õ+r?   c                óZ   •— | j                  |j                  «       t        ‰| �  |«       y r7   )rÝ   ra   rß   Úvisit_func_def©r<   r“   râ   s     €r=   r  z/PossiblyUndefinedVariableVisitor.visit_func_def­  s"   ø€ Ø×Ñ §¡Ô'Ü‰Ñ˜qÕ!r?   c                ó  •— |j                  «       r| j                  j                  sy |j                  xs g }|D ]*  }|j                  €Œ|j                  j                  | «       Œ, | j                  j                  t        j                  «       |D ]@  }| j                  |j                  j                  «       t        ‰| �9  |j                  «       ŒB |j                  j                  | «       | j                  j!                  «        y r7   )Ú
is_dynamicrÆ   Úcheck_untyped_defsÚ	argumentsÚinitializerrð   rÎ   r¦   r€   r†   rÝ   Úvariablera   rß   Ú	visit_varrô   r¨   )r<   r“   ÚargsÚargrâ   s       €r=   Ú
visit_funcz+PossiblyUndefinedVariableVisitor.visit_func±  sÆ   ø€ Ø�<‰<Œ> $§,¡,×"AÒ"AØà�{‰{Ò ˜bˆàò 	-ˆCØ�‰Ñ*Ø—‘×&Ñ& tÕ,ð	-ð 	�‰× Ñ ¤§¡Ô0Øò 	,ˆCØ×#Ñ# C§L¡L×$5Ñ$5Ô6Ü‰GÑ˜cŸl™lÕ+ð	,ð 	
�‰�‰�dÔØ�‰×ÑÕ!r?   c                óî   •— | j                   j                  t        j                  «       |j                  D ]  }| j                  |«       Œ t        ‰| �  |«       | j                   j                  «        y r7   )	rÎ   r¦   r€   r‡   Úindicesræ   rß   Úvisit_generator_exprr¨   ©r<   r“   Úidxrâ   s      €r=   r  z5PossiblyUndefinedVariableVisitor.visit_generator_exprÂ  sY   ø€ Ø�‰× Ñ ¤×!4Ñ!4Ô5Ø—9‘9ò 	%ˆCØ×Ñ Õ$ð	%ä‰Ñ$ QÔ'Ø�‰×ÑÕ!r?   c                óî   •— | j                   j                  t        j                  «       |j                  D ]  }| j                  |«       Œ t        ‰| �  |«       | j                   j                  «        y r7   )	rÎ   r¦   r€   r‡   r  ræ   rß   Úvisit_dictionary_comprehensionr¨   r  s      €r=   r  z?PossiblyUndefinedVariableVisitor.visit_dictionary_comprehensionÉ  sY   ø€ Ø�‰× Ñ ¤×!4Ñ!4Ô5Ø—9‘9ò 	%ˆCØ×Ñ Õ$ð	%ä‰Ñ.¨qÔ1Ø�‰×ÑÕ!r?   c                óp  — |j                   j                  | «       | j                  |j                  «       |j                  j                  | «       | j                  j                  «        t        «       }| j                  j                  |«       |j                  j                  | «       | j                  j                  «        | j                  j                  «        |j                  �±|j                  }|rl| j                  j                  «        |j                  �,|j                  D ]  }| j                  j                  |«       Œ | j                  j                  «        |j                  j                  | «       |r| j                  j                  «        | j                  j!                  «        y r7   )rç   rð   ræ   ÚindexrÎ   r¬   r¼   rÌ   rX   rô   rY   r°   r÷   r¾   r¿   rb   r–   )r<   r“   Úloopr¾   Úbvs        r=   Úvisit_for_stmtz/PossiblyUndefinedVariableVisitor.visit_for_stmtÐ  s'  € Ø	�‰�‰�dÔØ×Ñ˜AŸG™GÔ$Ø	�‰�‰�tÔØ�‰×+Ñ+Ô-Ü‹vˆØ�
‰
×Ñ˜$ÔØ	�‰�‰�dÔØ�‰× Ñ Ô"Ø�‰×)Ñ)Ô+Ø�;‰;Ð"ð Ÿ™ˆIÙØ—‘×3Ñ3Ô5Ø—?‘?Ð.Ø"Ÿo™oò ;˜ØŸ™×6Ñ6°rÕ:ð;à—‘×(Ñ(Ô*Ø�K‰K×Ñ˜tÔ$ÙØ—‘×1Ñ1Ô3Ø�
‰
�‰Õr?   c                óX   •— t         ‰| �  |«       | j                  j                  «        y r7   )rß   Úvisit_return_stmtrÎ   rl   r  s     €r=   r  z2PossiblyUndefinedVariableVisitor.visit_return_stmtê  s    ø€ Ü‰Ñ! !Ô$Ø�‰× Ñ Õ"r?   c                óª   •— | j                   j                  t        j                  «       t        ‰| �  |«       | j                   j                  «        y r7   )rÎ   r¦   r€   r†   rß   Úvisit_lambda_exprr¨   r  s     €r=   r!  z2PossiblyUndefinedVariableVisitor.visit_lambda_exprî  s6   ø€ Ø�‰× Ñ ¤§¡Ô0Ü‰Ñ! !Ô$Ø�‰×ÑÕ!r?   c                ó˜   •— t         ‰| �  |«       t        j                  |j                  «      r| j
                  j                  «        y y r7   )rß   Úvisit_assert_stmtr   Úis_false_literalrç   rÎ   rl   r  s     €r=   r#  z2PossiblyUndefinedVariableVisitor.visit_assert_stmtó  s7   ø€ Ü‰Ñ! !Ô$Ü×#Ñ# A§F¡FÔ+Ø�L‰L×$Ñ$Õ&ð ,r?   c                óX   •— t         ‰| �  |«       | j                  j                  «        y r7   )rß   Úvisit_raise_stmtrÎ   rl   r  s     €r=   r&  z1PossiblyUndefinedVariableVisitor.visit_raise_stmtø  s    ø€ Ü‰Ñ  Ô#Ø�‰× Ñ Õ"r?   c                óX   •— t         ‰| �  |«       | j                  j                  «        y r7   )rß   Úvisit_continue_stmtrÎ   rl   r  s     €r=   r(  z4PossiblyUndefinedVariableVisitor.visit_continue_stmtü  s    ø€ Ü‰Ñ# AÔ&Ø�‰× Ñ Õ"r?   c                óF  •— t         ‰| �  |«       | j                  rëd| j                  d   _        t	        | j
                  j                  «       j                  «      dkD  r§| j
                  j                  «       j                  d   j                  d   }| j                  d   j                  €(t        |j                  «      | j                  d   _	        n2| j                  d   j                  j                  |j                  «       | j
                  j                  «        y )NTr\   r   )rß   Úvisit_break_stmtrÌ   r¾   r]   rÎ   r¤   r‹   rS   r¿   r8   r:   rv   rl   )r<   r“   rp   râ   s      €r=   r*  z1PossiblyUndefinedVariableVisitor.visit_break_stmt   sÒ   ø€ Ü‰Ñ  Ô#Ø�:Š:Ø'+ˆD�J‰J�r‰NÔ$ä�4—<‘<×&Ñ&Ó(×5Ñ5Ó6¸Ò:ØŸ™×,Ñ,Ó.×;Ñ;¸BÑ?×HÑHÈÑL�Ø—:‘:˜b‘>×,Ñ,Ð4Ü03°F×4JÑ4JÓ0K�D—J‘J˜r‘NÕ-ð —J‘J˜r‘N×-Ñ-×AÑAÀ&×BXÑBXÔYØ�‰× Ñ Õ"r?   c                óØ   •— | j                   j                  |j                  «      }|�t        t	        |«      t
        «      r| j                  j                  «        t        ‰| �%  |«       y r7   )
rÅ   rÈ   rç   rÉ   r3   r2   rÎ   rl   rß   Úvisit_expression_stmt)r<   r“   Útyprâ   s      €r=   r,  z6PossiblyUndefinedVariableVisitor.visit_expression_stmt  sK   ø€ Ø�m‰m×Ñ §¡Ó'ˆØˆ;œ*¤_°SÓ%9¼?ÔKØ�L‰L×$Ñ$Ô&Ü‰Ñ% aÕ(r?   c                ó  — | xj                   dz  c_         |j                  �C| j                  j                  «       }d| j                  _        | j                  |«       || _        | j                  |«       | xj                   dz  c_         y)aÃ  
        Note that finding undefined vars in `finally` requires different handling from
        the rest of the code. In particular, we want to disallow skipping branches due to jump
        statements in except/else clauses for finally but not for other cases. Imagine a case like:
        def f() -> int:
            try:
                x = 1
            except:
                # This jump statement needs to be handled differently depending on whether or
                # not we're trying to process `finally` or not.
                return 0
            finally:
                # `x` may be undefined here.
                pass
            # `x` is always defined here.
            return x
        ru   NT)rÍ   Úfinally_bodyrÎ   rC   r    Úprocess_try_stmt)r<   r“   Úold_trackers      r=   Úvisit_try_stmtz/PossiblyUndefinedVariableVisitor.visit_try_stmt  sm   € ð$ 	�Š˜!Ñ�Ø�>‰>Ð%ð Ÿ,™,×+Ñ+Ó-ˆKØ/3ˆD�L‰LÔ,Ø×!Ñ! !Ô$Ø&ˆDŒLØ×Ñ˜aÔ Ø�Š˜!ÑŽr?   c                ó  — | j                   j                  «        |j                  j                  | «       |j                  �|j                  j                  | «       t        |j                  «      dkD  �r+t        |j                  «      t        |j                  «      cxk(  rt        |j                  «      k(  sJ ‚ J ‚t        t        |j                  «      «      D ]Á  }| j                   j                  «        |j                  |   }|�|j                  | «       |j                  |   }|�,| j                  |j                  «       |j                  | «       |j                  |   j                  | «       |€Œ�| j                   j                  |j                  «       ŒÃ | j                   j                  «        |j                  �>d| j                   _        |j                  j                  | «       d| j                   _        yy)a  
        Processes try statement decomposing it into the following:
        if ...:
            body
            else_body
        elif ...:
            except 1
        elif ...:
            except 2
        else:
            except n
        finally
        Nr   TF)rÎ   r¬   rô   rð   r÷   r]   ÚhandlersÚvarsÚtypesrü   rY   rÝ   ra   rd   r°   r/  r¡   )r<   r“   r   Úexc_typeÚvars        r=   r0  z1PossiblyUndefinedVariableVisitor.process_try_stmt4  sx  € ð 	�‰×+Ñ+Ô-Ø	�‰�‰�dÔØ�;‰;Ð"Ø�K‰K×Ñ˜tÔ$Üˆq�z‰z‹?˜QÓÜ�q—z‘z“?¤c¨!¯&©&£kÔA´S¸¿¹³\ÒAÐAÑAÐAÐAÜœ3˜qŸz™z›?Ó+ò 6�Ø—‘×(Ñ(Ô*ØŸ7™7 1™:�ØÐ'Ø—O‘O DÔ)Ø—f‘f˜Q‘i�Ø�?Ø×+Ñ+¨C¯H©HÔ5Ø—J‘J˜tÔ$Ø—
‘
˜1‘×$Ñ$ TÔ*Ø‘?Ø—L‘L×+Ñ+¨C¯H©HÕ5ð6ð 	�‰×)Ñ)Ô+à�>‰>Ð%Ø&*ˆD�L‰LÔ#Ø�N‰N×!Ñ! $Ô'Ø&+ˆD�L‰LÕ#ð &r?   c                óê  — |j                   j                  | «       | j                  j                  «        t	        «       }| j
                  j                  |«       |j                  j                  | «       |j                  }t        j                  |j                   «      s| j                  j                  «        | j                  j                  «        |j                  �y|r4| j                  j                  «        | j                  j                  «        |j                  r|j                  j                  | «       |r| j                  j                  «        | j
                  j                  «        y r7   )rç   rð   rÎ   r¬   r¼   rÌ   rX   rô   r¾   r   Úis_true_literalrY   r°   r÷   r–   )r<   r“   r  r¾   s       r=   Úvisit_while_stmtz1PossiblyUndefinedVariableVisitor.visit_while_stmt[  sñ   € Ø	�‰�‰�dÔØ�‰×+Ñ+Ô-Ü‹vˆØ�
‰
×Ñ˜$ÔØ	�‰�‰�dÔØ—N‘Nˆ	Ü×&Ñ& q§v¡vÔ.ð �L‰L×$Ñ$Ô&Ø�‰×)Ñ)Ô+Ø�;‰;Ð"ñ Ø—‘×3Ñ3Ô5Ø—‘×(Ñ(Ô*Ø�{Š{Ø—‘×"Ñ" 4Ô(ÙØ—‘×1Ñ1Ô3Ø�
‰
�‰Õr?   c                ór   •— |j                   �| j                  |j                   «       t        ‰| �  |«       y r7   )ra   ræ   rß   Úvisit_as_patternr  s     €r=   r=  z1PossiblyUndefinedVariableVisitor.visit_as_patternu  s,   ø€ Ø�6‰6ÐØ×Ñ §¡Ô'Ü‰Ñ  Õ#r?   c                ór   •— |j                   �| j                  |j                   «       t        ‰| �  |«       y r7   )Úcaptureræ   rß   Úvisit_starred_patternr  s     €r=   r@  z6PossiblyUndefinedVariableVisitor.visit_starred_patternz  s,   ø€ Ø�9‰9Ð Ø×Ñ §	¡	Ô*Ü‰Ñ% aÕ(r?   c                óD  •— |j                   | j                  v r*| j                  j                  t        j
                  «      ry | j                  j                  |j                   «      ro| j                  j                  | j                  j                  k(  rB| j                  |j                   |«       | j                  j                  |j                   «       nº| j                  j                  |j                   «      rU| j                  s| j                  dkD  r| j                  |j                   |«       n]| j                  |j                   |«       n@| j                  j                  |j                   «      r| j                  j!                  |«       t"        ‰| �I  |«       y )Nr   )ra   rÇ   rÎ   rª   r€   r„   rn   r¡   r    rÙ   rb   r¹   rÌ   rÍ   rÔ   rq   r”   rß   Úvisit_name_exprr  s     €r=   rB  z0PossiblyUndefinedVariableVisitor.visit_name_expr  s  ø€ Ø�6‰6�T—]‘]Ñ" t§|¡|×'<Ñ'<¼Y×=MÑ=MÔ'NØà�L‰L×.Ñ.¨q¯v©vÔ6Ø—‘×'Ñ'¨4¯<©<×+KÑ+KÒKð ×*Ñ*¨1¯6©6°1Ô5à�L‰L×*Ñ*¨1¯6©6Õ2Ø�\‰\×8Ñ8¸¿¹Ô@à�zŠz˜TŸ^™^¨aÒ/ð ×.Ñ.¨q¯v©v°qÕ9à×(Ñ(¨¯©°Õ3Ø�\‰\×&Ñ& q§v¡vÔ.ð �L‰L×-Ñ-¨aÔ0Ü‰Ñ Õ"r?   c                óÎ   — t        |j                  |j                  «      D ]'  \  }}|j                  | «       | j	                  |«       Œ) |j
                  j                  | «       y r7   )Úziprç   rñ   rð   ræ   rô   )r<   r“   rç   r  s       r=   Úvisit_with_stmtz0PossiblyUndefinedVariableVisitor.visit_with_stmtœ  sP   € Ü˜QŸV™V Q§X¡XÓ.ò 	%‰IˆD�#Ø�K‰K˜ÔØ×Ñ Õ$ð	%ð 	
�‰�‰�dÕr?   c                óà   •— | j                  |j                  «       | j                  j                  t        j
                  «       t        ‰| �  |«       | j                  j                  «        y r7   )	rÝ   ra   rÎ   r¦   r€   r…   rß   Úvisit_class_defr¨   r  s     €r=   rG  z0PossiblyUndefinedVariableVisitor.visit_class_def¢  sH   ø€ Ø×Ñ §¡Ô'Ø�‰× Ñ ¤§¡Ô1Ü‰Ñ Ô"Ø�‰×ÑÕ!r?   c                óì   •— |j                   D ]U  \  }}|�| j                  j                  |«       Œ$|j                  d«      }|sŒ8| j                  j                  |d   «       ŒW t        ‰| �  |«       y )Nú.r   )ÚidsrÎ   rb   Úsplitrß   Úvisit_import)r<   r“   ÚmodÚaliasrË   râ   s        €r=   rL  z-PossiblyUndefinedVariableVisitor.visit_import¨  sk   ø€ ØŸ%™%ò 		=‰JˆC�ØÐ Ø—‘×.Ñ.¨uÕ5ð Ÿ	™	 #›�Úð —L‘L×2Ñ2°5¸±8Õ<ð		=ô 	‰Ñ˜QÕr?   c                óŽ   •— |j                   D ]&  \  }}|}|€|}| j                  j                  |«       Œ( t        ‰| �  |«       y r7   )rË   rÎ   rb   rß   Úvisit_import_from)r<   r“   rM  rN  ra   râ   s        €r=   rP  z2PossiblyUndefinedVariableVisitor.visit_import_fromµ  sJ   ø€ ØŸ'™'ò 	1‰JˆC�ØˆDØˆ|Ø�Ø�L‰L×*Ñ*¨4Õ0ð		1ô
 	‰Ñ! !Õ$r?   c                ób   — | j                   j                  |j                  j                  «       y r7   )rÎ   rb   ra   r’   s     r=   Úvisit_type_alias_stmtz6PossiblyUndefinedVariableVisitor.visit_type_alias_stmt½  s   € à�‰×&Ñ& q§v¡v§{¡{Õ3r?   )
rÄ   r   rÅ   zdict[Expression, Type]rÆ   r+   rË   r$   rF   rG   )ra   r}   rÖ   r   rF   rG   r|   )r“   r   rF   rG   )r“   r    rF   rG   )ré   zLvalue | NonerF   rG   )r“   r
   rF   rG   )r“   r	   rF   rG   )r“   r   rF   rG   )r“   r   rF   rG   )r“   r   rF   rG   )r“   r   rF   rG   )r“   r   rF   rG   )r“   r   rF   rG   )r“   r   rF   rG   )r“   r"   rF   rG   )r“   r   rF   rG   )r“   r   rF   rG   )r“   r!   rF   rG   )r“   r   rF   rG   )r“   r   rF   rG   )r“   r   rF   rG   )r“   r%   rF   rG   )r“   r(   rF   rG   )r“   r,   rF   rG   )r“   r-   rF   rG   r™   )r“   r)   rF   rG   )r“   r   rF   rG   )r“   r   rF   rG   )r“   r   rF   rG   )r“   r'   rF   rG   )'rI   rJ   rK   rL   r>   rÔ   rÙ   rÝ   rà   rä   ræ   rí   rò   rù   r  r  r  r  r  r  r  r!  r#  r&  r(  r*  r,  r2  r0  r;  r=  r@  rB  rE  rG  rL  rP  rR  Ú__classcell__)râ   s   @r=   rÁ   rÁ   0  sä   ø„ ñð"1àð1ð )ð1ð ð	1ð
 ð1ð 
ó1ó*8ó>ó-õ%õ
'ó
*õ)ó
&ó,ó$,õ$"õ"õ""õ"óõ4#õ"õ
'õ
#õ#õ#õ)óó@%,óNõ4$õ
)õ
#ó:õ"õ õ%÷4r?   rÁ   N)BÚ
__future__r   Úenumr   Úmypyr   r   Úmypy.messagesr   Ú
mypy.nodesr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   Úmypy.optionsr+   Úmypy.patternsr,   r-   Úmypy.reachabilityr.   r/   Úmypy.traverserr0   Ú
mypy.typesr1   r2   r3   r5   rO   r€   r‰   rœ   r¼   rÁ   rM   r?   r=   ú<module>r^     s­   ðÝ "å ç $Ý (÷$÷ $÷ $÷ $÷ $÷ $÷ $÷ $÷ $ñ $õJ !ß 3ß >Ý 3ß =Ñ =÷
ñ 
÷>X
ñ X
ôv�ô ÷4ñ 4÷(^Añ ^A÷B0ñ 0ôO4Ð'?õ O4r?   