| ... | ... | @@ -1902,36 +1902,25 @@ fn addSemicolonIfNeeded(c: *Context, node: Node) !void { |
| 1902 | 1902 | .var_decl, .var_simple, .arg_redecl, .alias, .enum_redecl, .block, .empty_block, .block_single, .@"switch" => {}, |
| 1903 | 1903 | .while_true => { |
| 1904 | 1904 | const payload = node.castTag(.while_true).?.data; |
| 1905 | | return addSemicolonIfNotBlock(c, payload, .yes_if); |
| 1905 | return addSemicolonIfNotBlock(c, payload); |
| 1906 | 1906 | }, |
| 1907 | 1907 | .@"while" => { |
| 1908 | 1908 | const payload = node.castTag(.@"while").?.data; |
| 1909 | | return addSemicolonIfNotBlock(c, payload.body, .yes_if); |
| 1909 | return addSemicolonIfNotBlock(c, payload.body); |
| 1910 | 1910 | }, |
| 1911 | 1911 | .@"if" => { |
| 1912 | 1912 | const payload = node.castTag(.@"if").?.data; |
| 1913 | 1913 | if (payload.@"else") |some| |
| 1914 | | return addSemicolonIfNotBlock(c, some, .no_if); |
| 1915 | | return addSemicolonIfNotBlock(c, payload.then, .no_if); |
| 1914 | return addSemicolonIfNeeded(c, some); |
| 1915 | return addSemicolonIfNotBlock(c, payload.then); |
| 1916 | 1916 | }, |
| 1917 | 1917 | else => _ = try c.addToken(.semicolon, ";"), |
| 1918 | 1918 | } |
| 1919 | 1919 | } |
| 1920 | 1920 | |
| 1921 | | fn addSemicolonIfNotBlock(c: *Context, node: Node, if_needs_semicolon: enum{ yes_if, no_if}) !void { |
| 1921 | fn addSemicolonIfNotBlock(c: *Context, node: Node) !void { |
| 1922 | 1922 | switch (node.tag()) { |
| 1923 | 1923 | .block, .empty_block, .block_single => {}, |
| 1924 | | .@"if" => { |
| 1925 | | if (if_needs_semicolon == .yes_if) { |
| 1926 | | _ = try c.addToken(.semicolon, ";"); |
| 1927 | | return; |
| 1928 | | } |
| 1929 | | |
| 1930 | | const payload = node.castTag(.@"if").?.data; |
| 1931 | | if (payload.@"else") |some| |
| 1932 | | return addSemicolonIfNotBlock(c, some, .no_if); |
| 1933 | | return addSemicolonIfNotBlock(c, payload.then, .no_if); |
| 1934 | | }, |
| 1935 | 1924 | else => _ = try c.addToken(.semicolon, ";"), |
| 1936 | 1925 | } |
| 1937 | 1926 | } |