Ë
    pPêjÅ
  ã                  ól   — U d Z ddlmZ ddlmZ ddlmZmZmZm	Z	m
Z
 ddlmZmZ dZded<   dd	„Zdd
„Zy)z*Check for duplicate AST nodes after merge.é    )Úannotations)ÚFinal)Ú	DecoratorÚFakeInfoÚFuncDefÚ
SymbolNodeÚVar)Úget_pathÚget_reachable_graphFr   ÚDUMP_MISMATCH_NODESc                ól  — t        | «      \  }}t        |j                  «       «      }|D �cg c]  }t        |t        «      sŒ|‘Œ }}i }|D �]`  }t        |t
        «      rŒ|j                  }|sŒ$t        |t        t        f«      rŒ;t        |t        «      r|j                  rŒX||vr|||<   Œb|||   }
}	t        |	«      t        |
«      urŒ€t        |	||«      }t        |
||«      }||v rit        dt        |«      j                  ›d|›d�«       t        dt        |	«      t!        |«      fz  «       t        dt        |
«      t!        |«      fz  «       t"        rD||v r@t        d«       t        t        |	«      |	«       t        d«       t        t        |
«      |
«       |j                  |vr�ŒaJ ‚ yc c}w )z•Fail if there are two AST nodes with the same fullname reachable from 'o'.

    Raise AssertionError on failure and print some debugging output.
    z
Duplicate z nodes with fullname z found:z
[1] %d: %sz
[2] %d: %sz---N)r   ÚlistÚvaluesÚ
isinstancer   r   Úfullnamer	   r   r   Úis_overloadÚtyper
   ÚprintÚ__name__ÚidÚpath_to_strr   )ÚoÚseenÚparentsÚ	reachableÚxÚsymsÚmÚsymÚfnÚsym1Úsym2Úpath1Úpath2s                ú[/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypy/server/mergecheck.pyÚcheck_consistencyr&      s–  € ô
 (¨Ó*�M€Dˆ'Ü�T—[‘[“]Ó#€IØ Ö>�!¤J¨q´*Õ$=ŠAÐ>€DÐ>à!€AØó *%ˆÜ�cœ8Ô$Øà�\‰\ˆñ Øô �cœC¤Ð+Ô,ØÜ�cœ7Ô#¨¯ªØà�Q‰;ØˆAˆb‰EØð ˜!˜B™%ˆdˆô �‹:œT $›ZÑ'Øä˜˜t WÓ-ˆÜ˜˜t WÓ-ˆà�‰7Ü�L¤ c£×!3Ñ!3Ð 6Ð6KÈBÈ6ÐQXÐYÔZÜ�,¤" T£(¬K¸Ó,>Ð!?Ñ?Ô@Ü�,¤" T£(¬K¸Ó,>Ð!?Ñ?Ô@å 2¨¡7ä�%ŒLÜ”"�T“(˜DÔ!Ü�%ŒLÜ”"�T“(˜DÔ!à�|‰| 1Ó$Ð$Ð$ñU*%ùò ?s   ¬F1ÁF1c           	     óü   — d}| D ]t  \  }}t        |«      j                  }|dv r|dt        |«      › d�z  }Œ2t        |t        «      r|d|› d|› d|j
                  › d�z  }Œ\|d	v r	|d|› �z  }Œi|d|› d|› d�z  }Œv |S )
Nz<root>)ÚdictÚtupleÚSymbolTabler   ú[ú]ú.ú(ú:ú))ÚBuildManagerÚFineGrainedBuildManager)r   r   Úreprr   r	   Úname)ÚpathÚresultÚattrÚobjÚts        r%   r   r   E   s°   € Ø€FØò *‰	ˆˆcÜ�‹I×ÑˆØÐ8Ñ8Ø˜œ$˜t›*˜ QÐ'Ñ'‰Fä˜#œsÔ#Ø˜A˜d˜V 1 Q C q¨¯©¨
°!Ð4Ñ4‘ØÐAÑAð ˜A˜d˜V˜*Ñ$‘à˜A˜d˜V 1 Q C q˜/Ñ)‘ð*ð €Mó    N)r   ÚobjectÚreturnÚNone)r5   zlist[tuple[object, object]]r<   Ústr)Ú__doc__Ú
__future__r   Útypingr   Ú
mypy.nodesr   r   r   r   r	   Úmypy.server.objgraphr
   r   r   Ú__annotations__r&   r   © r:   r%   ú<module>rF      s/   ðÚ 0å "å ç DÕ Dß >ð #Ð �UÓ "ó4%ônr:   