From 16bc2336941456629ad5d1b2c925d36bcdc558c0 Mon Sep 17 00:00:00 2001 From: Harsh Kapse Date: Sun, 20 Sep 2026 11:43:33 +0530 Subject: [PATCH] fix(postprocess): suppress single-child wrappers with trailing delimiters Single-child statement wrappers ending in a semicolon were never suppressed because suppression required exact EndByte equality. Relax the check to cover single-child and scaffolding wrappers, removing phantom insert and delete boxes on moved lines. --- internal/postprocess/collapsing.go | 19 +++++++++--------- internal/postprocess/collapsing_test.go | 17 ++++++++-------- .../expected_actions.json.gz | Bin 530 -> 526 bytes .../expected_ui.json.gz | Bin 1263 -> 1255 bytes .../expected_actions.json.gz | Bin 1657 -> 1644 bytes .../zig_clap_more_than_2/expected_ui.json.gz | Bin 11825 -> 11815 bytes .../expected_actions.json.gz | Bin 1112 -> 1108 bytes .../expected_ui.json.gz | Bin 9884 -> 9881 bytes .../expected_actions.json.gz | Bin 624 -> 616 bytes .../expected_ui.json.gz | Bin 3337 -> 3328 bytes .../expected_actions.json.gz | Bin 575 -> 568 bytes .../expected_ui.json.gz | Bin 3091 -> 3086 bytes 12 files changed, 17 insertions(+), 19 deletions(-) diff --git a/internal/postprocess/collapsing.go b/internal/postprocess/collapsing.go index 5a544720..cf8ff389 100644 --- a/internal/postprocess/collapsing.go +++ b/internal/postprocess/collapsing.go @@ -227,8 +227,9 @@ func suppressInlineParentRedundancy( } } -// suppressCoextensiveWrappers climbs single-line parents and suppresses wrapper actions -// that are truly coextensive with the child (exact same byte range). +// suppressCoextensiveWrappers walks single-line parents and drops wrapper actions +// that share the child's start byte, like single-child statements with trailing +// semicolons or scaffolding. func suppressCoextensiveWrappers( node *treesitter.ASTNode, actionMap map[*treesitter.ASTNode]*actions.Action, @@ -242,14 +243,12 @@ func suppressCoextensiveWrappers( if r != nil && r.IsPair(parent.Type) { continue } - // Strict opening invariant: parent must not start before child (protects {hash}, [array], (expr)) - if parent.StartByte == node.StartByte { - // Only suppress if parent is truly coextensive (exact same EndByte) and is a single-child or scaffolding wrapper - if parent.EndByte == node.EndByte && (len(parent.Children) <= 1 || parent.IsScaffolding()) { - parentAct := actionMap[parent] - if parentAct != nil && !suppressed[parentAct] && !parentAct.Subtree { - suppressed[parentAct] = true - } + // Parent can't start before the child: keeps opening delimiters like {hash}, [array], or (expr) intact. + if parent.StartByte == node.StartByte && + (len(parent.Children) <= 1 || parent.IsScaffolding() || parent.EndByte == node.EndByte) { + parentAct := actionMap[parent] + if parentAct != nil && !suppressed[parentAct] && !parentAct.Subtree { + suppressed[parentAct] = true } } } diff --git a/internal/postprocess/collapsing_test.go b/internal/postprocess/collapsing_test.go index f889707f..641d9531 100644 --- a/internal/postprocess/collapsing_test.go +++ b/internal/postprocess/collapsing_test.go @@ -536,8 +536,7 @@ func TestInlineParentSuppression(t *testing.T) { } }) - // (h) Trailing statement terminator (semicolon) in single-child expression_statement - // must STILL suppress the parent wrapper Insert even though parent.EndByte > dstChild.EndByte. + // (h) Trailing semicolons shouldn't keep single-child wrappers alive when their child moves. t.Run("moved-child-suppresses-inline-parent-insert-with-semicolon", func(t *testing.T) { srcChild := &treesitter.ASTNode{ Type: "assignment_expression", @@ -580,17 +579,17 @@ func TestInlineParentSuppression(t *testing.T) { moveSurvives = true } } - if !parentSurvives { - t.Error("expected parent expression_statement Insert with trailing semicolon to survive for delimiter coverage") + if parentSurvives { + t.Error("expected parent expression_statement Insert with trailing semicolon to be suppressed") } if !moveSurvives { t.Error("expected child assignment_expression Move to survive") } }) - // (i) Bidirectional symmetry: source-side single-line statement wrapper Delete is preserved - // when parent contains trailing delimiter punctuation (e.g. semicolon). - t.Run("moved-child-preserves-source-side-parent-delete-with-semicolon", func(t *testing.T) { + // (i) Symmetrical delete: source-side single-line statement wrappers with trailing + // semicolons get dropped too when their child moves. + t.Run("moved-child-suppresses-source-side-parent-delete-with-semicolon", func(t *testing.T) { srcChild := &treesitter.ASTNode{ Type: "assignment_expression", StartByte: 100, EndByte: 120, @@ -633,8 +632,8 @@ func TestInlineParentSuppression(t *testing.T) { moveSurvives = true } } - if !srcParentSurvives { - t.Error("expected source-side parent expression_statement Delete with trailing semicolon to survive") + if srcParentSurvives { + t.Error("expected source-side parent expression_statement Delete with trailing semicolon to be suppressed") } if !moveSurvives { t.Error("expected child Move action to survive") diff --git a/tests/testdata/php_guzzle_stream_read_buffer/expected_actions.json.gz b/tests/testdata/php_guzzle_stream_read_buffer/expected_actions.json.gz index f47fd60da8fe0bac1dea23a672d70fc033ef626c..8ba7e6b9295235b91774d697eb88dffb191ed62e 100644 GIT binary patch literal 526 zcmV+p0`dJHiwFP!00000|GZYgj+-zLz2_@NoGWc?Ac1^AEA>>Vr>a5*4~->aBYTLN zuJ+$6NJ_K2m<3Ar5+#1)@cibzF^?O7;EdKOqk{tkXBK>DmqbCzXcrvd+XevOvHR?S zwp3|{mb&r|(MDo$=qmvNve>Q!q9n9^VGCU94#1zaMb|z%b0i2)sOi4Wk+78I7iz2H zZOZO2)Urnyk8i+JPp1~P{kM693UjJWqva$z5%U$jxk>tEiHZ3LP9eg= z$VX)Vx=nX2;w!icD~DN8iN@iGRQvr5sa_b#H*Lm@#98Dw5>Iw-7-@x@Ay-=1%e0t< zzL;?~Fcp>Gr#oZiY$0NPMk-Bf4yb=uVt2alAac zd`WiG(4XBuviOZ8u|oQHE4>t@5;;~a_V56obWt@DfsP2Zu>?wY-#;2ha6}=|f+|4~ zC7OXiX)y7OxgYV`sMSIcLx^Dv+Oz%8hLx%ZAS;hwSgOe@0+LJ Q0RRC1|BU|ai@ys1008a&*#H0l literal 530 zcmV+t0`2`DiwFP!00000|IAjwj+-zLz2_@NoGWc?LIU}MR_duzPgR8s9vVx;M)nXj zUG2YDkd$RNF$*bK?Pax@HzaS~yl3;c00<6foiaMuLU3Tgr=}!wQbxOA3qKYB0FUk8 z4rp4Hc4(<>ZxL-I2HUO^ARvoPB@hLn?HU{4ShWEDt}MFdw^K)gaF3e$eU5~sG&@q$ z9W5i?!%)j-B<5$}siRW~+kD$JLb=&jrq*&4ot2MH7)O_Mj8kXjmWv+rA%snsXA;J* zO!8rc?WPD^ot-I>t?>=L_vV0O)XuOl7OzbwoKwGaGgbPmynjFzB|g35cpkm)nyj9c zyP_#&I>gj3-s!0wI`s$TNd023e#r&hmf1DRFHO>wB|1vI`kdgG60y4*Y)X81?2S*f zn#WzL7(;}GD<6@~<(hgc;xo7kONVJ*irV3TRGZBNsa_e$ciIdYiL;g8NIYKO|7OUP z7WOzUW}z=;oXvFK-jMy!w=&McaYxlVUk+2U%aWyUy3Kl~n_*NiV&CfDh%TEUx+71Q zD7rnn{Fdw{p+CF-WbqqGVu|$sR(dT;DKab@?BM~v=)9~Y0__kgV+oXQ|Nm?p!48E) z3#tG`pd4sJEhw=NbxEfO3S--%%Xhd(Fh%?6`?s&RygRVfG|SEtp@Fx@^>XllI4y7i U@N@C>HvjY1dUd5; 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 delta 1455 zcmV;g1yK6z4EYR@Lcp8T}K zUfJcFn~S+gras|dz;;Q;VCRc@yd~XQkU9xphx^UtL>F%Q77!v{ufL8TQGEC;r?A1)@i`ZF%Cf$Nn8^bf5!#$_)BJviQtfS6p!AKPo!k#m=XrUJbp($k&>BX z3VSo-HJN8zFrP@t%rOf?P(^a2T5f-s!yR~*t3n>__ z(@pg$F=q2ptpC7vZ$J4myL zzylBw_vFFH0DDhf*ZthGe}!X50w5er#-t}+cevQq@9AZ8pYWl^x4UQE&oN&?vvrQi zF%xo!S0&o$uGOlq_6cS;fd{de0F0|zYDWbIFyL`>{oXKh%p_3KS4$_fosW?Hv(lL9 zJlA$!(b;DDNKZ9$K1dTe^ zKQ5|iqBEB+($}k-)c!5a5}#@kAVq*`qeXgGYVV$9(nW*rG?iEaturb~Uz4!=N2Oh1 zpqH%Tmo5gWFO{@re@^aACXst&67RSsl@xC_L2zsHay3npN|E)ye<8uaU8~i(G?fG@ z7^$SkIRNS6Vs!K_M)s*zB&E#fV?6BQW5+&aqmo82go2FS$%Z>K-jR<@p55xg1H8Zj zOv$(}vfUG7suSm!DY=ar5||1bU7>@;;UB0t8t;R80$$$tf8r-=cprX#=xm@!x?_uH zYN-qF25)Ek(YoTU4c!_dX_v|Ne&kMs7#y;W zx&N$qcyz1Jf1R=@b=sn9r0i`m`OBnp{ioAbx!gXWNp%rjqni?A8ciM^(c`Z^n-GAJ zF%d=WCQjbDO{}h9clI8wlr8k<@0WjQv$}dR#7bGUEUx}vv&AIQ3soBTW4SWu6`FW= zPYi_x5w{$jf5(=pJ`-h3KCiY5x<-XdCQcVF&2FEse_weZh&ec67E6A%Lo+)(e(*)5 z7<>(f5V+m5W$zf{_0tShT$&`hsy{Bhme`U3FM)xob>?R;L!44WGp(ZbrxaLJLXTyMoIWP^A;G?xn658&R{2f~gb){jF zQ1E3cBtFyOK4_REG5n%Aac&MBf`&;V!R{|@`C65CjCp;@|M~Aynakf*aaoEhL_S=h zZC*C{&1)V?p?;~P=kCuSj7(DarL8PH7f;<79hqd%I8C*5GMwQ8p|2N@{{;X5|Nl#_ JZK{b_001(0(8mA( diff --git a/tests/testdata/zig_clap_more_than_2/expected_ui.json.gz b/tests/testdata/zig_clap_more_than_2/expected_ui.json.gz index 49aaad006b9cff9921eee93bfe29265ebfb848f1..3024e9e1db54cb88195628e80b159509b4c46173 100644 GIT binary patch delta 4451 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 Meufl#f~v~@00+VCN&o-= diff --git a/tests/testdata/zig_clap_short_only_params/expected_actions.json.gz b/tests/testdata/zig_clap_short_only_params/expected_actions.json.gz index 47c6b2baed3bd5da8e26377dccd5899883257555..40abf42e9479dd091907b077078d12f2a4ed9c8b 100644 GIT binary patch delta 1061 zcmV+=1ls%92-FA?ABzY8000000RP;Y&2Hm15P*>qBY)advArDHvK__lB``P>W9HKg z=STi_gHZG&ja7|~?osqaqTB9Bluk9;M)&B`4MGTg>;DddPE~0ujqBBWiEb(x-4B`w zMb60XBoa#}&7jx`p4YwLNf;%HTIQ83YhgtH)f;-&3FGqO*>&1+mNL2_l)8EqWi)<~ zd>;&23nwGB8);HeH|5^}8hqf(V>~N-)Hyi))Hj&&Qe{4u% z9>Sa+hxxI2l7~PphbLuzG`{Eqh@jJw}Zzdgm}op zsHv+wWFJgxR7?hdB|isbZ`7-`7zl{rxRTc8+h9_>E!|>+_k>cru7o==m>%2Osak27 zTW6GBZR*sbkaefDSS%JZaf@a%e<2q7KY4#zbf-nJb6R$%Wr-Fo#QE{## ze2;_T3FicZ;hYXV!Q0pQQSB5ZDF<2^O0p!Iq|TF=q!2nBds@2JYdv|le|D;9Rqd3{ zm#r>?h#3bODNfjV@Cs|yN_VyMkiLU40JhhjOXyrfw?{O4SVV!WWE{*&=IhjtYO}O* zO4RDBGtGOqBHdnBO)+l z4hhb*7oX}J@{D18rlrgzpr=lC2JY*8+(xB3$5|lNIU)a}RHr24f6z*fWc*Cq*MlQ) zk2%49>atUv5(ZUuO4#I8{S?rXraC1Is_K4jBT~JOa4^+hIb2OP#|+QmdNQB9a0ksv zueoqDGKXGTF>+O)r!Cx!B*2c?&uvWM?jjs6+ye(VrYc#>Q#bs3qN)_u$qM8{Fa>U9 zg6X)Zf=wK^T_QLJeq-dty&{d(>nCKu)q9PHrhJ$iF|I^EwT@dalay^k$aFx=mvS_=bc{xK|hZ= f+oO7`F7U_0xk2dj&G&x;00960s;EiG<0$|DFF+F= delta 1065 zcmV+^1lIf12-pY`ABzY8000000RP;Y&2Hm15XX@cBY$eD#9j_<`9rby5*Xyf_|H!> zn&HsjZV-x|q_L{e(LIWuNOapRiPEV?+vpyBx!*R71k zFFW4{K`3isq;?}E6?Ieo9ng@Z4A8&`Pkz+USoH!d9u{p|yy$SIl{atx<2;euAb&I@ zF%Mx*55xS}Jjs0^7joGc>2t|Q*BYI_!Uo;rJo7t8F!lI$2w%0_<59CX_Uqs=2_YV` zFly>559xzxjf%+tu;j;p>_xq*#Xvv|%ayb)-vpE5&D{+)ctq@vIgXyuYovM|V zxphYA)mxid6teD&7K_DVCT`JeCV#|2|G(d_7Ts!5Y^|2vYFVO1i!m*&GyMm-WmR=n zRrO-kTJ=@_XLomZw`m&uo`dUxkt$&>=T2(ux z^JS~cAY#UWMv4=58oa_u zoD#MADotK18|bQI7K4$_JT>nPem+4+EB8fNnKx@`gljryoHU~LlW#GO)4&;t&4IY@ zw&tfH-)do=_X+wPa)M`xU4Nb4@rMRgN$u29Z8|xi*5XkHJmVDTi{p$Zo)-RML6Z}l zD3(gr)qX;G%*SxsI#7_n$)S&M@a)iY7xW)jd-r#b`Ybv|yRQk~;0km{U}pD5KS$$vOBk|P;E(e!oi z2;3nj*iT({s#C(Cs!j=;ys94qdeT&x~hIb2WXlNauw zob;LtHzRZC(u$F*0zGZvW+VY-#C~pL3U?RbaN!;}z%fLusl#YPsUvz?+~!pO!?w5p23TQkREp>e+f8ul&reZD;b!9hv#n8bCkHS zIpEdd24^1`=i}z^?=g$HGTh;gb=-jDJv!*?!W};DPyaF*Jz{>C7(KAQ{_C}8XpTxOvb5&ZiHt6c4e5fp&B-bi*2QIQ6-8!p z&^ac`j^!wl+_K1Jxh9vxX3TZ$_dH(b)bCVBod5d0^2hu2ecqqX=ll75-|z3do0bfQ#t(_`<4AcE-d^LJ*9;kHvXrAC~s9A+3dH;&CO)H>s;eq zN19cyUSl3E-Qicmqd3NBPrN;rH`ZIym?!IZq6`n21&;{)oF?w`q=Q9Hqpi@8(TRB3 zn@eWW30v9Vc>KiZ8^6YJdSlR#z%NAh)~_+GkurWs)-RNe)`z@$$nz2qNkIY?B8ehk z5=p@Vdm<@BP)FJ*&~4TrLReLp(DOKUTP^jDr?(>;Pn?DJ4$&AM#{8#tNORZOKH!ALE^T5NdcpMEcxn1`Aw`^v;EfdvpMm81KgpIBTQJ>`(Ky!T z=Ry%iHNM;rhz6twivtn7p<-dN^tComyFV~q8uz~>OgCO4c{4h9ctEawboKDSvi8v( z!_T!$(r?rAb~@!;#E&9^n@s{b7fQ~q?@WTfR8CK#=l$rE!^DrC2yPAt=-hf>wFwqc z{Nl=0>)5jBgDp)|8~Na;Yv!5VQ7q69Uzn}%?GuIb5r-A#CV3RxTKTrqMl&W&hjS<< zO`mf+Ce4`B9Fw+ilJ&kEz?kyRjY!`?Qr<^ zrq01kq=(VbOr)ogM<&wC=u{^1m{CwB(%a}vCi1vZL?-ftQFJEqq|uE`p>=vL>}h}B(cXe0%^d5O&|?=19#09RQIA&ylGLMvK$`FvCXiGMfIXO?}}=Ly2};SOY81cR4=cqsHj$}6IE2NtW&70UR|eGS-rMy zPi6Iny0APtpRwK2p~|hm(xKJO9PQBWR)BVx<8HpwLD9Wnr^70Db1Me}_W~;ib9ZxV z2b_C>wZjp2r_uZS2@Bw!@+^6MPYg@mz%!C1kMt~M$#3$MPnI|K#3aja@r+ECH}xz{ zmN)a1XUlK%#IVOZwwxN*GEm6MO8Dkt9TPj-(zA#CQ{wh5>zddVv;~{jaT33wE%=Z+ zTy+yrQf*lsb~gH~uiYc;ZS`f|c5Z07f1tMc1#%KYg+m=SowQ32l6DLQJ;!K0>~8g1 zuZcT(P_slX`W)HPmGz+ z(R-(C>Br-LBK1AR>>cTvX`{m(yC2TD(PGp1TLx!8C-wWmKtnF>vJLK->2xiXnTCj} zGhioBKx@#{B{b_E_L;=JAjJo%tPiMX7~8d=;GYbBB7c%XbUc6q_adea`z<=j*Y0<0 zih7K<9TBbd3Ch$eSv_W8!%bg1an&gk93^fyVF5bH|0tAZJyZchATRY)p7d$YHwpN) z3}ufluXaaknL2_cK|sk1Mc+^MI56;Y0${{v&i29h*W+frWK22h$K$`LIGJUF`&hOQ zw*I?*+yTz7GoDVvbWS>OP5#-b_bo$#th-HsWp^!XtGm(N%BBt(8tGw))*${>OXK! zSZ%rM)^pX@uChz(pO41e7YbhI>8dcP711sDCg9g+1p7c%-86eXaGO3O*n1T~Szjh* z-2!gYbnGF5St{U6c+T(p;J-L>3irW(J)3C1(ng)ckfH1L#eQpY>3$vc?19(hA zBh_BkVdc?TzIFxJH1(HLQR*DnLBQkbq`u$KD)o;UH*z%0-TGG}&v{!PVLdHDI0r)E z)(W-x2J=JLY|FtaJmoK<-f~xPRhwH%)tjS9{_ad!wCi>^G!k>Rf<|O6ysiGyaK-ki zg$ZygI|q3D8Noh~6^?;d0v>-xu=gr}vPu#edZ5SCutx>Vng`Bwz|b9isqTOw2@S13 zooKm**u<`+sca^4fUrsrdn$^FQH%h7UVJySyc)6&I|m)<%YTGTR7XxlDHsAjOywdMc-`aqZ+2*7^=4Ud#Bs!h}hbbSshtvyK{yqvNk z3!ORm{GKWEKB2Iuk865U2h&hRQ(-P_!&3Sqdx)MkE8lTf2#t zj#GjFbD`5{&bt%=CI(`Hd-phX?fa8|`4f%>|RO2#+#`whCL1vRI(&$h4OYx*ztK2yynea3+DE8-HPf zQnO1}pt58>9M_b~wjwhYG+H?RUJ^a5OH{9E%L&d06*Z!-^jH|5hnOHyAXqwB@5xWKXTcJ$P8kmg?d3r^q4Mj1)lZV4_hum z$nnCN=jbWJj!y(VYY0SDJgeOg+X%Gag{y?oQ$`*6#$20PVL~-96-8OH7>*mxW&4vE z&l)WRz*ZBwL=8M^&<`sUA)fG3A80kUH8eyWJHb+Fap?+CmMFk+v$*UFz$uz693PiN z&w>+I;aT&@SdBh}#iMYQ3-pw4@O&$-%?eS%KA_|$WyumaZa$aIATz9+ECfKwH*lgh zo~1;_n)M-`03{dcDf94rEZ4?Zln@J)oK}`Bh2s>s>=ZKNBGBbYN%UMeaXp^3hKzLr zy5xtegwsQ&Zx&S2+^pwST z{vp5-QG!ydOBYpHvK)?E$z>MfUNhFdI+_=Eng3|NbI~EI?w-W+7~WJ6W;eBmTw5N5j(3u*ZAv2 zLZVRD3aM5wo7Vi*P*$JwRmj)0FI$j%5s+}ykA+kV*oM~p@1U`L&Q~BMd z@)58NV&@f5CI7E!U$`Lkcnd?T2L*jW{7dwF|7+S8F36?6 zCQT@;HQyYDDx`*?$Po~zzi2rWCT`M)q1y6~pvX_DMP$)s$k)XGPkB_JcySXF#%;?d zp~%J58nWmrB%`lM3yN>e-v#3qQt2piBn0j+`kMHcJi`6ZiFP4RSfas`9Sa$MYbF(q znMwP?8fDEHAtT~ko^aU5@5X!)wh%H{!lTHFfUlIsm3^9IVWwvA$8TR2`G`WqwBcdcw80|H^LiwoSL9pLg~HvQwF1( d{(Y@kTmz+_H{l0-hbEIHJsaIYm_K{ge*sms-o^j` literal 9884 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 diff --git a/tests/testdata/zig_zls_build_build_gen/expected_actions.json.gz b/tests/testdata/zig_zls_build_build_gen/expected_actions.json.gz index 981e65568b5d61270fdfa15a62586fdfe7f57008..9752411e400f7618547810989cb04fc6f8fb2e15 100644 GIT binary patch delta 592 zcmV-W01n2~iBY*WmWIIt;t9|zh6cM^%SmFgrZdNOg6CY;28K3aBBP6(hv1MHa zdlFn|@U2-=2UpgW4ff>6ju1lL+P__(+4@pnpxxZAS9JlwzS~Dg;0!b?K@P{-+;%pR z*Hat0C{wCjLsq~+E2G+P?(MTq8JFd+uGuXG7rhu%MHi7FyMG4WJ3S|5pmM{C)X{+% z5|r!u@EcbU$`nx$%lKYFZOdz}!fvtFMK&f4PnNefDekqkGH&|fE@033Rf;ob=#~qx zF8gp`D*p}l&!mFydM6IhQ&tv?o5BxTEzlOSgH~q?cwSf(qcx-RP*Wb8)Hrx)K8gy7 zD2DH#kXvz9$baM~Y(ssZYhXPX>Wo#x! zm*|ysQ`@02so4^SWt0v;vcO&8jVVQD@qeEJj78WJ@tJbk_6rnKDvYc7BCB7wH3y~j zq){d)MyX(YroMlyZFqtW`Z!$L;7q$ld5ZOwVB#~M!+$({PA@0-J|~jt;y69#l6$u7 zLw+b<$0hrB=Ehxe=s^$TBQBYxHz0qR`h3dDqIrn+|L-(d9IXeZLx|hJf$6X%wCKjs ziagNb;RsrsM^A+o$CAhROb&P{w4#lp<#Xq8A#k(=kDm!GCPECYWSyS^-e|Fnqs2YY z5;7b?t4a4x=^4;Uu~#}gx%Z-*LW^%4E#ZNd3{xB}nWoQ#mZVr=rP%m|C^n8(;(=Ct eE5|)rv7i&s+7a?|_x?8k0RR8Z-7Xw(82|u{P9A9h delta 600 zcmV-e0;m1x1n>lqBY$NfvYn`_)xLWLiU{2>Eb#($ZlcKJgyZ9H>>1v6gajARrflk9 zPl5{#zO_T@V9Ta9!Jhos5kkmY_t^*9sV~h1y2;&m-4qb)`+0-}Rzo`yC(FWr`?>WqhxoG3C{(upexyBAb$io8_!cihFIHjGMl=514a)m16Z7`r!hM z%|1LZmH&o^&!mFy22UKJr>qTVJBJ^1x1chR9V&G;fcwIt7~M0v3^nDkwZ_6r`%_d% zL@|6vh1@o01Aiw!VJl)Bksk46!OY9x&q;$Zlg9uqhDCBR3AZ6~I9{n7sFk<6yle@xeOds$Im}L$-+@nq^b!H(-aaA{35xnab z9vfsd*eNC@lnMj^rEauAa;1l>(u9xz-qdl%SN3z7wXS*Q+hObFaJGP6wS!^ruwx9QG&1Yj@(Qkp0czRN z3sPG(pi0XbE@H9axw#A)bh@ZgK(Zouiattt0}W2_eD$#`)O|SA9*hL?wRss&EQ3X!|{gjy*^)xgQ^N7(b!-3oMB~p$#Aenr<8wv28 z3MKp)=%Icibcn))E&v{I-)awNpbN=lj1Qrw;b-(AYCXh&!_;j=aRxS1=~%B4Zlfmy zy(ZL2UtGkTeXN9bA2?xu++}763LzPSH(HypPH@qd$;kMX*0W zJ^{uMyn}9n&@ZTL72Hmg1px7SD7aL(TFwIm8^;AdTX_}M(9ZB+O4!#jlWd#OX<8KV ztqQ>vEAMw}=va90BASzLzTG+ zjnbJH(?gZwgl6exZ^~blc?qr3_q-=-vQpKb-u*JBvm!rraiED`ndUCoGO%s$HT53w zvDlMg_s@=elzX=*X0ihEmH+aNP$;V9a;Ht1!s#*V=l0xY<2hGcgth5N%AIr1b9U*g z{W;%8u55^h_+fRVhdur7NNUOCB6r&@PF;sc?rvmRI0>DiVs|U+5vQ(Gbk==~HN{Ej z5`FJB)d*Z=L77$@n-ODa(W+y48wCdb344~dHMliK5?vDQi^j|1W$>J>H$#6N1Eg8|s!Un3@*FWIOoAPw+*5uxf1SYR-zgo_2N}O+63eQ0Tz^ zPFYzYSneyu(}XOPE*WLWdFf(_Pd+9kN_=VTesGOb<7g^vP#7+H>osgmc~D1qImyf_ Wy=(&+@ylmmnEMkt)7EdIqW%Td1cIFa delta 1081 zcmYk5drT7t0LIH}h$XOyqeeC$BW%eAb|llngqDrz7IDB}$mG=wGhWShJObT#++iFN z=cCbvVE`%A6lNH0NGWA>^vsMFBs>%pD72RX6)3$su-a>Tz1|#&iQj+U_xt_(H66Zm z7>c;OkFgiJb7ksUzOFHOcdV=Et}5^a-9NglIN*CS^vajXyCkz1U2n3>cV4B8x9!dW$c+^_1<$t5e#d9X*cJj$^zYVOhTI%3YtA(O0 z207QL;94y<%916pes5BZ%f^cQnX#eA&z33|AAQk(e>zkjTRSpaH8|HieEB{0P@%P< zhpHk{(KZd=MPB7}+9wTc6(0ldyk5&8c!kO&%~+eBErjPm71?UFMy3yF8LB$@BrcTX4&heR|w&!;25d0ZyOXU#0uV~ ziit3kqd`jHCF&$Og>gK27x++^9;k&MflBhKy~6+u?TJq@^$?<`{;=n1kjJ2a$kPKT zm`V;904H7m?v}$UG8R?W!ZK>lY$P-Sn8bt&AYs7e6sAE6NP`g8*flsPM1=^2ajSmV zl)eG#tza-pEK=e6{rDi6G=!WZ>PyADUI!r&b;w-?>o8&#oH5{cs4fkXMJ5U1K6^a| zrlZ6P)uqS(CX-Z1HBnyTD_Uo~ z>p`;XS=3fo%2tO+1_bs3+;(kTr`Gw4>p{~iU|GO%u(hgWB^K z*Y8d=rv-K8JJuNwn=^u>`G?HO51TWCdPlOn|NJdAy8F~f_WQxsU$aIIV6BW8Q&GV9 za~36Vn;rFa)fpl3_NJpIc|wGAVun4ts$<3fG|hG>f%(di&5t`d=iz_PhwO{#jQ>`L z+^d#;0!?^dEZ{VLPA{=`#LsSgCU6D^oMGy|>sD2y`4uw#vm=KqGX08~UuAa>SDf+t znc0#ZsjkR95g{3K@Wg38Z0`oC81jjGE1`!|p!-lf>=WnR;1O^6#Ci3J!+byWYEfqR zD*Yp~C7{zSK|FR_n*{W{dIk?7(R&kO-O@X{n<$kojtcx5Ld=WFwK3}m2XwlYH~28M z#BBIWK7iMiyvwnt&LpP!CKRU?YHHx5Yf2xjZF=qWEfz2p9Q@;sXZ4n@?@wK}mNDn%2I)K5TX`i<{WGBxu82}LyiwFP!00000|J0Yuj+-zPhW9*$#kvcO%`H-&q^gjClc`mYjcf-s8qK>` z(1t>~Q3=kn(*Kq%}$8?I!yL1Bl(Z~YOgEmzWn8}uVU2%)#(a}@fk zTpG}JxIQRSH4tvbn+SzgLw^#otpz<^?1g zW1J@w5oB|e2#ycR`xsEmG)Q}4NR?3aZ%+(S;fjG^N={=?h97|8U?Q!78lWV(60R2N7B*yq3pdb*iAcmGTJw&Ya@6Kf(Pxd6_4EtBr z!4mQnY?X$&RCbc-eF=YB4aWG>h_lF7^sb1DaxbXLEJon5V>9!^vDOYy1iG z^wF8ZjqWxZj)l^12MfK!@}!u=&H_#o{OFinTXJ;^rNQpBT-cR`(+JFV<^LeQ@YU1Q zY3tJL)SJu}_E$XA;??0XQFH7*nJCwW_L`^(n;8?8X8FJ33K04ky#EaV0RR6G#!7YA G5&!@ij2lh> literal 575 zcmV-F0>J$riwFP!00000|J0Y;j@v90h41qe$k+dcIrtRmf0C-Qu)Q-yWxxVrH5$#k zS9T-EGcm-|#yQ+X3JXPhe{2>jZySW74vZCAMOzegIQp+&;<8?dfCy9fD4{S%!VSZK=+Qu8Ljg%R(g#7KIbk*c|?e=IvDn&rN7(tO6w zAHh2>g-1rbPZXn9^23`TzT|~>Pgt~|-b-Fwjr3B>34msp-8o!+(dHTT&Tul<%Nl>e z0{7^`;Kq0JhSQ+*uY-d=VFg-Dh zbh*MCtY%&AZ&8aQeWZ;hSCX}nNXT$`Jdt1AoP9n{yP8w N|NrY;=t?LQ003u`B`yE} diff --git a/tests/testdata/zig_zls_build_log_warning/expected_ui.json.gz b/tests/testdata/zig_zls_build_log_warning/expected_ui.json.gz index e4c3dfe201394abf1fe88eef60c95fc4ec5f1f2f..c51d9f3dfe7a3f0197f1b444200e792aeb3548dc 100644 GIT binary patch delta 38 wcmV+>0NMYO7>*dQ@CzP1oxH)xtKe^6@Xy~AAO88T00030|A4{6q0&(R0D>G7&;S4c delta 43 zcmV+`0M!4E7?T*V@Cze7opRspU0;#6MtS}G?Z!WU$9(wbzXAXN|NkF06*&x20085+ B6h{C6