From adebe8a159e8331766f1cd80fab68288d9124482 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Tue, 5 Jan 2021 23:24:49 -0600 Subject: [PATCH] changed cast logic; a test case is not correct at the moment --- bin/onyx | Bin 308720 -> 308848 bytes core/map.onyx | 11 +++- include/onyxastnodes.h | 1 + onyx.exe | Bin 392704 -> 393216 bytes src/onyxchecker.c | 9 ++- src/onyxutils.c | 100 +++++++++++++++++++++++++++++- src/onyxwasm.c | 56 ++--------------- tests/aoc-2020/day14.onyx | 3 +- tests/aoc-2020/day15.onyx | 6 +- tests/aoc-2020/day17.onyx | 8 +-- tests/aoc-2020/day20.onyx | 2 +- tests/aoc-2020/day21.onyx | 14 ++--- tests/aoc-2020/day22.onyx | 2 +- tests/aoc-2020/day24.onyx | 8 +-- tests/aoc-2020/day25.onyx | 4 +- tests/aoc-2020/day7.onyx | 2 +- tests/aoc-2020/day8.onyx | 2 +- tests/general1.onyx | 2 +- tests/i32map.onyx | 4 +- tests/overload_with_autocast.onyx | 1 + 20 files changed, 148 insertions(+), 87 deletions(-) diff --git a/bin/onyx b/bin/onyx index ab00105d1cfee8b69460970059c457e999420d9f..c30ab5a1437ed471a470bcf639172d30365b0e20 100755 GIT binary patch delta 80901 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 z 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 bool { return lr.entry_index >= 0; } -get :: proc (use map: ^Map($K, $V), key: K, default := cast(V) 0) -> V { +get :: proc (use map: ^Map($K, $V), key: K) -> V { lr := lookup(map, key); if lr.entry_index >= 0 do return entries[lr.entry_index].value; - return default; + return default_value; } delete :: proc (use map: ^Map($K, $V), key: K) { diff --git a/include/onyxastnodes.h b/include/onyxastnodes.h index a8cdc664..90daef4e 100644 --- a/include/onyxastnodes.h +++ b/include/onyxastnodes.h @@ -930,6 +930,7 @@ void promote_numlit_to_larger(AstNumLit* num); b32 convert_numlit_to_type(AstNumLit* num, Type* type); b32 type_check_or_auto_cast(AstTyped** pnode, Type* type); Type* resolve_expression_type(AstTyped* node); +b32 cast_is_legal(Type* from_, Type* to_, char** err_msg); char* get_function_name(AstFunction* func); typedef enum PolyProcLookupMethod { diff --git a/onyx.exe b/onyx.exe index 0ea5726e2a689e5a13fb240d4d25ca461a5153d9..e47275a89f782ea3125511cd3a7958af34eeeb54 100644 GIT binary patch delta 49372 zcmZ^L1zeTM_x_!8X+%&$5EVoO6ay6%8x-}bpxC$;b}I&o2?_=x)~g;}i#66xlxvIK zirukmT^H9}JNQ5IzE@WE`}_0xJj|RkXZlQ?nfE4sEs~h%KHKE8(D1IS&iwaE=cBWy zg2i<8Ep@u@8q+&Wu@k+^?@P4QMg5SIZj_bI-SsC%td(w_g-#dS-%{6RPDxM7?yu|- z)#zN9@<#Yos~Z5(7^GSjZX>uq{e|jup%r>|8_^BC2buUc8{s41#wyLJXhAg>ya{&{Ke;tW%NQXUMXo-eZ^Gey;U_4qm;MaBUURW>lW1OrQ&VxrnInepis^G+|JgD z3~8>O8oAWY)>04hy|Tupj5w=YwDA>d@V^M+*jh@#Nh(#r&emJXb$(%~i%7Nb4Rg%2 z&`q2wCjdmB>azuc1% zsaYuW7iGKmOfgUiD;eNXssI`=&9e3rI7rm{xP^_R%RNyhm0T?*D*--r>>Iz+0s~AB zGh%%@TGP~`8RyEZwh#|8hF7>QsGy4y5%h%ooHK$e6|$f@jv0-shTDmC88hmA5ft}Q zNeL?}CMr9^y4e5q!b0{}->zNM9&=WL>N|_qN_hQV)cS?8p?)BB*^zOh{ug0U=DCGV z`R%-i^6GoRjPKz!iTu80)NGtgVx)4gNm*L?Fe9f)s-P*4mH1}uL~rFnv$CZ8k@2OO zJ&E@j*3EwtVn)Wg7R3Zre~@t^Y6el6*Gk*g<3AuPm@YU_9)T;wKw>@=bp!j~#e9sC{R&LiEJQ@Oc0<-qHsH0t10uCe4*2G5Y@ zP)qtV59j7i&KhA0i9paf1)hEXE<-JgUr^?B2p1=mYaKe0=Y6HhFJ;KdS?TgiD{(es z+b@wqyijsG2HQLfC)Cd2Po-9;ba6dHy1B6Hg|Rw z;rB0jN{#N3 zUT(i(ZkW+o3G$6)CnU&wDke?iot$-jU>-p``XUh*Qdy-p$1rrBt70RAGBYY@f

5m2>^}(6RH%#PiM>OZq<(ZjA?FsHLF2BU0P=#z*#OWf759{IjxnU@EoC zR00My6Di7wK>-xnRarL3jiM_mnS;iP9vPJf|02W#C2femSgY(DGQnX{KXhu3alUN~ zX;s@Qp|K6c2W1NWUsTS z)ov%S->yQs*N-92n~Q3kGw{ne=`zlNOKO}ol9xYDxNj&T&Qt?F8d6`I6N^x?hyRHw zCu4-4!;zy%b?{O(g;C0r5tWKR-V1%5c=U$Q=`f7X{`&`Yo1+BBU8k@kio?jU?AVaFb##H~S46&?r1k9v5RgNgr zM>Q(bX`N2@>?X2;_@hcci(mSpiXSqbg!wxBtqw9-r%IwiE z#1qf8%k>8=b*Z5txmku(hh^}m zgkcu=k;Wz^cC4FAwQ5>Q|MIU~QhpspNCm2JCaT~C_IoE5ssS#bjmsmZFM8B#;tQ4w#`)^%Ec1)zk< z5H>AWHYe8g4NceScA;BzIqh>=Ly?0Jloaoz8`%hQrKDWlb&Au(N+L(8Ke0bK1u2^+ zmL=aE%B_i2$ZNUcIO!Zcs34i*AH_B)SiDr~CZ&se%KfAW=ZTrJP*{yj#!0eRj>-F# zLX$m|_Q@5+@5&X+mITC=@pZ$DR8OMdh%T=wo0iyrK&il z^quk!8FiUjTg+7!PhBdKl^WB^7O_2!Dx%)rQq59Br8at-d^am&rnRJQ3zc)z8c~g{ z8LlZoLX1)xO>gM*#}OGp)7uc!ETYD_x#Lku}671eFlk8Wqj%=zmWOn)_S(n ztPUuojj7vVEs9F`?pBJ)qG~AzW`$CPIdf+Z7rQe?%yt*pm!-||6*(E( z=QI}NtSDdR`g`?XgI=1vQe8L#B2fRWDBB)v9#J=k$Tdos66v@sO;hS9v`LI9R#~bP zq3F38nM!dXC*662slQPPpYM(Ny4U==F6-u@LMh3=0s zm#J)C;4LO77Z%iasikPbTC+>xGW(R$JVGeSuRMx6W-87L`(gebzc7~SO;cXN>Flm_ zTU3TByDKvm#ZpjJ<@=%%6k1a$@vEOWsWkj`6lU7}zm9J5e)5l&nu{H)xvR__`|Dy= z)BEPqhg=#Q7mA()@O;TmPE*zyNQIi zso-=aG~G@3DecpvvASBYz7P8Oi9iA`!x)|N6#w`BK(2zcabv%L@|3rq`9rfCy?v|$wT%5lp}&YV)Hw;?4A zsUdgdCw|IL&A|hTi{eH66b<>do~pGp;x(}`q_x3PlKR<@HdJXbrC?MYbKbEgeO}&Y z)Hc-eptxT7Q;X2@Xpx`$WQsWt78aJ?ftG5j=Kh{N-dw4ij(L$%LoJdXIALShh`Tit zF1Bc`Q1pJ01+p(}y|qblY`W6%W@+vmWND*37;LBPSy_l)-%!r23=}<;Pb{%ZsS}I@H_ow4_O5Y7DXtx@#*9B}<2YJpqd06jDoQDrHvLWG zmnw%gx1*ibipQ4o&TXfo+n}T&vaeBk*M(n{&s$26?-Hfx*3tqSudQCR?TgZFYYE!F zSedvrKnzgUZw;(qZ-IzVjSy4Xcr+VSELs;=ENoXxb=cj&O_rGy+VNAc^G-iQ4~V`b*yhO}s;T7J{v zH^N7`eWaPFp!gqcF1(bHM+3sr;?QMrm3|ce!U&oE$A7odhE&(#5YgtHZ3a{{#qt-) zKq2Ios=0FiXgIC=pp-t=n}$wP(vA%gI_2B3P|BUG)H~iq%u<#eA0pZ-1y9KGR68-2 za^5K!Ct8v5onn2msYq2?om@}4$;$VWb?M|kO5IZ}Xv-vJ)~WWQo$~b5YKl!#W}dDm zmMiB^-xG<-rZawY=)Q9GO!jqr^zovouBK3CuG!4%n(7@}xZC*275uwA+Gc$4O;zpEW>4Y{uS zrYL34*DjiQ51h0azKPH*Q<$1Oj4ehJ6SXL~f%*Bg>4j)s#UaCRXqm}BHd(p?+%CgHo zwDGfY`0^SkLjNnngp+djN-KJNOR03VC7r&dBwuYU<|{X@`eM`Y?P^7r?BCU)iq%$I zbwW%Bepf=TRTBl3QP(Qbyf|h3wW1UsryRf5oYvk{+^+kGV5P?OGE}ttzw>E~X~IAy z@%kb6V8!@mzVL zPCQ$c!#DjB+F*y4(@aiep{8A{;jgFppQE@rRW!fTTKN4nfB1IzJ+T?pIw{no8~_8x zGMPY;>o~|I9Su3sdv;A^(g|Wb+;2d)qg96612=lrM5*u~8zUw6K_@z7$msk>EkX0j zD!=~O(ayiIJWMA0#^{x9@7$Fl4?l`?iqoUA^k+k*_Mqj>+Fk{=to&qL9x6hqueZ`CspRrdjSw{`e{^BO8 zWjy`TO3+(JrPjBOu$J(*ZV3hSLbnd+V5gz+Tb=6v$E3NEKOTOopJ>Tz^hKwuMM9Sh z_X|+tt4=oxcniqzy}6pZ(@aZVxS1#Y63C;MF7}yDR~e8DTV%c&{^vm1zcl;?SB>yS zr@Ie-@f?lr2>0eoo$k;-I$a?^x>ByDwa{HgI+pJ>Iv%vN?Yh7YSl6k`Ki}1r`K-N= zEAvsMZmyeUCWt*shun@fH{O1i3c4g?Uv4Z#1{V;zx_|*_1#|*>1F^suAQ_kmECf~n z8-Yw93pfp20qy}N;0^yq!a1S5gV0q6!hmK#Tc9h@4;T)N2c`mZfQ7&cU?Y$TWC5pv zE5JR#1iS&h0#*fu&Iu?2lmJQt<$x+cO&|;~6cm2C7VxwKIs-j{0l+X|G>`~P1!fv6 z>4k%!Wx-s@TNLq{=bLVx3xZ5HZKaO3k^A8pzBZU6OpSS@g(ycggZYmFq6qJ`5QRkx zK5rpPP})L}MPc4xEvnXj?u{d* zZEXvkc?C$Frx_E{94;Xw*Y#0EUQn9rC|L0^6Yf$&PDgMt8&RQR{T!`_*Sf1cybzAM z_sUyRN@}rwQDY6{(Kceb zad$hhxXOj%GMhh|Xm!NOrPXm-(VyaRhFaiNs%T~t4zd?s&Bv?MEJVypzqcmWLk)>T z$TPd#pDNZ&3l3L<+aWlo*N;t4C@-}a)p~p?CJSRPgZ^!<=iAlX@2X)h4U!1=jZwEq zJ5;^QvtPRIhK#nYIA{YcO*$HnZOJ7Up|gMz?8RK$!kw!X5JNWrQgBc96wxAx#$VR-?0Jyx9~q}hMobVmSp^C$4i_=3o04Je>)4`gs1CeBS-l5 zHB}ff@lqfL)EYq{U zzsq(SrUuKsRP;;9aG1jby@k6z+TD^{EEI0M)LU5F$C{;rOoMrgw`ii@k^7y$c#8^j z*dU4yY+$)jyN?A?dmagdM)63gB2rG|c#$IBcWG?2I2KuLAdRS6h&Etw~j z6h%;V=8~d(<0u5kMvgKymjfr&vYur02>oankmZdtMvxlb2E#6`wlJi=*)3DVl|ibd z8$ytkYJRq3dmmBG|85b)Mcx591+{rI328_gWz0gDRz@Rt@xh>3zzIGg(5}0T1AFFr z7vA9`LaHY&Lu;pg`JVgCAUh)IsNv^p0`0=Uko4RgNq%*cNjjn|Z{4_5DKXW0#Zp8* z_nEhq5-q|yNn+IJ@A9x69FBP$#-3!~M3f&!URYTi8c2b55I|Tk_Q*l{lc|Rc3)SX8 zZ=K~ZU*RDtb4Op{D~52Quc$+ny!fE6Xk*oO3F7u-kJ2Kf#$IPx1zf1SF;7V0>Q(9U z<(gi3o7ST`Iqo@b$S112YTraA4*x9W>7_-an^|%!3Z7CvB8k7&8wy3$hY9oi`nc{73m(I&7oD1 z?jjyh6`=!pT~$O0=bO?g#}B%p)`>WHqCo5Nmp#ir)H8wy>m z210iNNDLRchINH*J#ZfwQBUY@0)s<^P9G+8A;2Ku5@20l=#~H%0V~8khICpsG8U~T zaO3^t8Ha?5=C-|`V}eOK8gN9(_3-5Np~BzcOODiN+%m%u@sjU_ib@5KNtXVk0Rtz+ za+k4qm}o*p{Z49gleeKqxNl!P9FW#8c_o8E)IjVOE4gO4=tH&s;Yw#QNoR$N0+>qA zg^TLKoh=)RmbMF?nltD7FD(3caznA0mV9NOMxrrgG~fY^#7vQ6{M<-53EwvXLYL#C zT76-m`^QGE2(HH_$)Y+ufs^Z+UcgwvfQ3NRHV$nn>I%`Bw>A@<{aVz4P>R7lN44d6 zL;f4~pZPf(>Ts0^@tX+Xs}Ul!SRYkDwZEt*{ZJcOH-k;C>oIGt6e+xDqcyjR6t8K~ zUmR)_KGw4_3Qb#Y^Wf$J7s49TDqS*%7&kW;mj!Lu$4OBl0v(?nC1%svz1+Pe$ic=f zEk!dye?FE8dD}>%$yW?-j z8^LY^#rsC<;cwMf=zM`%z+)h;A5LsAyL}vtGc4SqKq3$b)CRf$k-!jO1yCoJTMa@d ze?G11zC#-3p^wPZ;iy8t~fIYwo;13`j=rK;{HoiaCO|vD2dD_t2C{(Dz!kt`96CZ|SkbQi zQj3dl&=RtANX?d&RtLd_&BhjE#RP$A|NJ=Y-F*4eILre}xYBqLBL?u?@uIf~=1=2M z*{2)0`UJ6Ggz&owAamABGLX9@i1DH&-$@XW^md&wFcJM;uw^540@w~G*R?j!nJ8M5 z`%B}KiHPWUSZ?`hU;xM2T3db;Me!ozdBtHAR#b7zt0NBHd@d8LLji z)It5WNFjfb$V*eiJqp{!No=RUM$|w zm012|i3k%DjZ2n@M*`=SiObObLwVyekwPB^arNccE3cYv9J5>`3Oeo2U(>}mdbofu zj1yj5bcL{^k5k!ig;;>y#Qqi79hc(IE5vQGp0BlIww&ZjaPCU^tdxO*&-rn>KOKZg++MV z7O|U#O;ZKE)KaF5)`pL_At_6>Z#+QRv5Ztwg^KXet-`6OK??nR>UgCJIlP)G8@~u! zZiD^9lHIq78kBR5TW=G+#5mr)O*Ev}57?M_^YjoFN87l_qA0 zne@$-3+;fd#GSA15Yy?L3wPTIB^koUcZ&VA+nFb4V#;5}^^78*#Li)|z{$Q&IOgNs zK}b?aDaXkxv_fAk%#)2`s)%NXUBaC{WE=f=i5CJTblU?}-aSOF7R7kt9-LW=8vE=O zE+o3~xcwr~zNM{fdU+fez}xo=Bf7Nz0Z~%e8fP33O9<5|b4Y9#g6|x{Y`fNmtqzNA zqBQS1ET-UaRPTsrC93e;BVwZSF)Jj65@yRoV=9&aoAvB>R2al&9&!|G%iURQdrY*V zi)*>_F)>jA7eec+NTsNLNg+ZK9={j~sKs}%l z5DDD9CUlR0H$V=c1Md@DYq$jgSD+YB3MdPlMc6f<4g8^Sn@T^>1?US51I7VUfZ4#W zz$#$#HDRYl+6Ce;k3J(7dUYJ6wLgw3>P1itdQ?8pl6wvHNO@Lx73^ge@-`jmjO{=n zADjhZ&x(>I^fCYn8h}`6b9v>dUaAzu5$VG~-f~tnvSB~91-2T$ofRP>YRCXY(Tw_= z@l>kkEi8dR3BVGl02~6p4cs`mi-8~RDDc97m*B}bci>Lr$>+rZ>u&wAX+64%n_duo z#A4(23u3wu>0IZc@WV{m^CBLcG~|yLF=d2u)k_$eXJR<%lJK{<)D;!FAFub|6PE;I zf7A7{7)XT{@wv;wpRzs}-(METg~;OlSB0nJ*&dpzWTCpI>jU}eRq?*$iS8D<{~Q@n z{cYe%6IY7m8vcGwMAzs7hCIHW#DOo>AxaIlIE41XTLL_avaFjgJm^PwYABbiV&Oa_ z)zT@S0R0e96Tt19<*RN#XYeN|Ln<;z4aI5L=qyzN(?YS5rC5WqFc#8DTja z6nozk?#};I(W)4PD*CEb?9R<@it1s%MyYiwWlmEyJ)}CgsALm^0aoCxsxlWgq`08< zEI)UZg;O(EllhB}+!Qrz*Me>OvH*9}7!IBs8!8GJE8W84N@EwYavSSKsfC<#TMVpF zwTQMdN9U+3a{)N2l~|6K7}W|2<3Or|UuPtk!p6yWL=Az1<-xn6nBQ+5W#;P0bV8}5 z9mKV5C-BgXL8hdN7c z55dg_^zh$@`x>|de-7{&u*l&j_rxhW*MSc`5bpLJv|PPSe|6_8_eBovkLGRnMUet$ zqkn|l>c)>AU_IX7-W<|CFC>N^{UNr|({?h%*(nP3c;8M74K-QB@SZVHssVTRH2FHuBPjR9E-82?`A?BRZfy8u`Z zTmlXNBfyUUf`KQX|sA)tURe3EXL)y$z9X?0E3#HAHN~>w?Q?P!F zwA*~^Io3RsK_h;4o}gom@9JlUbR!%DdYbEnkQz zL2K@E`Qa z#OtkTuR8l2H1Mo9V!m}Ew#uf~6FBg#2&GRqdC*(YnJ(Srvu{Ofk!JM%2iG~)t->Lc z7SCbtL=(}9Q{Rc=^tA!6e+LuUX1?%Fbh94O03s*GaP{|C+i|=8Qv1Y3eqKtK1 zeT1DH&DB1L1=cshKn#fI%O6Aw>q(M$JeJFR#MtrRHXlVNahA7z6y6>=P2_5(y`I6r z(p@fxF<1^2{_CT7K$S=F*-xS-y>HDnpRw(k&$B;^T4I~=>}PR@^jB(GC>8b==ab*C zof*W5-$f<;nVJ^LtT~>>3*W_LqLZh&9X7Zk*jSQilCXEG_Cr^!d9$8;Dn6>J^`N#^ zTmxm0Q+eK6aWr3eCg>W>TpH|{2OZ@f3hH-R*Uk9r{;0i0NuG6l^O$ndcT*#U8h#9+(42pV&=_m2exayeIkkQ!K4wYP>w5dD6XYgw^8lP&S3?td0>NV!yj#bx!O6P!>`~67 zYvDq=Hg2S|cO~6g`2CBJE*%w*XiQYz9^V zCxL6g1z;D?FF;LgHa$@z9p$G5Xi&+n9;E9B!~#=+QNRjdE3gij%W)3W$#(B!HPXOx ze9M83(95sJCyg8G0n^eo0 zAak=)ET?d@!jvo=IJ+=ar`09c))}8}ZRASMREIXZ8DpL47eSW}@>v%;3zO_3S85{q z^FvqaSa9S4wFwzcuIof&gc}tS^wQJVwFspOn1yrPsS{mw;wBzw_?N|vLp-RLpk1#R z?_??zJG)C3NSpVxGVK9JmTCJgqqirW7mkgj2o3_0?|QL1e=CN1j_0W2)E7pC-NmUK z6yiy7IwU6Z+7i?dht3xzNGY~AT+YnNz6N=6f?mX!IyguT!C6Yre-tD)&hR4Ngoc@F z@?GHMx|)JD704k~4NQ2Uq^dzkIns6c58efku4PfuWdP-hp-25mR|z}?2r2=!DMPxE zz;i#+S;4If{QDim*|Ua}Hoi^o@-g1kqu3Xa+cv)#Gi5#;^laKu{Ge63NE5g#`g%=eLeiY~xwN;akG2Qz7 zE%zCQh%TqToS0+LC&t2D(2qRbBGN3qR5{mjX7O0lg3mn7k4jPxRiJwM+hh7@_l|Q*TjxdL%%dnN7c&rTT zuZ9(@XbzKGN>e*N;ZFguKg(!t?>EZ|nJb6tCs)APd4RGfbcpb%ltw`BBS*fC`Kn#ip{y)Gv)FaGs> z@%IOEnKI<(G#^5;8M2Wonqf0{EkmB|mzfiiT+{py-*R)T(Y+&N3K%eI$5%OPdTs?8 zra-i%s;P%7k?t}uBN!7@Wzx9;tE-T%9_Tl4bNON!^7guX7SS{nQjNP%p=>0fsnGY0 z>{M2&&?!}gf@(58n}Z4!)Kuu(23cIQ3YFDVs4P^dvRYtiQ-BJUrSiCU^$eu)^n3$1 z4aDGI=AgwtVvZkUO5@pqRGQkG1Cq@Fv8G0RJ&*#(K?`teqz0IE=hHv`+h;p=It^G7f=;WBP6G}BEkN4< zit&%~R6$@maH>c?fo0|9A$6QQ#k|@rZ2)gq?Sg*lp8ct5sn1%Oo&5T9D|fC)A^uO- zfRSQw(xj$qQnw^im5O%J%eU%LoESutvr`goiwfqibpIX4zF>{8^ zlIEmKoiQ!GxiNV*rh1=#_-Zj07y~2&Gl7M`3Sc7;+nj4Ev_RQf(1q)j!m?Gi9@){t zlU%JHHT7NcPB!OHchX_ILS>&w%ex$+5ih>w^72wtjI-)dc&WA1@MZ*NA{jKU8g8p` zfiL}8(HJw7<6!c?&;Fql<`}$8t$ie%TvvADQK1w;9fBB-j!V&%2K-kjg?pV}stR3L zB84tG$|jPdFjRf9UGgCdhY$JTGkqHa$TF*sAa`B1Kz3(W@af!6cG}2atfn(hW|@HOWF=+GmfWqr0kT$wa>i)oDCeb|2;p`TT3obzByK_UplV1JTc4q8d8hNx<32x zbH;Mdm6Z3{x2qCU-i|*vAydP3kFFujfgwUl)A!a_#g&H3owQVd$*hwEGEaE(5*UAM1B^t@7 zYKjeXz*}mUCTx`_oM4qtdT5^XTP!VRY3n>`>wLmJ^MsF^g^{~HpGdzvk(H{5{8;60 zeANQIQ0EQr1k-(uEGD}lz;sci;?!5>uv%+jKi4NDFU3~>mQcjOCL)^wuPF27Uq4UU z7t%0z2jQtuE?m5#R=cH+uXk!_0rm5xIJE&W$}Hm?q@*1h@L8IwYe-s^B9yzanv+Ue zaG{e_JR#J~al#j_xBo`6Juom0X%=DVwxFEq|H|7Sy1BpNoh;()WG*(yAjjEUdMBGW z`4%h4)|_iV{<5KYwXy~OTsHPfv?#&L=32NF50~j6k}OGpxg_D{k_2;XqJ@06zraFivg`wSj_41t-;>ri<$#HzINjnkLA1 z{-~ruauOwHpyXg)io!G&^8|5!URY!g8zNFq;h9GW!aJzTqa1sqaMF-Ts4ANxFdM*l zY}VitNY?zxnH<|ntYc9w+Kj5w-;cQ^zGN@pJ{Q>_%TUv$b3CpY_GHr@b7nItQ)19O zEhNg+h0%d*p52nR(A`TM)`~jQ;Cr$nCCT$TA8AE_G~qVCYDL8<;SM{triwB=v^ABZ z#HT#CH4UY6clnRjSdOEgvQ--jr|x$-q7C`_bee$up`3K&SB)Wiq>joah(!@FZ-m2xaQRjb7-NSn?b;gW5sgIoPOvca>Q3~BSsH;^Yy=lAmL zw&dmJ@Kacjn)FH2qP@mrZE@D3A%F7Ac9ibun*391Mjhg1?P&qU-{fl1D7XG0cZ{YS zI)0rE9jG>)Jjqi!&>?c&z)gOkXxeas?K_bVANz&=qD|{~TSqV(9GA>Q>Nl6uI#H}+ z5jkh4Ijn_~>-y#;7wAmI96M>uZz}V|ORnA-d(sV;89ygclA_P@l+LuJw7)7eLv0t+ z`aR$Aozt@zx%#G=pVXx}w7D!>xP-OZDEIGhLKm7#wT`oMSE@q4UuHvB@+Oxn+`lWe zii!T4{(UJuV4PO*EKFRvu5}P3yC7Zd3VizSyFc&QwDv|qlXLw!iG}%+`23uU#h~;R z&vU&P#U%?)g`;R_cmlSx5$9BuASn z_SS|!BA6vpEZ=79abDiTrWgwJ=yzHU9f)E9l5L`1L8m!P%I0$2pp`vVakFmN6vkcP zMcv4c(z5taH%g~3E4W8@iq_9L_>IHbz{GpKI}Il~%n>~(sQAKXY9q;lrMWI2ZEhr} zPp<3uXS}Ef#U~8N$9-p#O{Xr|Hl_z!v#Hg>26u*UmKyUSWS(`!l7NG@mU3XeG`7h! zPy;zap({1d$u{`-?+17h2$LzHNblnvv@%Iq)3zPFv?moK{ZZcAle*FDVO*jYMqcNu zJf|1cqXI|yQZI@s(e&guxhQ)5JmBOsEI%e_eu_hTQ+v94f*18h$6Y?jdwWwQm+U2I zUO7tT-03cJ3%|Oc50x&*<^ZfU<^cPvD1UC2{AC_&prowqmjKg|E8MaV^`YR)yr&QK zr<0f1uP^yf@DXm>m)hwgPJiQ0PlN|$o#q35DUBv#=IKY_7PWTZ`Zc{2dGgkNRDot5 zQS~HK*e3R4wk7oyoQ61X#XIb5^{W15zoLZE!ilkVyKeA z)Neb~7~3rMr+-}7X%pTH%^E<}Y}OoB)Ar$Q1IUFo9N~uppjIQdar8iH6nK7+R^lL2 zxO}^Yq~c9Qx51ZYIUI(=96TPDENigjX{ZQ47)Z{xqmLo`Bs_i8Ot?;iuyEWu&us=# zHCl0=XAGiviay6ygDJT}Lj`j+u*(j<&G#0H%dP^RtI_4U|2pz z9pvA}VFI%qLJM66;1j$2Vzvi(=Mc>6@dq?9n^;=x(hn-0U(9+x8)MN+qxMU&itIL& zX1Mg<_g^uaeVjQIV)6UTsSTrFUHb3+AF;ihISgeRy;l>n9!^0nSNHr^Z1^5-HXNt5 zBYQNl{ln=WmyYT|;pduu+QoB5;Y@ma1XaW}QTjM4#TDWx$K|c@zbVc!YN8EBqRM|6 zwPYdd%0gAeLJPct|wrWNF zJf6Z_E^hg+?2s)|wjQ0|k|*ZO$0kq(7mxpuHE!0@Es=n9-OLgCCty2LXftn0pca(1 ziN7aMtB6~ZNOwI6CXQs%-IxqaA>E*EI$zc+Ym-#_*h6yq?*~^a;$v_qNaK(u<&86+ee`^OZ zjIXyF_{>CXhk9@1j}s}1R%LV3N!Vhw&E}Lz3XY$QEys)m zzBCzPHI}gJ6xu<`1U@qbbm(F(I2H7-uI!$mX6~?(?B;}#1<*Ej<$^D zEh(ToE#x;T^peJo;fK>f2Qd4kBL1Y&d?yuj#RW#M8I&OCz$i{n17pBEewaonv~>Xw zo=I*#2N#iU-ZESq{YtuRi*c#6gmfF0lJ2(^8jhv&?=z{nZS(@U-dVO>z~5$KwdyjH zV`q_P!Xed^m9+n-Z3;!GbMqQCq#r_L?_lA;?|6-;d-G^hn85Zf)$+@8(k)8*(@}po>49V5VeA{qrdmG9&s0A! z3B+eAsSalmqK7ZV^6+y$JD&oJ9c!zq=Zy_NEk!YCa(C11#_YU+Dmztgsr97BUDTM{ zF2IDBlFq9aV1@Y9fv+y0hD8de<6PB8_BiCC+_gPLosL|I$vGjuFUgk5AE@sQCe$Ne zjC+m1RL{UaC9~*92~LDsVD~AHZP7v2^EqyR-WkcTQX-7L7n>@J6^ zO(k1{$&quJwmL;Fl*4|6t1NzyDR-gq;6iK=s@7Nl&Hj0lwr>TEI4oaV`lPz~vWXJG6QrH(5;0Y7<>nc3bNyQRYWCHqsVmPnAs zE~@Z9OQ}?$V+%BPsK$OWS4w+$YNXsI%`po^X#(3dff5>Nex&k?Stdr489P@_t;Kok zGIFG}BtEo^TwMwp^g8qLbB6CnRL?YT2LH8;;u7xmK@p%vK?ciRvf8kCte35%v2K`I zoX1MaGDw+5{6i)w3u<`MR5g!bxzHTx&Ga8KmTHSa>b_*jecq4zSH8C#{p&J^KQAZm zgjNaPaB{#~5VW-Gvz-_^>dKUp_!IkD9{UQ|hBWzkG!!n@G{3);&m*4<%SWCVkdItD zC?8p4h$P$PMQ$3KFZj!deB|?y`N%r)`N$U&@{wB-`DHrpdqak)RhPfsA;0f2mi>)} z3pzN3m#@HqK`F)dE2(nvgP7~(7iW{yHdHP6HYU57>Tg{bxLY>fDi2$Uv&*f?JZ~i( zs%JeJ9ji7N&W<{%)~VBE`%(f|LH`8=KHt-^8tc^AI4imF++fuPBf z*>N?N=to_7%xY>yiR1YEYHH^hlJx&crQT$&_dBK7%$uv`=*L@s$C<+dZ-suRS|zM! zOC>N{$W>kWVR$}i+Ax$IU3Id>9MTgm(Lw&^_D36L(@$U34dPp+^^a4BXNOPT_3=&=eR4 z^Z?cZw}838D?rB+6)M4=nTVG(hR0^o1zItQBaApK44=efjW}qIiR4E{6s&xIF1d>y z**wKqz$6;N6EmqO`|qX(^rjgP+zpY{eU0mOQyX$TSXyn18*pHtnau_E(HO@G8k1FK zzu7#0A3DObF+bc#3O#Ae@%yp;QF`*;{WPBn4C8`FFt-djfX)4ZMx1^??u~lz!vi#t zKE`tIgEWc~8uI;v;Fs%e^vR+?L5|_v;t&}7VtDQ$?6TY%u;DQ1BV9T5Fd{|`lBq@z z)#pw}z~9n^mmi_GbUKvh9R)qAGhaVS$%JoHIv+y@)9UfHW8hcqWb`;r`0a#i{W#zR z4Xj|3E4$;Q`e__2M{+*I!CkthL0wc0LHC#$wQCy>pP=r7LTa<$DKt|~G@~=l*_NvX zg@wsx8h2ZQ(Z>6!xbtyiizR_SLp+-sldi-C_tNL{P`L#LMJrk+1F8kr*>Ka zoMi3GhVjwsw1m!f;qEtRJdH2Mf80QZK~1>CO_&PD<1_x77*ZYvu6m2IseM_tzD>1k z?HYfR_XP2l+_i#5XI^`op3=Dho^uCr6B`=O-yw{*P96BtU5X=De{O;=eCTiko^cPg z3h?7<_d#E+&!g|taVlP#!ybS>9mdHI5FX^q75)HyHKgYy#6u+-?#(%m5Y@X5S9px1rg-s<$Dpg!=B)43hnOo8R+XF zjGUTtnQIo#JbM~>bM|%%JL@c&Mq5v|{R?SO2uJ*d%=;GQ_mXz4&NXt-K(#&C=Q-$S zRk_!5gyXjq9RCLWHJDrd4Z3>~{wit5V6OLqPEi{-wtER$R53=rq=|yMG~(=6)Pyn? zvFB^ph49Hvq;$7j;DpyWNKJO;o3CN~uN%ZpZ_w~-&hykae-I#`b@e#Vk?)Q*4sjL1X%`R-@BNx$3jt}mcl`|+1Aw39a4@b<5W->x)&{EBAU zXU!|VA-tb2KmG=D_a9a~{yXTIrDPvJrp7gSO)eHwjObIjINjM<&Tpd+BV)<=tlvZS z7Tj8Z+~v&+gnm0c3g)JyA5Dvhj}iEdyx2yszd)8%_@-W;u79Ze#`it&b@ChweKnd~ z+<3}DUqMfn&G?hG-q-Q^E!ngVF}Lyb$MsS;m$T8Y(WiX<%GYf4!BpSFSin|4Q0O0h z{>o$R^r1AT2=BMkAJ^af^p&UBgE7U8PulDE>TiAoqkv?%^2q{_IRD`*&v5`_tP5Xu z(BGu3?|E}Ul&~|NnibS%>UX~T%3)`*6zzA^m#6N9`MIP146Xi$cRN9I+NezF2|iGm#Dg7D;5e9HxNB?m6*v$D z=e*M$bUR!A=&pZiw;#tIxv{kL=4T%IgS5ky*B8~VCWpVcrKdiej8@E^`YZI>#Dj`~ zUTn!3#gMHqap&SlXR`&T7uPSMQct;73DDVko=^he)t+#G7wCt?1H3>tdCacfpx+CQ z_6FVQ5mQOfwt^d$)Sss&582g6AEtkw`;|NR=oiv}Kl!a>xPwu>ls=o<{=v4sV9@uk z9Oo-w#yyfuIhwK0N@|6esff06(i~EC-gWm4xuOCjO@9<53 z{dD?thkFGeU?qBeV*n)ecerC2FgBsrSCj$6;WoD{E9?J(xvYLO6}iQY13@2p&uM}B z3@Ub$>z4z4{2fm#hj70e98w;1_CGwKJm{e7T%iK!TW@(p1<*CGv2R7tkKSKo5Ug80j!C(54w^fGR zw~O4Z3g|U2cuf`1))%>bFz9W6^U`4bua4t4tK;C>COHmv72!rz^_`tNoL7G|0zU&f zL%rQFxnD45R@K`HT5_HbS3~qhIc!rM$^CwgcU1=+^%sAa^wzVyIRx}C&-kAZ(0k7C zsv4ksn)t68dbSym`!yG(q=rg!7zHT6|#+G)O46C#zLaonYCZ#GwG08{JFlq33(jmh7F)-$M5m92I#nwhqz8S zqMf=R-oN3a7b&=L$~qYtwDR9=PGSLkKD?pHlV%FafP;^ z$8O<=Z9$hl%VpYuPTb7*+JP>6hJD+Ep1g@~wg+ADGXE4@I+?cXo74;vReMISmr@4R3Trm9Pfdl|@&+rgIx z>8DZm`P^x+e!An7I4we`jPPll8i8$w=%>(md?+#mG2*xLwIPVnMd6rO#3-yDuVD|8 zG2X4wViXvvPo}d9&mD>w(1jaA5u?)_?mi4L($&K~9!tm=Z~tF=-yIc2@Zi;d!ckabN_7p-G4MDr zi&l-n8Ur_yMd~&)XyjP^C8zb)hYB-&a^xC|SEy?Y8mFJE#Ll3nRDlezK!xIiN;QVXYx8aG(rE->4NpC2C`pzR#>WfUYiKdz(n%>5uW$g z(9j>@*>|v(@6z+f#nN+^QhOTt$HOUS6%CKqTb#BGQk}x3Q&Nf=-B>fCOG%&;W_UJU zNe+_{T_ZeUl;v)go;Me&p1wc9^Vv@{>L++ESV4P#g6HM_s%NV7thzw;{C$dkm0~ed zTmn3QSw;sEuytcU)iXGXnE%3;L*@%pabM=ct~8k`U*H3A8H-o}E%CKM8UE(p&X3O3xRwNH+r+ zv~C>jnE|KJh4gI(qPyKwbqbbFpJu4h+08<9c4Mi_EO>68PfKSZx)D88&v5D4X1eOR zYc`T7;;7pkcy9fLR?I=12fL}BX6YH0sCsTlMx29U>0>fHo##^hxrj3~O!Z{42Bl9^ zJ-hsZIQx&J&%eOaaSjE~)9+LwN6?3P&@QtnXg-eKVKMZ2KD5Uysgy<#B!x*WRY z6cQ_-*9@S2E1=u`v@jKNLx0+p3W*m%`BHD`M;R-j!_4$yCG?KIl)ehOS3JF51-&PN z)~$x_JBgmJhCUchE7w2|`jH;5fj-iQmac`4nn?H7LZ9qSv<`a21iG~j`fM-yWj%D< zc)GqG`eIL-l?FXw99>F-zS@HlH$a=m()kV0e|D!S8=Cn^T=vX@R z!!R1R33|?G`gIfZ)2@UL0!?M_%YB=nUv;7AEzpZb(XK7f?|z^mTcMYaq>Qc5pE}ck z4CvJ(C_MxETPF(N2Avi|>$XAbJ5i7A(3_)a<#uShj?`rb^!DL+Km}c-19jL5ojHtX zC$vi_wb=!IAc}t31?|zETI_~CJd|ebhW2hpjWeN7457qK=+bSe{vPNvgK5eh=yGi+ zU@vrbBu&~2U9mOQ*av-O5RKahZE8hT_CwzoNU{5&Yqg~E2cYi^py&h8bwkMKAoPR& zG~^(3!xmKP5cHFNG~f_))8^#$EA-306#gr8%Vy-31^qUHdSpSjYf6U0(0Sq1;VBN7SbmC!vdXry8fAs{95$p&s4;4ca%1%AbZd z*QML1p(}JHpEJ-?1L==5&{exosk6}21L*Qu=$b!}*E#4pb?Cx5=)lh8b{=|uZ907( zx8cE<^WhOK&biXI7>4SD+)>(2Fb32ddDjtIz{mljSP(;mWk^ z8uZXsbpIOkiAt1m9Xh5Z-M$WerXtPz1A24_{qYBMb_JS!1A2T5x_krrN_k596FR;* zUHB9FhCe0TgidHir*A^v@uT=#&`C|{_$}xMo)WgUmAS}dR}ANe+T-d z55?p_r!=D7InZy*($Krm%Ytd!UFf_rH1Hnus)n@b9`x7J6mcJVeFIv5A6h9*Js&`C zs!yvPK-(Ir>qF>mLA2~4v_mQC_y~G;JxX~5?Oc-DK8D_3m*zc&b}vC87U--%nr(qD z?oCaeKpzjFq$kkE;?&?N^yxa3@D$qD3r}vKFVv>^XV4XjQO)Pjmuu1Z=g?I>sp<>p zKWftG7tl35sKQI=+chZWC3K)W`M!d_U!8`&f^Oi39>&m?YBVqxx``_uiGt`tqVE7h5lHDy1s?RO})cA=r5J2<2&fC2C{t*jh-uQ-$VCwBIN_L zO(hEX03G2-U!^Wwk(zvj9$19(K0+HRP=h?^p$_ym58ACf1%85#DNHXvL3{aA&Ck%I z3(=F$(53vSYCiOMdwP%$?Ng2_e1VR)qdQ-q%lne=SLg&=y73jdiVqpTK_}VJm2c2B z%2M$H=-Gm@3!nqaEO6&LlzDu?8QxT>Uz(hCkSTgPp@VL0BnJh0nL>vZ=oY2ORu8>O zM+fxKZAy~Dq1Q9Y9^e9emZ4j{gYd&qT zML@V0y|hKZ{xA8o#ts1kiqR801Z3ss(+Yb84DqA~_6RusIiD66LO`?!-6@2C)1UHb zL16^My3>uq2)K}!Pst7l80SV;91w8%V?NC&f`Cb`lwAY~{o?~obwom^6s0qc(6`@{ z*$Fz)g-$p@-+xCF4A8Tj>97IX@|NP9p?@*Z0cYqJZ)k)IG&xbG3-p`U6jc;@sUvMK z3jHyc2Dw77EJB-Ip})MMzHZR#94O5VTK9^2xkINHrqwdvZC+BC2XsauTJ8Z|_yu+H zgx+OOi#(wXH8=zVrHzZkUJGivDt{i`j_@q+exN==JHAG4w9#i2_*p@!bjzX_V^ z4eev0x+S2`b268JF8`Qnm4v>erwJvYt2`o8Dd_78#g&4t@sKJSp>OGEgb_O60hKEa zeUDL8Y3Ta*sdO3MRR0(S99f2MR~p|V@3IJZjsosi76C2pl7|lhUZa3}`yilA4!QUu z-~$S{n=b-7+(Cy+1mvTDJD1~ePM?orz=~N#iXPM9iG^=D`lB2#72l{U`kaL6S(R>j zR=&HQ`Sj4UQa$y|tCya+_0}^(A3ZA^u4gt8dZz2EXJ23+`{~)6{(AOe0N%3=)U*48 z^z3$|p8YXc&n^$qvkOD@>~xf#9mh9xS@=kA{U|-#k1qgs$LQI%5qh?1q@Jyc)w5-z z_3w&u(-++L)?m zU03N@>ot0ow-ymUM_04QX?k`Ked=y))U)g88+d7xo}J&UXTNRHvtwKJ?AHvuG~A|V zySD3D#tuD8->GNocInwlbn;!Ai7!#`N#HMg^=#HYJxkoLXHyO!VF!_*LrBE0dKR6f zXG738dcYAq3qPu7J&x&Fm*aZYA^wD(wK=J0El%lK4=Bwk(sBl(X&zU>t@yuCp=715OY;8GH>^S=h%fnz&ZwqnuvM>gOcHrzm5zg*7 za(2UsvnvM9vYk0Q{&8E5_MsFV2=1=WLNTXY)&N zHm4+K(@SwS)ySE-G-ngaa28h+8o^FMrO$%5&DK0%z?ia@MjE zXH6?}*02g^b*pk#%fy+f8fO)&b5;)H36#dD1>P8I!2^RoxYXgSNC0Pcft=~2*y+WPCwYYVoy7(gnIw z3p(g|rb}&(Zuf!b$+r#yoQ&BIkFFcwtGs=1NdwC3@b2@;~k=fCI<2}CEyH| zs|)?`F%7QE4=S}!lYc$v`;Ta7J-*KA=z7@%X)o~3-y~xY_cpq=M+t^-cCZy^Ik49l z+r$eAWy1Q?QA7}4J;elZPNRZ&r>eElUl$)$V#v-0ws;>n%dIVjEJwpO8&KfpiPwCx z*B~A>$oGAN-_iRZZdAHHCy)9(S=n`xHq^%+L_VNL_4&_A!BdKEz}qURC+JWEgm=16 z`3?9TW0}|AHxi+4UF z>#8pS1#XFjDXtOkq0Bf+ml|P%4RXlPnDIyou934BjA9pCiA1sQ;1~-IOm>EWc7*Gw3BZX-6|YPjUa1LYhPW_GjkQ z=KPG#e(CFc>(@ykykxl^YT!g`U~{hKD0&+p zNAcOe5nnABELHc@g%I9SY5JJFS^_`qrvWW_J-bcU^W}SzM5@q+d(n}WJkHJs`-Bo} zhWVg)5KU~wLzI+#bfOi!TVJz!r>Nd#Tk|8zn7#D4H4^O|xaLJ^jSUtrIF)<|C@piJw!#wxRzFyv6y1`4QFZX z4?JCQ*h(F{@J9N*XK=DM>IYDM7hb~l^1XcdjGtbg#%H?LSFKf#@fVhv;@eK;7trft_y~AcH$GGeN~bd2;rHYu4d{;6CuAeJ_kezX zBC}f$jxO|9(o<=|Rc*#{0oj?jZX{6}Tz zLFyOIeGRTBWX1g638D5uN(tv3m62=cc{sdF9j2-g{E!m8nqEafduL@<@5`g`>FG)g z!ioUv<6yo;Ig?8B`r}e(^g;TgKVPIgT|uz}u$&H1<^aA)`Lvt{41`{{pV9{MT}r_+ z>NAKpb=a`aT2YL6?;J%dE9iTX(?D)ZMI(7{<=Iji6^S?(?4`Yt*v9)MGD=rW`>ZAH)_4^7*! zan^b^1cSsDxShIAwPSgCrNn-Uh(+FSNTyw}h@{hI%8%uf`|78178%3YxDhyu4dN^q zL-gf?--J#231_t^&PopFY$is(TaK`UFt3rEwS}#O1&raW&?ubo5Jz`2&We*ct38dg z!q639jT7niXq<26*eFHfzjtcZzSn9ar?A9_LuecDWr}RO#$U&Wx_^Dmg{89Lkl*(F zBhVUvk694{`(K8?4X_gI{A-k?jR29D3Ot5|# zC_@pw-4k35;aIoEq;r~zsbw^UzM<5|2?GYch~q}OlfZ4gGGw}o&Q_bsaIDi5BMr&Z z6Rlu9yv_bOujE^$CV^u(f-9n0km5SSNBTVmDMCB6TmxX&j}C&MDym zb-)DBwB=XDg(@}Yj`U(G3ONhqVrex)E#ycPa;RF!sf-+_@v`2ja{1Tw`EqdoU^K^O zXn8&ZFdDZ_`N934CHwc-PSn8x;|q`bi3d3B-=&^zzM|AAI+1%Rqc2hF2gQvtDx$7A zPT>y9_9XJ2g45W5b<}MNUuJ(bQB6@8#Wdk=9 zMmtO3q}=_PUL+u@`D>`cRQ|JVI>u~!lBbaF9JV-o2R_-sjyouqrcwS>oN}kFw#I6q zK2val4x7e*wEs9&-FOVOZ_eH3?dw=%;m_Q~eLzhse*|-87dp^@;4&SX)YF4Dv$$X45V*)jq3x@_NWS+|> zI~MLLTUdFFquAS#(=U8qeES~|Hlv6Gu2wB|mZ;ZbX{el*jc#)A!E9L&8EEct2@z?D zD}kzxT-bvMWWPV_Mba#{8ZzD)MNX|l9B&u@BaVUp5=V6{jsR?=&8&dGBKg?G8cBkT zWa~d8Df2Ipy!0mXJl+NaEuEXk8!MX^kn?=L2w#k)&xgD)pI*)9Ym~q-bay*;T~}`Y9Vi=v!h)Laef>-nz|6AFQpKV(eqS{75gK{M_MV|NtqN&p($8c zk$y?xvHC8xzR}7LiYrY@LPeW%4j$%F)NT2z~bmeIM2FUDqdbxrBq&zQ6 zBRBGkN>T(hOUJfrOrja-xa^r1PW3iHW9Y=mo1mBVp=z6LhHZlwjcji@Q*rODag9+Ho5LieB=Jty6yjE-Dmp$SU0bp zb=~r#<;to5T)F7Kth`nKjgq(UD1D6X8x?HfLHcSS4Ys0<*w%wme?!|rJ!s!=ydk+~ zpvtZ9Nq!k9+Ro!>NCs|*&h{W>8}zub)NC8ytla2M@1*{D4At3=I{2cSJPH~qi{r>= z2M!V^IaD(&fF_^7?4<*vA)Q zK=dv9u&J}d>CHaW$wnP$)_yF0IgGORW7C~OY5W0HN<0ZZz~}1Xsog=2`A^5IrxR-h zUw@E0VG5wkgNWwnP|82ZhbybSXy_r{9z!1OKZM|4hfu*G-p_8xSnG|LFV2a)lyb?D zW=QNimNxy0)_IO2U68uuN6P&b6}5L8ipfG1|EjQv}=cPp+345bvpuC zik2V2V~yD@DflQVTfjh?b`+H_C4_1pgKj(^bK)^xR*p55dK{JbT0eSx9Lwu8r^9JD zGPayRp5E-R9UfDO z-*DS@zL8oNb~ciAp`CK9F%>$E+#At{+MY&kK59f3sps{kif547h3Uu{-q>zWFY9>? zT}`jy$wH~Kc-T@BgIpt{&h(_WXL&k?ieGUK^3NW0{~Su8Q3INFUY1IC%04ekr9O?n zpq9!7zF59x3(JNqON+D7kR;WkW*6aIJB$)9!h305s{T84OMH3#I~u&71F6L&)C-R; zboesr#raF9EW-jQ;xYoic9wyAlumVM!WHQIom3~~Dk@JzZ5nnJ8*-$rS8?K>R*OQe zA>tYsPxTshH?1a>yAJ(B2O4}G8{S`oiv9r|8A@ILz^(KBUi9n_6g2Bi!Nc@!lLft+>IXm2Y3k@Fx#b`d6bNe3jtV_Q)p0mS)gSUTy4iH?ArDl}9wnDYd`HQTjd8_; z)42SU90O9|!g#(KjP(eCMxon2Po@XQ;WyA#K@{olOFRFD3w(`I^^J+BTw< zuX!z(fi=EZd$Z-rOVn9K2*X}wPegm4#jI(kIYkustH9*=jABx4R@i3@9=12q6c++kIG-3=D+77 z+*ha>BnN1~R<~j5&H}eiy{Y&IWa4Od>h^)hC~vE0p83ER=#)ws)He?=Rx*o{$0u$b zcnrH1OZLNXgYfDTn$)2U$jM%~tF!KWGmz;s-{c&c_u2Z~G}ZxAmL*IMcF2738Ruj4 zr9M&8*9(E6Awx?AEe7p1YH)=}!G5b1F;^4esfT*C{Dzsp( zxZrLmY^_f}Vmeb~#d1J_TVBV^IGyODQ|hGCHAVEZfAi|I{A@GKnVRUucID?t`luHb zYSnlmSJJM3t9YX*F^(XzAN{)$oCIqJ+XMURD40DgsEAb1QLk_#qLS}n~w z0HqDpO!_3iR=_$K=nxk{E{$!`<go0i#$lFH$#bkI)tDD_2@;> z*H&mUFqWzHiHaP@B9BHCL97>w)2|MqnC_S=m*73GgYdyfwQ?!%SsV`oG0T$|wJRbp zv7R;5Q;*PR88QWU62Pr-qLusl(V9M+%U<~yvXn|Y3OD69HOw;=Vb&Cf^b5uqu+~JJ zvMg4YDkHq8gd@^mqo$$07j26B21|n3dsAO0F{=2<_u5wEyng6|rzI-fvfPt$oy1JV_+Dm< zn`fxyqep&$^a_z)!Lr~&E%!Yr-5>^5ZtaOJ<57jRvz$?$G{(JCBR0uZ5Tf&ldmNa#kE=_nBj}lf%xUT8gFX?WvvR?m=D47`m!*9!BCcc<8W&kq zh|>Ce&bqrZePk6 zZlW+XbQO-6_v^K*@WhSFAXky3Y|5qfuEL|(l%gp3;j#livJQ`iw4I!oOT)_uFD0}n z9rnhiw!uwqD#Y^GnLc}qaA`-Ga zMy?rPdF4XU?&61%*I)iivCOpItXnoY(>-_L=TH>uscW?~P!FT_w<0&WSvWi6qDUNWykZ#VEtJI?>i* zVtlO{2z&Ak(*VoN43`;#mh_aR=QA~VA+jtH(pepj&03ZwN9yf`44#WEs*#;^P&4?T zmoO>Oj%tA(EsO*$FOCG+6xBHw`d&;8pHiRV!UJdaF~vo;r&|$3V%=&YM1$5WSiT?2pVO41K57xEg48 zt!>j^8?=^Th^0^=ByiCGR73TTtwl;(N(x*1YxXiFct%5W%Lt4{RZW14< zZb>m(|IsVoI#iO~P_({y^cqT&A7Q$krKLn!J2yO~EO4Wmbh4E2DK|pKhvXS$^3Wum zvaEQBcjyr5*lS z>Mxg0RF^*2(@44W)1B|@W-C}aL0vjuPp5rFgtCoM<#J+8$uqbAQCUs$0JBzBdCg>5 zp`%yjgrC6%>&smZwgfTxPDjoy<3+)KqO$TzrygWY3O@gLtEv2Yi|+Ud4`m^vJU_7z zcU*J)MREPTg3r{@O;mDdg2>dI9QTbL`in576jR%fQC|_;%kn6(`Q=e!ul}U1m|I$pjj4r>)7m$rUmmx3gCmaz)VE`*dzpO1qSk>>%ddaA{e8*s?1nX3enf7~ zdOChoLHH@{zmZc#Y%T7Fwcz!wzJ8`YUPx~`{A7AVEqC+j$BM#K`kJ3SvtwM10=HwJ z1#ai@zYm{#WTD>U4Hs^PD~cNN&jcP4xmzD~%M((P_}xa{21!08%MQA))HB3>2}z<7 z+|^TOk}x6Yq_9DVjP;~oVDdb1QWVnI9_!`B&@4n)M3HNrYE;oUsWBgq; z=~5%<5|DJbpA;_mSCi`irY6^2W8V`Xlk12u>y<^4tDKm(luSbfH4WNW6lAU}iYga< zX+dRNB5(Jl1C>P^CCZlyRT1TtYQ9vfiU?Ld`p}pv2;b(DdAy1kuG3Y^tZ5Q|>Xc0w z!?e06T7s}4HoDbGF+)oQZdYfP#ZJvCGOR2$sxCZ>wpL|LfMtxc%;2^ZRb32JHkQe} zTwUPnkroXyAJ@QDrE-eVw_0ei$5Y4JqBZWTm)91Jz24!@&C;-lbyQ&6>RC?~$xNG7 zM7%Z<-0WpVMYX(J zjE)D2DAyVXFzpWpp%E28LOy1rtT4rCT~Wu`vR{qHsD@tLPqXTZ?smR-wOHVG&68f$ z6*Y@~%4dI1CWcf6Sp2AVJrOEC?Za-;~N3aKwbl^}OoTwm-^ z>bOz+2I5eus@4Ll?=PX=ol#yGa6Dv&J_P3`n*z6v?o_Fvs8;e-85vJ~i-iBlNudc1 zMFS;$cjo?vqMlCqWf$cIi^#&4-{T$LDP58{^PYw_5;MK(TLY9NQ4{2(7{8Ngl{%K3 z8;i28Z4e+2xf!Ar*pyQ|Ni?F6#v#t^)jH4e0y5| zdt3j*t^a+k|NX811Fiol*8j!U|E1Rd57z%Y>;Gr#{}=23H|sycAyD9}SpT{8-^TiH zXZUIig=&GSn z!|EEg(Xfk#y)}%~aHNJ4Rg7oTw15;1(=Gi z!qp+QzUmpSg;dWx5h8{tWNM2h(9l-ckxyIU^S@^f(&hj1&yF6p6L<0pwj%rSQU*>>tS6Bv?W&GDN zoSs-ytb7d1j%mvfWc|svwg33ht9GI#5767F*+`-7MHW6Cg&fgdOeAxt;0E7S%G|(4 zb((Mev|-t!UC#q)ey9j2XKW-`mDmAeV||99z!@`k5NIygUtvBb6ASN<`6g5p)y3N* zd}RNK*a&rJ5|KDn`-~qyzJK3ASkEq6FquPDM#lE@Y1ya|C^P&=SoiKS%=4dNomD^M ze}t)i{s^0oMySfz{t@wV!w1ZG5{L+@43-J;sV*bSLzw5^VKro!VKR0^CQ$XODZ^yL z^%7rqYGJiy7)wT}j6#^YU(BqxVc|`n`;I~=e)zb`(+xVNf2O{Z*q~D~>Sb=}EN1H( zWYiNZ4Iafx;mhbF4l#wpQIH4=`7H%Mf&H+WtB1ahOQLW zr>9+TPX)B;Dwa!J*HxU-d1OY1iMx8a@s2%(qPSaE#QqgCa^|S(%4}n7WTZoSi`BOF zxTGtCQ@ukU5$LTYOjj76Zuga5I3c>>bM7O~F$Vgfk7y|4T-ZmL70f~D(N_$RdQx9J z_C)M-zMrVz9vLdEC(+9d1al3>lVVg7*I;t&FTC8oFPqa;us5(|EPF%s`-}E6?X&v} z_jS#P*^ryX}g`X~*?n+1@`#3;0RRbt?cc^=u zD5ndi$ue|o=7u=2-p{E?#Hd(fvymgCN7gm^j$)bZmy5Yhfw||@bDrIK6^$AOXc(+v zh=w&a45jj0gkNB+CMRlW)-X}SWDVzQn5N-UTDe7dlwPCB0~%&)cwNI|ba9JV5n;NZ zCa$K20U8Er*i^$14MR1I)G$%QG!2hwcvi#fncKFCI`+B@D!mtv5)6BV0fhlx2W4pu zGRvT|G*<>?t3kOk=rZZ{A?Ugq6uu9q?!^7VpHje3IjrkuOa6fFN=J(t6ucinxzu4l zf-oJF+-QajVzlxAxJ7cVa^nHSnR)PJm= zegSwSPge-_)bIDC#s*1hOrtR z)9@yhJ}O#t;7?UII}IH)G-&9lp;1F04ZpY9{+c#v7)&dV;*ol!Ce0cqYnVb8j|#u| zTutU_X!lIpDNP$S9iU;ThLIYM)i6=RR1NoN7^}r|O4B(SHtX22eMiPJqmPLZB7W>6 zb*p9#6E#fMFjd104G(CTt)WH3Tn!CcN%?E|MGFtrbdZL})bKKlYXLnqY^q_5h6$8( zTC}h?YDF4Af1DN#J7CZz>-FSJ&Fi|RA844TVSjD8omS$W8v1MaT=NT{5od(Q;4m#X zT*I*%CTf_X;aP339%vY)g{Nugplvoo)AKdGN7JV=@17APDC8;*ki?s!5?#J3yeZ%g z4vvs(BA`K&h~dMdV~zb}gE(+x^e|&w^x*zg@aFxm06*VRe#Y2nqZJ2_GD`P|sHo^M z1Nv8?xQn8KdREL_c2U^s(NkM=rm!m_w?;n}!A7xI)`vy27-nRpS$+I>Wi1i%18c`R zvS#?AwFwKse`D4Lic$V$`PgO`F7;>L#@$8k714*P=7`b@uZX_1Do2zA39}hCU|96X zahZ!kv_n;9+)$0tXzPL=3tl^JQTPPHWNG*_!KrDJQvuo7-Ol@2e=59 zCVhanVHwf~xExQo4uEF>M-|6i3%D6r#+$Kha1$^Vc2kCXW6rJ}CGZRmA`956BxCQu zLxCAE7K3mgFU4@RjJ*NI8IfLaGq6!<+^K+v0$;)W!5OZ2_rPj`X8~Wrf@C-zI{Cqx zf}4P5AAIN<6E9dcNPsV6ov|PoxDD15JPVi)>kn=y$5?Y%6nH3bHY^rgj)8L(HW6Ho zRZ|?#k`us9z>%<-;AY?v*nIG8U|E00mP#LBLOlM~KqLbnl}DL_=K`l!U@S|91OJ4b zmEpj^ii}+c4+h4;a=^{N-(VK-Y@iLUp>n|uz}~Pt@EG84Fg5}{z+$))wF8egf+WEV z5Xry~Fi&uXqi`O~2Rs${7G{#+m?(Zt4dfVj2G9q0R87H6z{#*s@MK`OTF6E4aG(Vi z37!iqg}bd7=?_e(jq)EWSAb{|fHDCO1-1)B)`5ouPry>Zvw=U=#m1#SFdBD%8Q^AM zhx({=(jVyA0F@5h2z&rL3!V$y+z>ejo&{Xn7|Xyj8pq?|U=w5)L^kkKQ)CyoY!22o zM|O>b6R=bZWEZ#zxC>?gH@0NVu{EAANe&zW^9PRsE@+F~0#5~&XonmEHvxCT!oahD zcSBL1;vsTD;yPgO!Og%Eute}|U>Hte^TES`YhX*kGk|A0;qU{`0ltQ1fV0kc{0Q3v zo(lW`%aY+gpu)mV$#CG(t~eCIGl21xx}y?71Ov@IkQ3m^!0evL3Gf`?`Mx;(Mu7tj z{gB1rMqtVS9Dd-bz&w~gI2*{&0~?2*^aq-TqHO^W2G)r}!zDTJ^C+ZultBK+GWL8l zS}VD790mv-gKUv}EMw=!0l;&B7ssQ*NDh2A3H3wzV0GWgNCIzDYM?0j`7PN`GLV z>Bs>Y4%`dlvDg5x=uG4sxDoinEVRJj;lL@gk#pe5@gO@e-B~5M0`QM{NELVv@Nfz$ z4tO@O{8}7Z;3i z+oQ<9H4p|6mt)8pa3k>eDP$RVHgMJ%exGQBd~uw{=PuO0AqZ0jK{$VxEN*tPX+e&!%E;Wz_lhU@zEG@EG9z*2pdJTwrz^9m@dE0T#dxNdLAvw1&tn z@Kj*QcE~Mo6L4{RT|B!i7qr*0LZQemxdL!y2l)mQdjPxudk3BaeB2qi1)huEF;&qq z#cm7^UEmn>bTNRNfk(r1%o{u#_@SGQ`Gd3WI<~X7j@1Ou0yd4%v0(7fhP# zK$w6J%sLhZo(udi1?2`y&A{M&SP487 z*!3`S0z4d8_b75=Ec}7BPwJSf)x&odBd~^YI1w0oRpY=Pk10oyf zcL{qBZUWZ7qGRFUp};S&C~(779^3$|2TKGGjR%6Mz!iK_9!Og%2g)wt7crLKM1E$LX4+S1| zR9F^xHt>*(!p=$`U?opXZUi0-v@3@7!3{tQ?78#-?yRJ+_;(OlAS0?MjE%>}fL~w^ z;Fy`4ErNN1rvi(c6y^hN0;a=E;905Ry_Svmm=H$qN;8-ZP5so>$j8L%|z-&kP{U>V?{zy+{9 z;Hkieuq^OgVDlylJ0*R9Q(@WQSwLUBQ@K7K?Y{|R5iCcp+)QEbU>0zOIbgcOa>2ua z3t@TE2N=^DxitZ04D@b~+yXZNb6~FExxj&;3NuO{U|&o<1&VWhXU(|D=bQK;DUk3M(|XiI|jE*05<~DVvvjA z89>`{n1UVL0BjD+0FMDy8IRloj}Hb(h8=@Q1+JcmvI5Tl_Wu!CBv%0Dz#f3-0ykh@ zj$G*jw7|Z|aNwqRh4G2VUf?J*as}KBbeoJ^0XG7JU`Fsz;LZ6ce}9NvOsBPgkS*Y; zK+7tH1yazqhBRdV22?J|f!>>tSa1_?5G)Ej2k5?8VX@#w;IJJy z{J_mX_nkQWWcW^`v^}OlNrngquHKF80?z`6%`jJQ;Wq_5eHwc=8ku#dwHpkm%E>T;OKlkZkPT zkH~hQHwHO(05<{8Jj9_0o&z*K$Dt_0fwN!ZPy|l}F5r3=Bss96Ee65?4+hrq)U(c# z0}mC$5J2GBz<8y&o<%_zfLSHzb@Kj*sCY-I2 z;lRsHIm?j#K<^fu?EyCd8)I0NW8k5{L!lTr2Rs}2v=c@J_z~@YE=Z>zI0jlp5datV z;HYHS05AlD<9v}T184T-j88&1(5oM325=*=1IF9%1P=!~&*98Rh6C3V2FU@>0RFg$ zvmkJE24%Da@q(uUzbudEtTTjR1%~6<&sn&10`|Uwu?N6ofF<8>HdclMH|KMf0GE!D)3WL!7hWdcvr!^J>dXh0*>(( z>^Zm@ShNH_A_q4DlVM-LQ-ME}6pYIYS7519f;q@W3>a&~>o{;Tuzwk>2Oa}de9*B2 z+yM0T6)XVU1WfS5@!u388RT(!WHWd!@K!~^dP)uqsVrC|cqlNVDmDV11>9O48@<}{;MH&$_2pIbp;v`Yz%l8 zb__fhxT>DY<;%{eu$wX*XbD0#g0uR9m4;csgMo8lx#0MWfOTx3#*a@47(OttZcE~H zD~D4u$ZBmt2C!W)UR|4!2;cyiOk50blE%%zLojB>-UBbeq)!g;D=ZJ3H4@AXCc~|- z)-`Sdet<=p;nNt2h{vDImQ;{uL5f1E+*Qw!HAqJQa3y>=}6Ravs`j~*x zurTQZd;v3o=K{+%SF_p#dBE$3EvpG(LX&nJtW&G(c;vd6b>#X*OwwC6 M=Vs3RBBFKw1F%|!PXGV_ delta 48894 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 T*ksy7y3b;A*3X~OH1GcaP~blN diff --git a/src/onyxchecker.c b/src/onyxchecker.c index ab6b8aba..707e7546 100644 --- a/src/onyxchecker.c +++ b/src/onyxchecker.c @@ -893,7 +893,14 @@ CheckStatus check_unaryop(AstUnaryOp** punop) { CHECK(expression, &unaryop->expr); resolve_expression_type(unaryop->expr); - if (unaryop->operation != Unary_Op_Cast) { + if (unaryop->operation == Unary_Op_Cast) { + char* err; + if (!cast_is_legal(unaryop->expr->type, unaryop->type, &err)) { + onyx_report_error(unaryop->token->pos, "Cast Error: %s", err); + return Check_Error; + } + + } else { unaryop->type = unaryop->expr->type; } diff --git a/src/onyxutils.c b/src/onyxutils.c index 3edd10e1..00ccec2a 100644 --- a/src/onyxutils.c +++ b/src/onyxutils.c @@ -953,9 +953,14 @@ b32 type_check_or_auto_cast(AstTyped** pnode, Type* type) { if (types_are_compatible(node->type, type)) return 1; if (node_is_auto_cast((AstNode *) node)) { - // HACK: Check that this cast is legal! - ((AstUnaryOp *) node)->type = type; - return 1; + char* dummy; + if (!cast_is_legal(((AstUnaryOp *) node)->expr->type, type, &dummy)) { + return 0; + + } else { + ((AstUnaryOp *) node)->type = type; + return 1; + } } else if (node->kind == Ast_Kind_NumLit) { if (convert_numlit_to_type((AstNumLit *) node, type)) return 1; @@ -983,6 +988,95 @@ Type* resolve_expression_type(AstTyped* node) { return node->type; } +static const b32 cast_legality[][11] = { + /* I8 */ { 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0 }, + /* U8 */ { 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0 }, + /* I16 */ { 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0 }, + /* U16 */ { 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0 }, + /* I32 */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, + /* U32 */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, + /* I64 */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, + /* U64 */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, + /* F32 */ { 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0 }, + /* F64 */ { 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0 }, + /* PTR */ { 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1 }, +}; + +b32 cast_is_legal(Type* from_, Type* to_, char** err_msg) { + Type* from = from_; + Type* to = to_; + + if (from->kind == Type_Kind_Enum) from = from->Enum.backing; + if (to->kind == Type_Kind_Enum) to = to->Enum.backing; + + if (from->kind == Type_Kind_Struct || to->kind == Type_Kind_Struct) { + *err_msg = "Cannot cast to or from a struct."; + return 0; + } + + if (from->kind == Type_Kind_Slice || to->kind == Type_Kind_Slice) { + *err_msg = "Cannot cast to or from a slice."; + return 0; + } + + if (from->kind == Type_Kind_DynArray || to->kind == Type_Kind_DynArray) { + *err_msg = "Cannot cast to or from a dynamic array."; + return 0; + } + + if (to->kind == Type_Kind_Function) { + *err_msg = "Cannot cast to a function."; + return 0; + } + + if ( (type_is_simd(to) && !type_is_simd(from)) + || (!type_is_simd(to) && type_is_simd(from))) { + *err_msg = "Can only perform a SIMD cast between SIMD types."; + return 0; + } + + if (from->kind == Type_Kind_Basic && from->Basic.kind == Basic_Kind_Void) { + *err_msg = "Cannot cast from void."; + return 0; + } + i32 fromidx = -1, toidx = -1; + if (from->Basic.flags & Basic_Flag_Pointer || from->kind == Type_Kind_Array) { + fromidx = 10; + } + else if (from->Basic.flags & Basic_Flag_Integer) { + b32 unsign = (from->Basic.flags & Basic_Flag_Unsigned) != 0; + + fromidx = log2_dumb(from->Basic.size) * 2 + unsign; + } + else if (from->Basic.flags & Basic_Flag_Float) { + if (from->Basic.size == 4) fromidx = 8; + else if (from->Basic.size == 8) fromidx = 9; + } + + if (to->Basic.flags & Basic_Flag_Pointer || to->kind == Type_Kind_Array) { + toidx = 10; + } + else if (to->Basic.flags & Basic_Flag_Integer) { + b32 unsign = (to->Basic.flags & Basic_Flag_Unsigned) != 0; + + toidx = log2_dumb(to->Basic.size) * 2 + unsign; + } + else if (to->Basic.flags & Basic_Flag_Float) { + if (to->Basic.size == 4) toidx = 8; + else if (to->Basic.size == 8) toidx = 9; + } + + if (fromidx != -1 && toidx != -1) { + if (!cast_legality[fromidx][toidx]) { + *err_msg = bh_aprintf(global_heap_allocator, "Cast from '%s' to '%s' is not allowed.", type_get_name(from_), type_get_name(to_)); + return 0; + } + } + + *err_msg = NULL; + return 1; +} + char* get_function_name(AstFunction* func) { if (func->name != NULL) { return bh_aprintf(global_scratch_allocator, "%b", func->name->text, func->name->length); diff --git a/src/onyxwasm.c b/src/onyxwasm.c index 1a9ede09..fdd4b842 100644 --- a/src/onyxwasm.c +++ b/src/onyxwasm.c @@ -2346,56 +2346,10 @@ EMIT_FUNC(cast, AstUnaryOp* cast) { Type* from = cast->expr->type; Type* to = cast->type; - - if (from->kind == Type_Kind_Struct || to->kind == Type_Kind_Struct) { - onyx_report_error(cast->token->pos, "Cannot cast to or from a struct."); - WI(WI_DROP); - *pcode = code; - return; - } - - if (from->kind == Type_Kind_Slice || to->kind == Type_Kind_Slice) { - onyx_report_error(cast->token->pos, "Cannot cast to or from a slice."); - WI(WI_DROP); - *pcode = code; - return; - } - - if (from->kind == Type_Kind_DynArray || to->kind == Type_Kind_DynArray) { - onyx_report_error(cast->token->pos, "Cannot cast to or from a dynamic array."); - WI(WI_DROP); - *pcode = code; - return; - } - - if (to->kind == Type_Kind_Function) { - onyx_report_error(cast->token->pos, "Cannot cast to a function."); - WI(WI_DROP); - *pcode = code; - return; - } - - if (type_is_simd(to) && !type_is_simd(from)) { - onyx_report_error(cast->token->pos, "Can only perform a SIMD cast between SIMD types."); - return; - } - - if (type_is_simd(from) && !type_is_simd(to)) { - onyx_report_error(cast->token->pos, "Can only perform a SIMD cast between SIMD types."); - return; - } - - if (type_is_simd(from) && type_is_simd(to)) { - *pcode = code; - return; - } - if (from->kind == Type_Kind_Enum) from = from->Enum.backing; if (to->kind == Type_Kind_Enum) to = to->Enum.backing; - if (from->kind == Type_Kind_Basic && from->Basic.kind == Basic_Kind_Void) { - onyx_report_error(cast->token->pos, "Cannot cast from void."); - WI(WI_DROP); + if (type_is_simd(from) && type_is_simd(to)) { *pcode = code; return; } @@ -2435,11 +2389,9 @@ EMIT_FUNC(cast, AstUnaryOp* cast) { if (fromidx != -1 && toidx != -1) { WasmInstructionType cast_op = cast_map[fromidx][toidx]; - if (cast_op == WI_UNREACHABLE) { - bh_printf("%d %d\n", fromidx, toidx); - onyx_report_error(cast->token->pos, "Bad cast."); - } - else if (cast_op != WI_NOP) { + assert(cast_op != WI_UNREACHABLE); + + if (cast_op != WI_NOP) { WI(cast_op); } } diff --git a/tests/aoc-2020/day14.onyx b/tests/aoc-2020/day14.onyx index 4e1651c1..9d23a103 100644 --- a/tests/aoc-2020/day14.onyx +++ b/tests/aoc-2020/day14.onyx @@ -71,6 +71,7 @@ bitmask_iter_next :: proc (use bmi: ^BitmaskIter) -> u64 { done = true; } + printf("val is %l\n", val); return val; } @@ -80,7 +81,7 @@ main :: proc (args: [] cstr) { file := reader.make(contents); mem : map.Map(u64, u64); - map.init(^mem, 257); + map.init(^mem, 0, 257); defer map.free(^mem); mask : Bitmask; diff --git a/tests/aoc-2020/day15.onyx b/tests/aoc-2020/day15.onyx index 2cc74023..804e1e9f 100644 --- a/tests/aoc-2020/day15.onyx +++ b/tests/aoc-2020/day15.onyx @@ -15,7 +15,7 @@ main :: proc (args: [] cstr) { // Any changes to the implementation of Map should be tested on this // file to validate if they 1) work and 2) are faster. nums : map.Map(u32, spoken_times); - map.init(^nums, 32767); + map.init(^nums, spoken_times.{}, 32767); defer map.free(^nums); turn := 1; @@ -28,12 +28,12 @@ main :: proc (args: [] cstr) { } while turn != 2021 { - st := map.get(^nums, last_num, spoken_times.{}); + st := map.get(^nums, last_num); if st.previous == 0 do last_num = 0; else do last_num = st.recent - st.previous; - st = map.get(^nums, last_num, spoken_times.{}); + st = map.get(^nums, last_num); st.previous = st.recent; st.recent = turn; map.put(^nums, last_num, st); diff --git a/tests/aoc-2020/day17.onyx b/tests/aoc-2020/day17.onyx index 61cee9b4..4cc8f304 100644 --- a/tests/aoc-2020/day17.onyx +++ b/tests/aoc-2020/day17.onyx @@ -32,7 +32,7 @@ get_neighbor_count :: proc (cubes: ^map.Map(CubePos, CubeState), pos: CubePos) - for x: -1 .. 2 do for y: -1 .. 2 do for z: -1 .. 2 do for w: -1 .. 2 { if x == 0 && y == 0 && z == 0 && w == 0 do continue; key := CubePos.{ pos.x + x, pos.y + y, pos.z + z, pos.w + w }; - state := map.get(cubes, key, CubeState.{}); + state := map.get(cubes, key); if state.alive do count += 1; } @@ -45,7 +45,7 @@ main :: proc (args: [] cstr) { file := reader.make(contents); cubes : map.Map(CubePos, CubeState); - map.init(^cubes, 1021); + map.init(^cubes, CubeState.{}, 1021); defer map.free(^cubes); z := 0; @@ -81,7 +81,7 @@ main :: proc (args: [] cstr) { } for ^cube: cubes_to_consider { - state := map.get(^cubes, *cube, CubeState.{}); + state := map.get(^cubes, *cube); ncount := get_neighbor_count(^cubes, *cube); if state.alive { @@ -94,7 +94,7 @@ main :: proc (args: [] cstr) { } for ^cube: cubes_to_consider { - state := map.get(^cubes, *cube, CubeState.{}); + state := map.get(^cubes, *cube); state.alive = state.next; map.put(^cubes, *cube, state); } diff --git a/tests/aoc-2020/day20.onyx b/tests/aoc-2020/day20.onyx index 988e5a81..b4fca178 100644 --- a/tests/aoc-2020/day20.onyx +++ b/tests/aoc-2020/day20.onyx @@ -257,7 +257,7 @@ main :: proc (args: [] cstr) { defer array.free(^tiles); tile_map : map.Map(u32, ^Tile); - map.init(^tile_map, 67); + map.init(^tile_map, null, 67); defer map.free(^tile_map); tile_data := calloc(200 * sizeof TileData); diff --git a/tests/aoc-2020/day21.onyx b/tests/aoc-2020/day21.onyx index d092ab98..dfe862c8 100644 --- a/tests/aoc-2020/day21.onyx +++ b/tests/aoc-2020/day21.onyx @@ -36,8 +36,8 @@ main :: proc (args: [] cstr) { file := reader.make(contents); - map.init(^ingredient_map, 127); - map.init(^allergen_map); + map.init(^ingredient_map, Ingredient.{}, 127); + map.init(^allergen_map, Allergen.{}); defer { map.free(^ingredient_map); map.free(^allergen_map); @@ -59,7 +59,7 @@ main :: proc (args: [] cstr) { array.push(^food.ingredients, ingredient_name); - ingredient := map.get(^ingredient_map, ingredient_name, Ingredient.{}); + ingredient := map.get(^ingredient_map, ingredient_name); if ingredient.name.data == null { ingredient.name = ingredient_name; array.init(^ingredient.appears_on, 4); @@ -78,7 +78,7 @@ main :: proc (args: [] cstr) { array.push(^food.allergens, allergen_name); - allergen := map.get(^allergen_map, allergen_name, Allergen.{}); + allergen := map.get(^allergen_map, allergen_name); if allergen.name.data == null { allergen.name = allergen_name; array.init(^allergen.appears_on, 4); @@ -113,7 +113,7 @@ main :: proc (args: [] cstr) { potential_allergen_count := 0; for ^allergen_name: potential_allergens { c := array_count_contains(^potential_allergens, *allergen_name, string.equal); - allergen := map.get(^allergen_map, *allergen_name, Allergen.{}); + allergen := map.get(^allergen_map, *allergen_name); if c == allergen.appears_on.count { potential_allergen_count += 1; } @@ -126,7 +126,7 @@ main :: proc (args: [] cstr) { total_safe := 0; for safe: definitely_safe { - ingredient := map.get(^ingredient_map, safe, Ingredient.{}); + ingredient := map.get(^ingredient_map, safe); total_safe += ingredient.appears_on.count; map.delete(^ingredient_map, safe); @@ -157,7 +157,7 @@ main :: proc (args: [] cstr) { } if match_count == 1 { - ingredient := map.get(^ingredient_map, matching_ingredient_name, Ingredient.{}); + ingredient := map.get(^ingredient_map, matching_ingredient_name); map.delete(^ingredient_map, matching_ingredient_name); ingredient.allergen = allergen_entry.key; diff --git a/tests/aoc-2020/day22.onyx b/tests/aoc-2020/day22.onyx index c4c1622b..7786c40c 100644 --- a/tests/aoc-2020/day22.onyx +++ b/tests/aoc-2020/day22.onyx @@ -61,7 +61,7 @@ encode_hands :: proc (alloc: Allocator, p1: ^[..] u32, p2: ^[..] u32) -> str { recursive_combat :: proc (player1: ^[..] u32, player2: ^[..] u32) -> u32 { hand_seen : map.Map(str, bool); - map.init(^hand_seen, 31); + map.init(^hand_seen, false, 31); defer map.free(^hand_seen); while player1.count > 0 && player2.count > 0 { diff --git a/tests/aoc-2020/day24.onyx b/tests/aoc-2020/day24.onyx index 61b6320f..7d9cb5cd 100644 --- a/tests/aoc-2020/day24.onyx +++ b/tests/aoc-2020/day24.onyx @@ -33,7 +33,7 @@ main :: proc (args: [] cstr) { file := reader.make(contents); grid : map.Map(Vec2, Cell); // `true` is black - map.init(^grid, 1021); + map.init(^grid, Cell.{}, 1021); defer map.free(^grid); while !reader.empty(^file) { @@ -67,7 +67,7 @@ main :: proc (args: [] cstr) { } - curr := map.get(^grid, loc, Cell.{}); + curr := map.get(^grid, loc); map.put(^grid, loc, Cell.{ alive = !curr.alive }); } @@ -98,7 +98,7 @@ main :: proc (args: [] cstr) { } for ^cell: cells_to_consider { - state := map.get(^grid, *cell, Cell.{}); + state := map.get(^grid, *cell); ncount := get_neighbor_count(^grid, *cell); if state.alive { @@ -128,7 +128,7 @@ get_neighbor_count :: proc (grid: ^map.Map(Vec2, Cell), pos: Vec2) -> u32 { count := 0; for ^dir: Hex_Directions { - cell := map.get(grid, Vec2.{ x = pos.x + dir.x, y = pos.y + dir.y }, Cell.{}); + cell := map.get(grid, Vec2.{ x = pos.x + dir.x, y = pos.y + dir.y }); if cell.alive do count += 1; } diff --git a/tests/aoc-2020/day25.onyx b/tests/aoc-2020/day25.onyx index 09d89941..2f20fc22 100644 --- a/tests/aoc-2020/day25.onyx +++ b/tests/aoc-2020/day25.onyx @@ -25,7 +25,7 @@ dlp_bsgs :: proc (n: u32, a: u32, b: u32) -> u32 { m := cast(u32) ceil_f64(sqrt_f64(~~n)); t : map.Map(u32, u32); - map.init(^t, m / 2); + map.init(^t, 0, m / 2); defer map.free(^t); tmp: u64 = 1; @@ -39,7 +39,7 @@ dlp_bsgs :: proc (n: u32, a: u32, b: u32) -> u32 { tmp = ~~b; for i: 0 .. m { if map.has(^t, cast(u32) tmp) { - v := map.get(^t, cast(u32) tmp, 0); + v := map.get(^t, cast(u32) tmp); return i * m + v; } diff --git a/tests/aoc-2020/day7.onyx b/tests/aoc-2020/day7.onyx index 08dceae3..3282b976 100644 --- a/tests/aoc-2020/day7.onyx +++ b/tests/aoc-2020/day7.onyx @@ -24,7 +24,7 @@ BagContainment :: struct { bg_init :: proc (use graph: ^BagGraph) { array.init(^nodes, 16); - map.init(^node_map); + map.init(^node_map, null); } bg_free :: proc (use graph: ^BagGraph) { diff --git a/tests/aoc-2020/day8.onyx b/tests/aoc-2020/day8.onyx index e197fa7c..6a0a3f93 100644 --- a/tests/aoc-2020/day8.onyx +++ b/tests/aoc-2020/day8.onyx @@ -15,7 +15,7 @@ Instruction :: struct { // Returns if the program successfully exited. get_acc_value :: proc (instrs: [..] Instruction, ret_acc: ^i32) -> bool { already_been: map.Map(i32, bool); - map.init(^already_been); + map.init(^already_been, false); defer map.free(^already_been); ip := 0; diff --git a/tests/general1.onyx b/tests/general1.onyx index d5d870e1..8e25d1f8 100644 --- a/tests/general1.onyx +++ b/tests/general1.onyx @@ -234,7 +234,7 @@ main :: proc (args: [] cstr) { print("\n"); pmap : map.Map(rawptr, rawptr); - map.init(^pmap, 50); + map.init(^pmap, null, 50); defer map.free(^pmap); for i: 0 .. 100 do map.put(^pmap, ^s.a[i], ^s.b[i]); diff --git a/tests/i32map.onyx b/tests/i32map.onyx index d8cf721f..d43a198f 100644 --- a/tests/i32map.onyx +++ b/tests/i32map.onyx @@ -6,7 +6,7 @@ use package core main :: proc (args: [] cstr) { imap : map.Map(i32, str); - map.init(^imap); + map.init(^imap, ""); defer { print("Freeing map\n"); map.free(^imap); @@ -17,7 +17,7 @@ main :: proc (args: [] cstr) { println(map.has(^imap, 50)); println(map.has(^imap, 51)); - printf("%s%s\n", map.get(^imap, 50, ""), map.get(^imap, 1234, "")); + printf("%s%s\n", map.get(^imap, 50), map.get(^imap, 1234)); map.delete(^imap, 50); println(map.has(^imap, 50)); diff --git a/tests/overload_with_autocast.onyx b/tests/overload_with_autocast.onyx index 9c427e59..9048be22 100644 --- a/tests/overload_with_autocast.onyx +++ b/tests/overload_with_autocast.onyx @@ -3,6 +3,7 @@ use package core overloaded :: proc { + proc (x: str, y: i32) do println("Called str, i32"); , proc (x: f32, y: str) do println("Called f32, str"); , proc (x: i32, y: i32) do println("Called i32, i32"); , } -- 2.25.1