From 3dbe807aadab88967424cdf9d86c27c84e22f29a Mon Sep 17 00:00:00 2001 From: Josselin Date: Fri, 8 Feb 2019 18:19:45 -0500 Subject: [PATCH] Improve inheritance graph printed message --- examples/printers/inheritances_graph.sol.dot | 2 +- examples/printers/inheritances_graph.sol.png | Bin 16162 -> 13948 bytes .../printers/inheritance/inheritance_graph.py | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/printers/inheritances_graph.sol.dot b/examples/printers/inheritances_graph.sol.dot index a84a3f4a23..928841e7e4 100644 --- a/examples/printers/inheritances_graph.sol.dot +++ b/examples/printers/inheritances_graph.sol.dot @@ -3,5 +3,5 @@ A[shape="box"label=< B[shape="box"label=<
A
B
Public Functions:
g()
>]; C -> A [ label="1" ]; C -> B [ label="2" ]; -C[shape="box"label=<
C
Public Functions:
f()

'g' collides in inherited contracts A, B where B wins.
>]; +C[shape="box"label=<
C
Public Functions:
f()

'g()' collides in inherited contracts A, B where B is chosen.
>]; } \ No newline at end of file diff --git a/examples/printers/inheritances_graph.sol.png b/examples/printers/inheritances_graph.sol.png index 7557b21cca4029e32f04264f0bf18977629263c8..c583fd5bbfe12a325dd1ce59d1a583c8082c5816 100644 GIT binary patch literal 13948 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%0A`Kp<@nib7p4Q(oa0dB_>fZ$=-lWcEn z9G#L?0GrqqVgCF=T)l^hEp$QKVS5OLDQe2!6JgT|*9EiEV>_Nwi zcDAqzKCjtKc-Q5LxzNV%J2X*J~ z-_bADWC>kag!pi}!bbRH6bD`k!a0N&iMZ=hKbuVwAZ$L%ZZX$28jOs08R0alRUwvp z{=6zVc|vf~Q&tTS6Sl8xFyVPTygF#ZfWrsznVlVyC}KBM2s(LGK}UN#LN6|!^l%kA zpS)80gVvS*f4Y}mBT{m5I5p-+CgO_8;C#Lu3^n|WuC1*_?ml?H`gAE%Ikwdv z&z~Ne3$W-VB$5-qKsN&mOD2$f$HLm$WY`%WT415b#==h~8y29==lpzWI@{WcN=xUS z2;FDzNs){l5^;ZT0W1$k`W8Pwupd?qjy%y}=#StBkEgJZn==;FO5mq}Z8FOz1_rWH zQ=k6nqzZ`#)(+-WSZHXg^cDrL+5fnU$>X9e-jYPf{|AjsAQ|*4K_64w$8xNCkR9M? z7J!0OY65wu$ayLN4G12xFL225&aAvVam#KRsD`<@H$i4xx@)VQH(BuvA`z&yawpB@ z%d@Mi;!v#}x%v3|K*1Ut)A!Ir3e7v-6&4nP#R2tHgDJ>TO0n5vz9lv($v{(+X_J|K z5!el+I^+o)eB!*|OR74lQ?e&0er+|R( zzrO`E@sZ&~M@9W!T~+O(AtRH0K*eSs{UBd|advhadInwQPZ*i8Ycxgkjp_)IS)&hf zphCkmVe6p>t+*JlQ(k4|`<59nKuXKXGEYODyRtTu8 zM%8Xu2w=0kygX34?vsIiVA2PkGkh0@oc;E5&9cgQ`2l!BAcnLJ(@J;>S@&i@F1X_$ z4!&$(UkQYeST9>*1&miz6g~0;fQzWl=`nODUqm!ULL(ynJQ0Gt{vXvJsPgt+Sd`ti z+Um>D&~v`|`6V`1R&JZqLHYTQ6%|_nu7T5hO(l+)oIEovjr7WukKm1aY+E7MuU|(I z5k-cE0t3WFKn{y05~q;t%ruN_b&qIroIJ5yaVn7k!ty?$<>>$p>^u4v!3OZY7sY!a^7|lRKC~ZS~ zVRs`Rwb%;#T{|G=E1YrGzMMJ3KS0=szv9LrGbLg;BXP+D-=#Y1x=D*|F8U?U(B}J$ z59orYDd%~xMGe_KTWq7Bm3=vCU}!q0Vl?T8E+GFj<2<>WE*~1SIr1NG>EP`r1=NaL z-afhjP!=xSaH{O`mw#@AthkL6i5Qx$O5xW>44$OUl(udXi9HaJLS$Q%ie^d~U8qab2l>97+F@oc#et*Tyt>Dnds+HFW~)F&_yr19Rxq2ni4+Vqy@{H9+Tr zKFL~W$8!Xi%y}879bi->t#}S`xxDnJNz<<`p3rzP+jRv7U>r+isjRN9?zC!JP~=C(f8KuwyS=FBo~KywcPu1iuR$KwM)|iiAQuIb?T^zf zu>ehwUr;ctQ`g9d2m#1Y91b00FQ-PL6B4TIM+Fc!pnQP*AsJxR_w+>4qqZz?8laa0 zB&MPcR+%l|sbwWh3qtaHa#}EEJHa_^YHWNt7Q@NPY61HKN>i-;?Z7CU&h-+-%e1t# zWMoX9N-R+B3Jae=HpI`8LEW4E;sU?Z06Fj}IFXP7F%6w3ed>~+-N=Gr51fbrsmMbk z+z?eM-iMepAV#}B+ZF@oq^Pj)k;r8Ye78MZs;J2kEChxag%(0+Z-2+3_aqG4xeo*i zZ*Xb==R~_Y=#)Q3A218{SIwpoNyyZkU!S1obF3NnyBqm?oZ9SyEuMxLkS!?pvwc%K zXGF-x8bLAe4z@U`SCC9an3-omB!_MZY>cr_a(0$MS^Yeq6IjE=7oH1Z?kk>0A$D#2FL0m6(&6QDKuNfD#b1jsB|UYq5Qa}zbvWgB9bG`KxATjip;lkkW;P+I{&&7+fe<;W+`iomUGW%0m~a}__4b4<-f-z6DEN#934j^mB3@8# zfc)jT^Gh3GW=UZo$ZO5eW)6LyUITp0ZWrz~!xbnYWzn?N>kD zONY<{be5eB(n^6*-8DVBRN_T^Fow>j7 zI~V`CIOqOc$m6s2oNJ9W$DCul;~npcQdgD7!F+;=goK2ns34<>goJDZ{<)w(0#}U1 z_`;Ep=#Ug;B(=Pa_p>l&b$(qx9Iljn7bcPAOS&(`-hStv56k~fuBf=4DxyK5l*K0d zls`;{I94fvAq_L{yPl@Zaz0-&m5glZ!j5KrTC=HHkqOa7kulw8U&`D7GYOT0Az6Ae^{c>A zGgc@Jw=Kek7ECniee^YOaXaR3?cMXh?wmJ z)AsyV`!dbNfQzhaYJS_%T;Y!=l3*m>mkRy~)P|$c?3Zum8yz{&U9_r=|ID$53o-2P zz$w*WxE;|prg<2t&#bBKxf^gC;!vT%kP#OsgcP=0)utMbOZ_FV21nfie{-0EOD*DEb;4FoEhaGs?lN#L;g=H*6-n55VuPC{g`W#0 z3*lRcX7_@V6Vf3QUIOdV3t)&nCZzxsJJdT`(&FbmT?TZamF0$IFQhV6JBy%WT0>m-! z>)d*`!%w%9wSklElAOVKdTFtUN1c{4C2F)S=kxYO#vQ(2GD#1XyCX_o3jXru@5)Q5 za%j98nhb313cdP3!ciD-b6#e?G*$UV@NdN+Bzdzp9m;_Agl4MV`1ay|yULPK`Ho=x z;7^ssBi;l@jUt zQN$`szO#a*?a*P1X((&>GmGA}_2RV|++;>rDS<)-beFg9kJqA+d9f{)0M!Qymn;zv zrQrt0ys01PuyFM;u#0`q_w-k&{E{ml7PU$D=kv&CDrTwP&7XIi&zJY$e0%OUwTxD; zddgA{q6bN!&|XdV+PFNewjlLOQLmqKMvdmZ*q&QC;`qJWlVyqS2fy``xsBMXYGNC4 zHd7tb9JhF52H<GlDj-*>17ZRwK9jsY1gSCYTIn z!;H%7==$ud!27FB%@$WnkK87al6uOU1UI=xE--YUkp^+f! z4D^L=RBDi*by+DEq|s$n?rVNewnsXT@YfFOOqXy%_u+8I1-`j2bE$W~)E*bZOZ-?( z>)?VddD0Pszgygjf*$VcY=5y>W^~TYs>xT8eI|wwMnVwAkj8-B@svOSPxRwbdQz)Z z`gz3!Gra1u-Y7-a;rE!S)SXG-m1Ptqk_;)o=1o}M%g_dA$n`_HRvE)ryD80jbt)@L z1M+>LPTTT75_f_(R_kZ3zdDhZ+Dmc*4bJDRX(@!><$kbTux!ZM7+%1WNT!F?5GWKv z+qi9b`n-*9i}8yyD0cO;W>h9fr|25fUiiHvX}>vWV`s`w`Iokgc3Qib?P2Gq@fVk8 z>-2VZ$9&b}w9c8EJ8w!EV?V8{gRj?Kj;0YS{yZKk0*NBF5v@wYjeq%TlK-U}S8YyO zEyw*HrqNqU$}`{X?VXG}ttEq&mGtp>$G3G;90C@L746wi_7;uS+nrQIKALwu&ZUZn zenw|f%?*8zzZY%N_3llhLz)3IOx|y1c$S28oPQvJQGW2>_Al*r_mTAHJF@vLpL%vT zU`gZ~?5KY6d4cVmzc{!jaHRY;qGzvXOoF&5UpOd)$s4ZNM{ocKNz-}W&T%+7cJ)i& znHJrwwPMWO9(FwhZo~7W?SxG_Q=ZFho0n9MGsX+SJh^yIT{C=+Ee2+1Yc1A4zgE?# zRckN2UJAu4l#M23)_Lyz2dP1Q$)DO49uiUHQ{8#}1teI;ub)S<^O}HLwW#zL_I(x8 zw#%Sh6`9X0!ar!NhEc|b<4}Hi=-SNoQ>yfbFO&bfie!vc=g>aNA0N`;>cM;YFMc@v zxpEErqh}TY^{rd^(QnUortG}(xX!sHeEtX=5fYTY3A{Vgox&VTJ#FfMTroiVg1pIJ43$t5#jm}6hHAWMB7Eyu4L(ULEfV_nTLs+D6~V(;fw zd^TZqhp#&4Lhjg9;#x#I2c^)`8 z2tXnN^4f$v(v2F(I|g73yfr)=04*j2IN4?lzC++0E-=Q%NV*%O8-)4P?x+rij3+v3 z318i08}GSKQd$}0V+qQpbk=4LWyIUH-^Q)Vc4jl4q}<7zKcpzMoJhVg^Fd@$d`$Ov zNhIXJZJ~rOI5O#CY$pRk2}RPfc3z~yZ{zzjUdrN9v)8?Oo#6OJmeh!$ZXYj!u}`xw z^qrMHn2yNeZ|N$04A;(rK2Y(=tSxaoh@D>K$ZllO*UdyRoN;qp-IVXkdOFj)ZatSY zFh@)ROY`^%%8)a$zHd^$nc!#QEoKziPG6n1OI;auEgt>#ou>@Z)%e1``TaC~Xm+t- z2p_!)=C_f!e+Z1~SFV(8^w+KX7x+i^2`-sWZBqZih)k?+v%6zPC%#W@Q9pN#OuE|X zuO~wY?0_Uq1?vm8f7EfJn&4H1Z|fea5PE;Wz9~R-b@e)7)r7EYg6>_t7yuu1X{bV> zxGP>MP@X;Zlb=KkuUH}{4_2!7&)j5m)QD{Pj0;s~=(y@Qfg3}B8$*Q_nc=C_50{+^ z(X6s|G`n2zoL8LGZMYLJhCTsz#R7Ll4t1dVc4H>28spEcI}>lwiRmYUCn3BSkG#SR z_m1+O43atDSAgOENVEj+$p#muMENMWiOtLbuu8v5F#p!@$HtV|R?8cfq^Z}k_lsc+ zF@27U)TKHu|A=gb^4I2V>i?3(5zHMu({;JD9B~Dk@&gju{1|lhcIy1=utdN=>uqXw zN0Szf)zbal+~dRIMCF;{vC8TA-Q2qxD+;h#iGexXk5D`b1E0NKyKG@dI_K193=C?E z>({_@VKw8{tH&i&z()+qtaNjk6q8$9k_?)Te6LvTK~kof(<0>hJp!17&au>A+M} z;S3{CxK8$A4VVh-x*O`Lrb4_e=FXvsCV5Y;wBFH%;eg@5BCs zx@l2)H5`5w$EfGxw5Cc*9DPHX06+WlT4#YpWm<~5Nu)qy`!}r6~uA@S6>3Z6hm*GuyM*jnAE*N zWk3tLyV}edT8)$7CNq2o(<;;axm|=q`J(?l22r6!Uu@l&_|4~m#IDweKC@(Hri>ySZ7LX^bkK z&dYrF?FreAr)oc7;%eyvik0do{HkYqh8?~hPsK_LI9EA!SLqTLc~yz|hJc>gwi*L})J7`WgAAX5=2F*`52O_mJ4+Gz_Pwx6D`!)@%p zhoHHxM6q7)E6uxFmZ`-NR2)kjG_U$Eggyh~M<#_4Fv4!)Qw-jzFs@-%NXO~snA(-W z%|kz99Cpul!5S)(Lg)>?jRYC$BdSLdj{@|qEz+#u+x|J_6z;LTDfQ|8!$APY zc8{`l^>rH0%nZ4V+x7l@R;fK%wSSZA61yuX;jztkMgG`$e*qHXTD2H5YZ6&Uyv2!X zF!t`OZ0d`4B0$O}e*V9Ru%7`nxwngd+_%|+p0=7i4RR_P-uzGzf3Z9sHSc*CxZf5<%{Y^P90nNxrXGSOV zVW#rUCbohg35nY&)vRs3Ibp->C0kJ20F1 zf^N=BN^UW?7a(CuN8pyF-Tw%~%BpoZeMU}J-x;-qHB1sW^CL{$RNYSW>(bJq?{uT( zP%@zzC32JhVor3;_=bWMBi}vT;I-cMhgJ>`Y1Y{;m<=gorV;1NG`nUT z4t*m&*Z;PeogP``3{zD5@K5ED)Q?%|pL+dCwkltgOjYwrvudzH@27GOv}eNn z8I_lK2W{RvqV4@dAWucV-3znd`;kK)y&=S#6QZ6o<45PlSGfO*Y~$Hn#wv24NrO#7 zYv71IK_Wvy;?EdGEKwHZRL-pu`)d2qp~u8q!4OAGWYv*>=J4HT^HkqT`>1+m*%A+! z^L*&j9~?2;VvTn7(}a~HX3a=HaX;Eimy{Ox^>e<%3hwKf=d5rZ_O|Yb5Hf4uMgH8e z;m&+i!DG=yay0!p$64LXF2T%@b=Bh6_~0gC(qZvAdJG==selHf^*jPS2A^#%E6^OjBS-AhBqN_=iif1Jr&byyoapq^i}NnF)c|MzI~4qjvWxy$Ph!+6$lb_xpb_ z{mT7DoDE3QNJbn)@JG1R6Y%xBaN%}yI6e;#?3cJ+y;Tfm2Q-(iGc~}1C0#YQgGJnP z@ve8Z!yG<8b{?(jRu}pZK9c%um02Jb1y=}qw@?i&a45Eqg=C??dSx-?>9v+NYZgg& zh_XHN6h=%qeg}qG0SpGJw(dSN}`7Mt}Z&(~x{L=J$0XMhG@5o_!&w7b% z)cM_&0fEqIve3IVGl^-7#(Zl}+MwIoRw2aM+534Q%FWL7eZu+REM_{k%? zfY{VOlaUzQK8YMLLo$QfBG;OTZ+p-B9d@Mn9-En%ZV*XDlXATUoWqxn-WW=byap4` z73U4c21iz!P!}TP`i_ggZw8Y%N>+wy$QnD(rr&%Cq$U#RrZO$Jh_j;jCFds0;86dt z_}20|A3-7URGsY`i@S9&O&*f|!%}Qh6N!zx&*w=mInNQsRVQUw{|V`wSl2MQIQX+Z zBDkpK;&;a|>YvZQ|Gckkt~hWYMo0wLO)k@ky5Y)v!NWGq#qFlpwhOf(ZO#lgOMk+j zHvh&p7A@sf6)*bU2(f(APuernTYGV8Ou8T53$FKpDOHDoawt$)~S;AUyhkE zNo;sVF%8R+y9rR=BYG0qEfrmav&J8coP878y6R;dnPyu($`@BS0pART_%H`&^-Y!Q zUQEgDq0N(_ArJ{23?EVI!Ji65Aqd0&(XU|e|2Gi{Q@{}Tl=@%em>Leu2aqXzT z1G)(p(jh^HaJ^~NGWq&I}c_lF(smJBfDD#ammN4 zeMEQ|Z>0e^#(56v$;F3z-SgjWYG<;i;7K_ORH*TZ#a@ShPo{KD2CCW)l;oK35i~2? zv*blp)1F8IKD$XaW^r%7kpcna!pfdk6((JQeBMW<3=FVb;4jIj+V*~cP`JT)X)*-p zNvYJwn<$vqg5~ZfnMr@F=z)S36aIT}M|7^_KdPpHU3EQZ*<>Ft)30Z#Eu^pU+&A#x z_q$wa0~lO)2W^L6GM?zP3jmTnk9c;U6R|kK$y=`x9J&2;g@$=|w*)f! zY2eL1>+52b;~+w1mjBl2bP5jyZdFEYjbbPLjF7yI<(zMmWv`3;E)G5}+{pKSVgNig zv+{Y1%UD=(s%;k!hgmSV>Vntd-gM%SEnOHVNXE3KOQtA2-X`rkq0f|Ki%wr*LF zH!3TVS?7M^LbIosP-|hfBuw?oX6U&e;6*~P9e{bYl!tii%XhJSO zQs?DLH2VTI9-#v8_{efX+BZekET%|FX)W*1SxE1FHnY5v5%7O6sWw~)&?0?vZ7o|1 zfYM{XIqd2pOiWZ07beqY>5K)?6NB(N=wyIZ6LfoePU(=;09?n7{f7#W1LN4si%h~q z*Y!aHU0igBg~nHZ{=MsNTa6WURc9=ZMDYA7)ES9RcmIB=)%DT%_2UTsrb{vQwN>4D z%e;UAO?`~>glRGGrc$fQFilV48>sq5T$W!U*?UIdP_iugpW?_e^`TgTHjSN;@U)!8 z6$2jOI}lLZ^qMgo{vXYHz`e`a{P(GIWaxZ$)x(z?mtTcF@ChTU_nW5x!B7rvp4!lID&16anyeZ0@fU zCq8j&5ci#3L|y+XIy)mRY{iLR+fYaZ`oj#~@)Lk&O>ATVrWFg}^^$1l#b3W_!*}1& z(Ch^Va3oV}|7J#&eiFkZU&*})!2hP(Dj!F~wL4R-TO{Z(ONT(lVmEvBcKc3%s|%R? z!61n-S*js@eYRUNE!T$Y;FKoloc-H(w{nmc3`hhC2ICWt_7|IFL+9`EIqa zT20m@d3F`_=PxukLCJD|n)A>PnD9w?^QZ8uw0c^N9tyJr@h`?z8QPN=L(gkrL8O_#5y(j~Sy9&9|Dlr<=8i zlI*YFVP&V@FYsSN9LKpjS;r=4(Cko(bm8yVNVlI9*#TQZWoM>3M`Bgatri^6Xj$=( z`zu4gyv@+)U*KW7o3$f)DEgiLE!XC)IVkjaV*6tEm#Y&sX3`QRH7fsQ1FCQJqbc|Z zPo$}yJhzj9jndkUrJtSjqG6FLfQ`d%fCTHk2?5>8e(tutPqkuLG6;Uhm3t`hd!!>n z!|}X*b&?&7e@jf#ODj6#ZKc82w;*)eQvOtyj^v+6V(@qx_rE?GvM8FF++Un__Yn1k z$7mvSa6V%B=6tu!(K_EVJCek6kt0jeijA#>rs~roa|)HEvSmbfE{^Ae^}sh6%6fu4 zjYhtDr@s%T`>`Rth~kvKbry5eZ`bHwpJ)RwC0SmjGl5f?ea(jzHw!XT-}F~;(eQ?p z{wpyMWnt=VxTCoNKZZ4)Rd~>d`#1BCaGZFGU2he*ZlqZcnmk<3P<`#U`(GE1c(}sv zphf=r;;_2s+ipk+lx&##3;kW*`wZt!ecy|NEIXVp z%*{WJlEjd~^j1Hr#lAf5Au95XD51HH{pc-bE)TdL(UeD9_&pT$Ht5gejtGRd3lrCx z76TK7-8SBj2^naigTpJOj%z{b8-6~_KUS(Q07ikNLss}ISfxy`^mzS%ic{^9P{?@Vv1#nFaw{zaV-mN&%FnJ!!5l zWg7fy1>S6a=#3y66~EcjJ5R`R1@32cG`$>2P8Q%cJLH+pUL9Htbd!zfkZ2eqL&j|2 zQF->X@Dyh(N5Z5Mdx?M=GVj&D5W^FEs(=a%VfcO9rTXa3T>jInOkTCZN*r;aLUIoy z0eEuMyZXp2p$$++)BS1lQd4TOm{Rlis{t9;KM0?rx_BQOP2_1O4d2^H(^p)&5Sf`( zUo>1};=k^{UXAagb6o&3eLqF(^U(I!27s4aprt-CDM&Ll@-trgdaAHdh{2kwq#las zqps^6jyVtw7_B96?h}LmqJ1d5Co}PXHr|r~4xj4%&yx6fj@f$$k`rN&pk?SL#q!mH zeYElqrE^~9LT^w>qReL#1-1gB1vE^+L&_Yqq)xQnYJs3cH*UbM$jd(KKe5wOYagpY{9$1mEA7sXA#A+?+g zauh7mpMPTk8RJ*#taI1hTfn`Ha_={<#%h+RQv0mN2p0OD?YQiC=HDRD#Xu;Yct3Ui zF%=rH;ff?fy%P{5nnqIXK47!!@>~07h06P*Z&7g&v8rnMbo%rFs#!$!pl6~Lyl~PM zVPLoK*3W1%p`gTP}`p$NWfX@B9Mf|MynyR5O4t3ICW1ZhfW1sKfV8~ zS;Wtx^1TRI=;jB|FPfQ()u5?GB)Mn~36QG@`QJwJuZ)5KX&G|SEF}C&B35LFtqdS5 zl`N6x$Q`d#$iP~-oaM_#uK^BA#p7{a3}{-Zg78a}!d*veiw@RpBL3t}V(k+a;;rUp zqBntv_EGEWDnsEkF`qi6gHc8bRQDG)$s4yudaZgGb0 zPi~eIkv?64G+fztCZ3GxTu^1Z-Szz{q`it@cuT|G4QCQ~rxR z20tkzhDq@;jkl?TZ>)+xzD*$0RF`r>4{g-vnms4*P9Z(_%E_DwSzdqjL1)(G6bD#-_jya_4@>FBw|V)-Gb@ahgXuEv7m<#YNCFS=b32yBZ*WkoHdjPHx9!y_ zZ-g+M0A;{&!S_yuuwr~P5rL{)`XZ33?{F}C(rc4wALQESb}vDNu@;Pid!+kRISf>C zBG|^cIM^t+={2=Pl%RE4&P3@WuOZNARMip|8iX8A_Z;H>p!>12JV$Yr$` z(Y@Y`8WTJHxMWc;#sE+&HH9uSTpiQ>U5UkO%;YyK7T-5uDWR9c`k){V)g9#j0MMcl z=ZS+LKf++SD#F=P*B=Bk=RH()w3HApYG8wJ5zxfF!DQ(|3#V!z$mJxJuYr1=WA?f-4q&MPggT;8$;Xo( z6k}M58IEX-Ahq`nY5M{#5qmea)kK!4mzC5*9V6FU9FUqOtloSFixhf%!XEI~XLA5h zEQOsLoq>1PzqJMpFcA_Vo#zuv*Wg)^W!7?5tnXVu7 zInYGUO^KRTevHne?Sb z#|2EZR%kYVmlGc-e$HNG$-jey;oC5g`|j2Dg;0`x=chx}bLwL>M2(+s0SOJ*+l6kK zV6oeN<3iAL<%Xjp+xVNK@4h-7$g>(rFH812-+Njh7xPIeiJheXled60EH;964hz$r zt@j(?G%W$54oRZ4Dn%)yyQ<@Dj%I^@Pdom&MX-e33Kj33Xw|7SDEdLMG4un7Z8(-e zDF#{$5**1Nxq(lS{Yz4&xr|yT=bo65KJtQ~i3ss$6TAdL7;=eSZ%K9jNo4p-1Q1f) z_cD8Zr;-HziY_Wp1WRw-C7HQ7mUHM&U^7}l5skZnj_J;8%t`$U%oV%BF}*q8&oEH6 z9{V&x-e3!{p17xyf}Qt873G8DL+$v$Jnf4Rp5>IrzRo3DKe%*HhEUU*)Uo~r8;puN z0Z|JSF4(vO!P8doH$5>baC!L%rQ%(Ovx|P;dg1o~IT-HfN9*^&;Gm$Y)~N7$^{1N; zPbtmae1K%V6wTI`0W%qXT-eMj=W1k%TGyYFp^1n(iIw+*JIQ(m7x;8RMv4mW1LR@n zV;`8MLBorh!TNTLmCmaOJH-#EYm9bwPpSDP{4_J=gBl!A!i$Xmq>KtSGgUXY>*e0SGPo+ zr@EjN)m(hwPh({9-2XZ=2+BM}Hr!F0&#vp~8_tjsp-m|YvZN68)(9=I{Z+iPcs>3v zM(}UEJZ*p$5LxLa?_l|IqqXKX&*>!~?mcdDcVhZ27?~MWJ4ogE7Pjt;7s#6>GW|bE z&VoQ789hYZ_<>hSYmPoXBZy?g6PP39V*Ynt)%xM?Vv&bh#GTFZHTSjQmIxa>jAis3 zFg&G@%9OveQWat6ANfatge?4WBjlPcmfLJHX-nVYbYtY#XkCDy9m(X`;nx{s)rIjU z&`(nUJFni6q5SlNk469B5;m(w?x|#wM|ccW1MP{_hq*$o(nhE~y5fm4!#ujH5P$cO2s3jNaKFsiWVu?>tMrrhX8KW$=II9AogQwyS}BMV{{+b0p-2Ko zEdnn8nkKaz@g20{K(mtlsUIIHBk$G{26T89G{$bPPL&(*kYy>YYzCavaw702L52N! zYhI9L=Aoea`jOr=Y=pvHALHbf4WBI?x{K8eA|;>oXeKd-F8TN89ACqxpYu1O&2!v4 zU?u4~h$Tt`d00bKnsc>rhf;f{ThiB?+#%@Xzd>TZjqN_2wxF$uXtcpUu0vc!I_{~E z7)pd@6L^|k6M(g|#VX2l`;Dw9llZRJ|Dn@L3Bf}j>nob2;PCPH4!^11c{jpj6gMyF zz)yX6rWK423Mfa-W9!USk6+JpQ?{OLvMSk%hn^Wc3-Rn&89R6QV?R)E*Jj_F?c`ICLlO9bi~vo9(oT%k4)p^A zT$0=1W+lRAx#)At=X7Q54xS>m`S3eJnD zrn{hf{C2L+lKtGiT50^5oq$6)$3KVZSc;5B-=8^mVoBZ|{tdc+Q_bV>BU{XW?r!K$ zV}(JCbV9@=Fi|nN;Z@P%)NH3Keb;6cTHjzPZ@d-JB;n80@A~)Canhw~LBn@wIfAyz z{D;9&jes*kL`6Z~GnARPt4+ozAN%k3+HyLw-`P;+)O59pNpCDQ2O_IuQwga9eJ?w$ z{}F6n{gcyrH$Z!NgG;~N8+Xz~blOatOdsy=lJrx3EVwRB?oY^IIKD4pyS6DqM!xTE zOGO8O+Ci&=ibwb?rngh$QAQ{f}o#DzT zXEl6NHsUyIm2oZRR#{D&007t1&h2T5wni^&1D^fsW)>%LJ;KtlpVyXd6nPX?-zLO5 z*qIV5(_3s4$*|hE{fwG949&Aqs)8PF7N@ZK0V`ORfrFbUh}K$>!a1f!2p;VI>04d( z74tU=_rR;Va|BHn(T&%@0A#!FP*YACMUXEPT4Ur`^>asRa&#l%&euknA8-_q`OLB6uEazQC%SA?@;F}WP$}IVSR%ffg42J~_Uz#30o&p?S zr`f^Rx!oHC^Q+O&N$^CQZ#`+)-BH zaT+y!1<;skavGLB<%@B?^TKQ}(c~m!hiDMmRAWuzx^NmaC|Ex35%J|>yGP3;^;R9pP< z_-(Ts%bSkuCr52}%#41F$sE|0*_%lRGwm8?O|@B0sX*ero%<||4xbt383q}~5l{VU zX3f##w%Qw0ULwNd3s!l?LZIOP^RG1?v!U+bf5KJ zxTEHSSY)Mp&e%xmaQfP6+ckYxuM&t`v$d@$DREr0cZ*k*e%IIM!N&YgvdPDf41u=kP!)z+8sF;ig=>>|n}rvcb%!h2 z)V{@zxcULVS4jgA^(Uw17DGgfaCzhF;dy@dH5S?z4th~MNNI7u6}0WM6RXrVDyBJ% zcz0aa$>sGRo=e}zqV_yJXgrMMg4!YFYVMrBiG8zrb**D3mx;OV6-+8xTCMhqXBq$S z{NOTm;Qr2kvrMv!>-zn_-5oeSdK(l(p|JM&s*v9ws6-A)Q^S*w5-jNUO`}=cm>A^L9sa!+t<=N-!olhQHRF)2ZfI`6YO$@DsG3Z>;TmeDHR1*fl z?>>eL&~4M+7|CFLOzj@eY0_zUbSK#p4&Z_=YP$oU34rZa3`4%%GIXvG9Ap}xV5jok z%42^v2-;YMppC|^9s~;4{(y@=tYBX^n$Apv8cvHQ7-+5r!50Xs3An%dISROlxA-7y z+X-~|!mxYLxn8TNAN?eH&|DzHkg^!`V06&B%blc$M$0|*II!#Pd|{pT;WB~>G&d67 zVa5!rfVwA*Kv^aSx(1@2@;c}jtpV7WNa@_J!LC)R{)1o7&h2bUcW7(8U}|2LW*pRW zv7LBxp~I*QjPP^cSAU*Y;Jw^$_*Dpik1No|q$o{>xaw7V&snA@CbGO*3&G;+j}8xJiE7ptnOP6hXSa2hLz6>4zi5|lAW@gI{kM%! zzb{1)83vWOJ?ds3y#;i_mrRr@6wySd)@_!r+N5u+5Of=w$ozf5**$uXRPHlTxlu^u zQMTW~_EWgtS%Pg_rGx{gwgd2$xnJ-;SqRhtbzX&N>v?D~l+0X#q!VI1f0QKiAtuQKBt1cH{Xhs&#Arg-nk1Ra_PkDk75Ke~)u?udVN zdfsSPD`@nTd%zJ5-kiK9ynqAH2pI5y(^Ce|rAxy`lc~m{31R){?kuIVikCe^YNhL* zN$lF}8n^Xh;)#->j|M86{tjlnPlL*>9TIOv3VpCjjskCIu(@IbI)_obj|o}mV*>s2aMErv!6QVX!Cp_((omqG;!`>hawe^SNg{`QKU`Dy*!x-BY6nE|G|;t}~x zb^FN&rOIgLl1uJIAW70;I;@#9B#2CcqF_!WAex9fj2R{YXGu#aY5h1O{_vJ3e9NT~ zkh>Dv=_(_RII)w++g+1~PY6=$l~z0lHP2{==X7{?bOQqsY!<`4829w>7_jVr59A|{ zfrx<<(c!>c-ChNa2#qd0fP~iNHVF`Qx6L)zvCivU*?@S+kX+F9HtX4$^UYI&GCc9i zB@~Jm4yk*9`i!FG*FXjPGJnRVzQ-t+zLTfxw$3o!z?XC$UWv1LxzXjO^GS_#IrqeZ@HK!+IAP5fisps+S>6E{5dnq=Zb5Ct}@eWk|DZg ze17K+!b`y@YbQfIx)?ur{iauLKx@70?=%^&N~4cINf@;G_J7BT{v~9-cJ~_r}5&- zE$9g$`sJ>_UHV)|#vDem>F-0(_*5scBzj8X@y-2Z!fwYw1*CA zS_{B84@KcUAZ$*FY_%PkEPNK@?fca zIv(y@a7kRTqi>&4o`v>WC4ufk=@}gV81y4c^`6(y$@*pX>EwbFrk%w0h#x&m=23nO z>?4JH3b#>eh`f<>*2Cbq7YQ)cE4Laam-m_v}rF*(XyWa zA?CY{(AcBP>Eb@kTp*KG-d^nL^8E)izjsQ_wxG6W??X2CwDRY9)TyFHw!#UIa%B?D zNCw&98t6aB9DK6G16qBf9ce%;*NhAEZuh&{Z^{y__;;=0PjASYwM-sG12*G7f4S&T zL{MDCd13B)DdGh_N|PB2KlY9|#GU@4tsHoJEdTW-X`Hv-+Mx*k#+QpZuSt8m%PBKi<@KB3i z_6gKCEz!MJigcQgn6PWT@354h+29os^3YLNCYe0}O!potIk$QS{HL(M-O8plAju~3 z7dQpEPKO?s>bc!yJXogzW54|*gP$;OflvL-xNjd?Pe(;tJ}{Qk6U8R}heoXI=RwGi zK6Y#uXS_wwr~YUgA~tKYP?Z*7jvcjtFU(u9%c@r>lA*Sqz4PfU05?Ye^+ zeBihsAhD@)-_|5~GriD+Oqi9*XZc}J6e+J)RmwlW90+}iTnXq@Lb~WJ8NCR@Ey*7> z72rc&I{y_D-pUOPq3q*Vpp!?f$#X(vlM6w@w-kLFt{^}za59jb#j#Cx2KX^Yl5i9U zjwU?aF8^*t9Ler#4^%m&T4ojV&`4?L{oW^=UW);`Kt56+u2GFwk+C<8p>!vrpeBL^(Pn^MH8bxp=B4S#Zv%;_>vKk zMvk%Q-n|oR5i2Zr7fV8iNNEUN#jq7wxQ6Z{$`dZQC2vg0Cn!Dod;3Q*G#2H8D?_u2 z&2I+?zrLa@BTKL%5XIW3c(yWv9(4Mi}D)*{LL%`R!U001k+H7EXko1C5}e zz~LkZ$Kbnqecn5SeC!ub115s@eT;$l=I9a$-Q(gZJkJv^W=H}IyQioRb3n+qnEOu6 zr2sG@lJBjfB;L|%P0Bj?Pn&^6nKT`I;S2AXGww$)p&R(=76^fh5K|_AJIg3^lYdH} z5%VtvxE~NG(t4P*4t%)uAJBjS9-u-+G32D4Yq724IS3wzU~BblzyXmWvi75AT;hV$ z^MBr8`V0lI#S*ljF!o=zWxazGp6@2@Sq$sN@Qzc~@@_zwb8<}AM diff --git a/slither/printers/inheritance/inheritance_graph.py b/slither/printers/inheritance/inheritance_graph.py index c00c5540ef..9897db4b20 100644 --- a/slither/printers/inheritance/inheritance_graph.py +++ b/slither/printers/inheritance/inheritance_graph.py @@ -94,7 +94,7 @@ def _get_indirect_shadowing_information(contract): winner = collision_set[-1][1].contract.name collision_steps = [colliding_function.contract.name for _, colliding_function in collision_set] collision_steps = ', '.join(collision_steps) - result.append(f"'{collision_set[0][1].name}' collides in inherited contracts {collision_steps} where {winner} wins.") + result.append(f"'{collision_set[0][1].full_name}' collides in inherited contracts {collision_steps} where {winner} is chosen.") return '\n'.join(result) def _get_port_id(self, var, contract):