From c7416f18bdddf48f4535a6d48927c2355d842af9 Mon Sep 17 00:00:00 2001 From: Laurenz Date: Wed, 9 Jun 2021 10:51:19 +0200 Subject: [PATCH] Move invalid syntax tests into appropriate places --- tests/ref/code/for.png | Bin 2685 -> 4074 bytes tests/ref/code/if.png | Bin 1644 -> 2731 bytes tests/ref/code/invalid.png | Bin 3647 -> 0 bytes tests/ref/code/let.png | Bin 1974 -> 2231 bytes tests/ref/code/while.png | Bin 879 -> 1531 bytes tests/typ/code/for.typ | 35 +++++++ tests/typ/code/if.typ | 28 ++++++ tests/typ/code/invalid.typ | 100 -------------------- tests/typ/code/let.typ | 21 ++++ tests/typ/code/{assoc.typ => ops-assoc.typ} | 0 tests/typ/code/{prec.typ => ops-prec.typ} | 0 tests/typ/code/while.typ | 22 +++++ 12 files changed, 106 insertions(+), 100 deletions(-) delete mode 100644 tests/ref/code/invalid.png delete mode 100644 tests/typ/code/invalid.typ rename tests/typ/code/{assoc.typ => ops-assoc.typ} (100%) rename tests/typ/code/{prec.typ => ops-prec.typ} (100%) diff --git a/tests/ref/code/for.png b/tests/ref/code/for.png index f9abf0741c45e6227fe2f5f1d2a6816ee75dd218..de1f3cabd236b9b8aae24ecfcfc8ca4590d5eb0a 100644 GIT binary patch literal 4074 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 literal 2685 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 TBxg_l^H-j=Id4rz`^5hZ=n?i+ diff --git a/tests/ref/code/if.png b/tests/ref/code/if.png index b30e63f8869e4a522446c17ee8fd80136396fcd3..48152e2325fc30301151dc9057369bffad156bef 100644 GIT binary patch literal 2731 zcmai0c{tnY8vTW+#4-{pYAr$4zKm{KTZpBxHEId1wP=dkOHi>yYbzLHa-0CMXPZ9+yI~xFCfeP5Of0&pA}dX2tF2i z%<8cCjO9*~4h%dh2mUcI?msxND)A}qX?sRw<({BA=(Y<|;&0d<9^YWgXUYQtA|Kk}w2%6&z$)wuqc zAIskyK}iK%Iy0RuA2#!Y>lp$91j89BIBR#KCWhOPwp1;e^GT4WzA!aC0q6U9vW4rz zmS7ATXo#=^e3xnIyxGn-`Mopnl<4p4YFte^HJbJFj^J+8ZAuYT6WNcg(Zn}yLZ5vS zN{oNF#ge`;FM=u#ihdo709i1XLw}AjknhKuuglB?u&-_8`rp^R9M*FEeix|Q_@0HH zrN~n;{0g57J~9*N!TGa@%-IehQ&tCWyRK#z%0j4W|1yzPo?IHzH3b z9?3ljs#O;`ay=^p)~k(b!UnO$pRkM}I~|dxn zy-4`PRuXshCUtfDynDW%_vq4IeI!_xxcbBnGc$3gCu2OyT`&E*94#_4^LQ@EIyMw)DqL@6FQQGWyS z20M%i*vo(u$V;43R^_I+XEw;9B%CqdvWOY`0Uc+#K3o8v{k*Sx%pzC!W0EG;qDRqJw&$dP&->NqzjyBhc)M^mn;d{TlkiU@i|g%!fa{rcu-i-g?KDLM~Ip8phM!O7NWe6Lzti}dK_ds(*f zCL3bMfpOd#!QuY(3~c?QJk#|NKn`Qt!^sR*L6>$qDT+crtz7&z=vmI9-0iq7pgu`X=O!x`qefV-s$Y|yinu_pm*mGf;d`q^t#HP@;HBHZ)ZMSBAz z;I;w`T=|XXx#Af~yv?>S>U`=V##Y@OBbFbihl#VKDq!>UNmd(r{M*%2g;7vi468#3 zpv9cb58PmAIw9BwN~JxmU@OTBPD2+lX-^^lgG4^L2fqtTx=$>g%Oc?kda*j@X6qd9 z*&*}98CT@#t{}NmV0N&tH)?J{VEN8P^Vx~=KElUp?)GrXWc3~LJ>?x0A+1y+sUO*P zmJVXYtLk5bQJ&T6z9-CNMF}p&JA%vYQpfXag9^h5o|th5!!NntU*O@Rs=B*(oQte5<8!v1 zG-Qnzcxb1 zt*=*rnrh{H;MnlHpG4PXnlacbT}%26bBFh#rwWzxm>_$03V`cCs;QRj@g;Pg`)aMB zUV^5&LWB#-xUrv4!Y?`FkrlRm9^%Ag@=D}|q*(m#`KzH!GmqZZ$>uGXo^tKB*-Bwc zo`#VovM}k9WnkBte2tLb%hI3a>=tRXJQmKscCSF;(x_-!r(B73sV_P~ z878j`6V~RUwKTPln^=&1it{+p>-h16bLdmqZ+>O3Q$DL{XF*Y02q!TjKTUn1%1}2E zcS@Lpi0C5nKg$J5SJchkzDXum?u8pPvqJFu6qu}4PzXN$>r)mH&lwK z0`3dwn%vuh_*{Hbt`$tDUhDF->sT81HAEfq!%xK`9V9IqqhiA!j$tmKRBm}7_^*l@ zdCD#!er7a3-f{rT))v219*d27Wg(v2jKEizXzjRkczjI+ZeO_K@@3AwFVsK|0xpc- z)xVX~$^8tM2Ayb*KM)7+>dd8cN^}lg*M&{#Zle3?C&w#Ge5vvIUW+sen_-pVBJ~kB z^^rh1XMi*YLn(!(QO)H?rs+v9E(yuy&3lfQlwn8>0vu_#qO3_bSRKdf{f+8oIztoj z@wJfixyj!aeI+}#a?P7exa6V8`Bz;N8&#L8m+=r literal 1644 zcmZ{ldsNbA7{`Ao$S{Y@4w zSqK1t$(GGN+W`OqojWVRxdA{3)^`U01LrM1o;%Yd6Vkpz4VxF|$SWYx)HPJ&FzbuP z1OwNTp$04TD-!)d7hT;CyR$8Sqh>F~gkxH$YTJPc5Z0Xig|JPdAEOHqNSnu)O;XFTjS zrLe$E?c1yaHt;=X(kviLjC$;uO~w808B2rIR%OjIEum-02%sSb+g^bU5zj=iMaGq| z7Zn>(j_G>P!??#C8S5XmH6D+w13j)UHK%sFffm$w8;NMWQqn})wBa{_>Rhp;5bI&Xo1Im;<-##5X>jV3KN0!v3CO5A#3wNR zL6m9aInQk_?^iX)TYTvm?G+0(I)1M=kd^M2pXcs5C1$@yvPL}f6}+Q9jmdj>YcKc$ zrU|>%slzMzH`gMv!r2<>D;B1)Cs&_yq;2ig5pCs2Vc%fSpcp}&O8-FXY!-9XUFX9= z4P_iG(wX}m#+AeTjNs$O?c!ti(-xt3-EMJU_IeX-iiFjV-1sAV%VCKEfzh)(-gJ;v z{8*VD^9l?)WaL%PcLF?295XnmqI$z zHx)XMO6aBAn5p+RMa4(Rn<+bgWU36R#j`faM9YZmny`I|ZX1I>ZO+F&y&}VJtP^(c z0Vjk9yC?P)E)t*6m*1tR9O`(p8P_LSQkie$6p;D;;r^vF1vugl!-%Qs>f;p6%O~6r z_H+-Zy&+~ki=d76y0z>^jQuE4Himkt!-!h~+a7p!Qlc+{Rzi~A2 z?jW$Av+RNjLr6(VS!S$%?l33rpu@)1EvN792|ReMz|Fi*D(u=S6x;^8bKMC|J78MU zeTDd#QnOlbk|4klb%P9`-1NRUjzN8}o&7D*Q9(gL@p{+0Y#q4tSBG#7&q*aaV=h*F z07DLIUzq)TX^yqGSzEHL?JD6ZmkX%r=q;aHrFkH49)Lr&!E^i39AiO2naUeWw&s+= z%lYfcp{`2%@v}o%uN3PSN(;O!u{Kt*8|oFSwKm;8Y{##RdB6?fP2)j_UsH94UarVM z>wL0hP#%=U!~3FABk&XYRY<`wjnm{k6jGoDz01nNms`XIzp>^+rwt-q+R|=H6Id3> z6rMDpFHFQbaqPQY46*)ANxCXyNng537e=qRlY=8BoSS`XGV*e)?Tty*B;x~nqW&ot z&R7@T79CfYbplbf*KJ3pKalN$=sY8;FW#WN`O|Zn6S`wjL-J(JS4;3$C}mEeBxl@t zq$#q4FRIR`HEk$MGepziUirW`wBqM6rs&?I7Gs%#T_?YG#<54kJcAhjQ_jcY%!^1K zgdTnGN>=Qsc$XAp^_(k!amlo#5m+kEj>a*8qThjNe`-=0x%2d1%P#KFG6*Z8m9$Rg zhI%xXdfNp%sxJ19@U!YgX>t}^8}%H z;mnj<3)^#H(0GpBKq>q!MM0`J>zzQzThHitu|f$CYgXaz@9|{ofz*#LsuPA zeoShwH>zH9bj4++a}B*Mx=%?Ql2B|VXh?hfL5*wxQ`|Bub9xYWv|g>QruSu*DF5I^_*+!1N+&eh=gO%+1P=4x O$QIu~pL(yz?7sl-*Ut|C diff --git a/tests/ref/code/invalid.png b/tests/ref/code/invalid.png deleted file mode 100644 index bfd3ec2cf1a7a0fa9a896c922581b9bdc79dbe24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3647 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 delta 1715 zcmZvddpz6s8ppqh;5S;iR8&oyh}C__+%K(&mLH<`$~0S1q+s$`+SODeI!xOywwZIOp`7zFz12^?jb#_jx_9=Xrmh&+~0V zw<2%u*K>fh003WihYWscCZX#*rc!*vGn6lI{Q93g?Jg`cS~ZbC~_a;xJOIWxx|G0zYiG4$+xOTf*Fc+_pGmw{Uw!~ zXY$bl`YNJ9Pad&9YeOBj1QF-h^AIkd7?No|`FW;uf7ak0l_Df4YhT=>DZyesF$U-4 z<>hVvo3lfHvupom5$8akG>xH98n0@sFCpR{)pkyzQ#+F^`m!E9eYO%wah#v6=43t8 zzFX4iK;~qZy-B%%JrM2O4H+Vu#s)EjXp92zS5SUv&C@DL+nC!+yObGY6OiIIx7Bdj@lFA`RR228t~U6sU$4E>@p(UAOE-hIe`` zI{;*JH151&8v@DOQ4{W@3g!iNxKqqGbP)sEz6C^_u*Sp(&okSHFsx0aZutG}3Z*U{ zNfLeb+qtpsd+t-VGxNrVz`Y(Ye%2Bf&z>2n{fzkew4{Z7&)RtvH|Zj;r?tvoaakK- z0x_)G@@)cd=0$KrM~9PP$y19J-=S_zHO4lyo~?oWX1j5s_3822mYB|ydECcZ-0G*E z?KUC2c5<9A&1NJ`W7${uAkwUkE*8v&A`VhaGQO0P%q?~4<8q%GW?kxwUzEU(1DH3mSeb^#>EEt|B81knkd@8l z?}`HXQdCD6q>HAM07;1`mqFi3b=w?z1|X*({Rw4>{UR% zb{ww8@E6_62g4UyEqGiJl@pEB3^UnIiC5zfFTK}_*HAr>8nfsA=>0`%3gZ2xI^a;h zK6Pa;T-gYtJ%lAL4`@OW;6zS_$zsQIFC)P8m~LpTkET{$+@HDV_lqr{U4&$Plb%?v z*#D~~k3TyW-ic`DxZuS9Pw@x>%I1GI;%4Nv&An}m13xAoHNLd-IRUEw2}&dRRQ5jr DK^Ev5 diff --git a/tests/ref/code/while.png b/tests/ref/code/while.png index c0045350effd4775bf31206703d3563745ed32ec..a772fd590d29f549431fd1d343695bf5187c1b43 100644 GIT binary patch delta 1416 zcmV;31$X-I2Kx(;7hux}00000LN7A)000HTNkl41$1G@w00C!+_ z;B;U*Fdc{vOb4a|r-PpkRDw%T3GcozS}U+-W;3(*Bqn^{MdA~z_(76S3Nlj^MNt$* zQIrS6i$#+k0~vq9ry$Iy<0;)P3b*s=G~~&2KAz@}>wL-+$K(902#jT6R>qHuhT&$5 zW9xZx+&Es2c{Uy!yRJKQX|(Z45yqWEXKkJbVtZ3is!RfNIRI^$=ciCy5vC0gEIubf zmzM4GJWziu*0BtE65K{0SgtJ)t_a%>NH>knvmy4%F@Z6+9s#E?z0k`gE!?d$)|MAcf zZuUOd^sETbnL~wM)ahuE+(2SkGf& z`=22^YjuABVy@&cmsQg=r8Uj6+qPLM#Wt^=AX?tlk9$8pH$pZ5@DSX6XYR`~TTTgf z*Vp!z?h5^Nx7~VxzE}&uZz5a`=6s%WQyn(T!J)n$|67{@x8WXvO$AVO&xw$#1f)xq zeuOaC8<27-A1wewk++5ZdOR4+VYXFWJv@p)s;)yT^YH=V+3YQsi{9SeFI8?A>B=+b zU0%ui!K^$*fUcTT^Q6}f$*;+uAw+lg+`th-7xKEL(HPVHi@N0~>$B z=OA=V(=-D>pQm080hnxay;U9yi@>z1=j)$?kh>t{Cr=E^bHx`!2)78V>B;g}A-rOn zaE}0|Z_+yc7D9i6;M-O8x%n)FqQ0iMHjJ-$bhxVyzN$VqLJ)!wJ{uwT%DzEJr&V=W z|Jw+I<)eWw9TX=UV6gI45FoX6=$8^6dVSsZbw|X0YY&?#%BI^6)1-fxmzDH|dlUiYA;df}C17@UC%Stiy88@FAWt9s}QE8ef5_{sJ8%&tGLVXRS2y`Al0k5O04`U zgjke^%duX^;o++gU<_d`H=Fd_K?p(+f)Iot1R)4P2tp8o5dI5-q9}@@D2k%|ApZa_ W7HpQt_sfR>0000XjjP0gt=SFOr%o_?*IS-lrcn@K( z-2s@qlf#^U7gbf|R#i*2?XYx;qZf}bnOF6?_QSpr+yEek5Mw-9jLR`w9tlqCwXLO_ zM!!}&S_{x-j{@*Xgwt#3UW0x;TP{i}S+Yy!rI`o4Z21Yd&SU!Lff?}|@`5ViZdZxqP9~Sg~lb{0?lV1V_6NG<_peTx> zD2k#ee~TWQg&+hWlTZR1lVAc1lVAc2AXgzMilQirqA0)R7hJRt!){$@E&u=k07*qo IM6N<$f;|0b?EnA( diff --git a/tests/typ/code/for.typ b/tests/typ/code/for.typ index bca1af46..321b08cf 100644 --- a/tests/typ/code/for.typ +++ b/tests/typ/code/for.typ @@ -57,6 +57,8 @@ #test(type(for v in () []), "template") --- +// Ref: false + // Uniterable expression. // Error: 11-15 cannot loop over boolean #for v in true {} @@ -69,3 +71,36 @@ #test(error, for v in (1, 2, 3) { if v < 2 [Ok] else {error} }) + +--- +// Error: 5 expected identifier +#for + +// Error: 5 expected identifier +{for} + +// Error: 7 expected keyword `in` +#for v + +// Error: 10 expected expression +#for v in + +// Error: 15 expected body +#for v in iter + +// Should output `v in iter`. +// Error: 5 expected identifier +#for +v in iter {} + +// Should output `A thing`. +// Error: 7-10 expected identifier, found string +A#for "v" thing + +// Should output `in iter`. +// Error: 6-9 expected identifier, found string +#for "v" in iter {} + +// Should output `+ b in iter`. +// Error: 7 expected keyword `in` +#for a + b in iter {} diff --git a/tests/typ/code/if.typ b/tests/typ/code/if.typ index 8d07e9b8..dd5d23a0 100644 --- a/tests/typ/code/if.typ +++ b/tests/typ/code/if.typ @@ -61,6 +61,8 @@ } --- +// Ref: false + // Condition must be boolean. // If it isn't, neither branch is evaluated. // Error: 5-14 expected boolean, found string @@ -69,3 +71,29 @@ // Make sure that we don't complain twice. // Error: 5-12 cannot add integer and string #if 1 + "2" {} + +--- +// Error: 4 expected expression +#if + +// Error: 4 expected expression +{if} + +// Error: 6 expected body +#if x + +// Error: 1-6 unexpected keyword `else` +#else {} + +// Should output `x`. +// Error: 4 expected expression +#if +x {} + +// Should output `something`. +// Error: 6 expected body +#if x something + +// Should output `A thing.` +// Error: 20 expected body +A#if false {} #else thing diff --git a/tests/typ/code/invalid.typ b/tests/typ/code/invalid.typ deleted file mode 100644 index 49158a68..00000000 --- a/tests/typ/code/invalid.typ +++ /dev/null @@ -1,100 +0,0 @@ -// Test invalid control syntax. - ---- -// Error: 5 expected identifier -#let - -// Error: 5 expected identifier -{let} - -// Error: 6-9 expected identifier, found string -#let "v" - -// Should output `1`. -// Error: 7 expected semicolon or line break -#let v 1 - -// Error: 9 expected expression -#let v = - -// Should output `= 1`. -// Error: 6-9 expected identifier, found string -#let "v" = 1 - ---- -// Error: 4 expected expression -#if - -// Error: 4 expected expression -{if} - -// Error: 6 expected body -#if x - -// Error: 1-6 unexpected keyword `else` -#else {} - -// Should output `x`. -// Error: 4 expected expression -#if -x {} - -// Should output `something`. -// Error: 6 expected body -#if x something - -// Should output `A thing.` -// Error: 20 expected body -A#if false {} #else thing - ---- -// Error: 7 expected expression -#while - -// Error: 7 expected expression -{while} - -// Error: 9 expected body -#while x - -// Should output `x`. -// Error: 7 expected expression -#while -x {} - -// Should output `something`. -// Error: 9 expected body -#while x something - ---- -// Error: 5 expected identifier -#for - -// Error: 5 expected identifier -{for} - -// Error: 7 expected keyword `in` -#for v - -// Error: 10 expected expression -#for v in - -// Error: 15 expected body -#for v in iter - -// Should output `v in iter`. -// Error: 5 expected identifier -#for -v in iter {} - -// Should output `A thing`. -// Error: 7-10 expected identifier, found string -A#for "v" thing - -// Should output `in iter`. -// Error: 6-9 expected identifier, found string -#for "v" in iter {} - -// Should output `+ b in iter`. -// Error: 7 expected keyword `in` -#for a + b in iter {} diff --git a/tests/typ/code/let.typ b/tests/typ/code/let.typ index 49abec53..1a0bb10e 100644 --- a/tests/typ/code/let.typ +++ b/tests/typ/code/let.typ @@ -61,3 +61,24 @@ Three #test(v3, 3) #test(v4, 4) #test(v5, (1, 2)) + +--- +// Error: 5 expected identifier +#let + +// Error: 5 expected identifier +{let} + +// Error: 6-9 expected identifier, found string +#let "v" + +// Should output `1`. +// Error: 7 expected semicolon or line break +#let v 1 + +// Error: 9 expected expression +#let v = + +// Should output `= 1`. +// Error: 6-9 expected identifier, found string +#let "v" = 1 diff --git a/tests/typ/code/assoc.typ b/tests/typ/code/ops-assoc.typ similarity index 100% rename from tests/typ/code/assoc.typ rename to tests/typ/code/ops-assoc.typ diff --git a/tests/typ/code/prec.typ b/tests/typ/code/ops-prec.typ similarity index 100% rename from tests/typ/code/prec.typ rename to tests/typ/code/ops-prec.typ diff --git a/tests/typ/code/while.typ b/tests/typ/code/while.typ index acf7951e..e55f8f10 100644 --- a/tests/typ/code/while.typ +++ b/tests/typ/code/while.typ @@ -22,10 +22,13 @@ --- // Value of while loops. // Ref: false + #test(type(while false {}), "template") #test(type(while false []), "template") --- +// Ref: false + // Condition must be boolean. // Error: 8-14 expected boolean, found template #while [nope] [nope] @@ -41,3 +44,22 @@ if i < 5 [nope] else { error } }) #test(i, 5) + +--- +// Error: 7 expected expression +#while + +// Error: 7 expected expression +{while} + +// Error: 9 expected body +#while x + +// Should output `x`. +// Error: 7 expected expression +#while +x {} + +// Should output `something`. +// Error: 9 expected body +#while x something