--- source: crates/rome_formatter_test/src/snapshot_builder.rs info: test_file: js/bind-expressions/bind_parens.js --- # Input ```js (a || b)::c; a || (b::c); ::obj.prop; (void 0)::func(); (+0)::is(-0); a::(b.c); a::(b.c()); a::b.c(); a::(b.c()()); a::((b.c())()); a::(b.c())(); a::(b.c().d); a::(c().d.e); a::(b()); a::(b::c()); a::(b()::c); a::(b().c::d); a::(b.c::d); a::(b::c.d); a::(b.c::d::e); a::(b::c::d); a::(b::c::d.e); a::((b::c::d).e); a::(void 0); a::(b.c()::d.e); a::(b.c::d.e); a::(b.c::d.e)::f.g; b.c::d.e; (b.c::d).e; (b::c::d).e; new (a::b)(); new f(a::b); f[a::b]; f[a::b()]; ``` # Prettier differences ```diff --- Prettier +++ Rome @@ -1,34 +1,66 @@ -(a || b)::c; -a || b::c; -::obj.prop; -(void 0)::func(); -(+0)::is(-0); -a::b.c; -a::(b.c()); -a::b.c(); -a::(b.c()()); -a::(b.c()()); -a::(b.c())(); -a::(b.c().d); -a::(c().d.e); -a::(b()); -a::(b::c()); -a::(b()::c); -a::(b().c::d); -a::(b.c::d); -a::(b::c.d); -a::(b.c::d::e); -a::(b::c::d); -a::(b::c::d.e); -a::(b::c::d).e; -a::(void 0); -a::(b.c()::d.e); -a::(b.c::d.e); -a::(b.c::d.e)::f.g; -b.c::d.e; -(b.c::d).e; -(b::c::d).e; -new (a::b)(); +a || b; +::c +a || (b +::c) +::obj.prop +void 0; +::func() ++0; +::is(-0) +a: +:(b.c) +a: +:(b.c()) +a: +:b.c() +a: +:(b.c()()) +a: +:((b.c())()) +a: +:(b.c())() +a: +:(b.c().d) +a: +:(c().d.e) +a: +:(b()) +a: +:(b::c()) +a: +:(b()::c) +a: +:(b().c::d) +a: +:(b.c::d) +a: +:(b::c.d) +a: +:(b.c::d::e) +a: +:(b::c::d) +a: +:(b::c::d.e) +a: +:((b::c::d).e) +a: +:(void 0) +a: +:(b.c()::d.e) +a: +:(b.c::d.e) +a: +:(b.c::d.e)::f.g +b.c; +::d.e +(b.c +::d).e +(b::c::d) +.e +new (a +::b)() new f(a::b); -f[a::b]; -f[a::b()]; +f[a +::b] +f[a +::b()] ``` # Output ```js a || b; ::c a || (b ::c) ::obj.prop void 0; ::func() +0; ::is(-0) a: :(b.c) a: :(b.c()) a: :b.c() a: :(b.c()()) a: :((b.c())()) a: :(b.c())() a: :(b.c().d) a: :(c().d.e) a: :(b()) a: :(b::c()) a: :(b()::c) a: :(b().c::d) a: :(b.c::d) a: :(b::c.d) a: :(b.c::d::e) a: :(b::c::d) a: :(b::c::d.e) a: :((b::c::d).e) a: :(void 0) a: :(b.c()::d.e) a: :(b.c::d.e) a: :(b.c::d.e)::f.g b.c; ::d.e (b.c ::d).e (b::c::d) .e new (a ::b)() new f(a::b); f[a ::b] f[a ::b()] ``` # Errors ``` bind_parens.js:1:9 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Expected a semicolon or an implicit semicolon after a statement, but found none > 1 │ (a || b)::c; │ ^ 2 │ a || (b::c); 3 │ ::obj.prop; i An explicit or implicit semicolon is expected here... > 1 │ (a || b)::c; │ ^ 2 │ a || (b::c); 3 │ ::obj.prop; i ...Which is required to end this statement > 1 │ (a || b)::c; │ ^^^^^^^^^ 2 │ a || (b::c); 3 │ ::obj.prop; bind_parens.js:2:8 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected `)` but instead found `:` 1 │ (a || b)::c; > 2 │ a || (b::c); │ ^ 3 │ ::obj.prop; 4 │ (void 0)::func(); i Remove : bind_parens.js:3:1 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected a statement but instead found '::obj.prop' 1 │ (a || b)::c; 2 │ a || (b::c); > 3 │ ::obj.prop; │ ^^^^^^^^^^ 4 │ (void 0)::func(); 5 │ (+0)::is(-0); i Expected a statement here 1 │ (a || b)::c; 2 │ a || (b::c); > 3 │ ::obj.prop; │ ^^^^^^^^^^ 4 │ (void 0)::func(); 5 │ (+0)::is(-0); bind_parens.js:4:9 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Expected a semicolon or an implicit semicolon after a statement, but found none 2 │ a || (b::c); 3 │ ::obj.prop; > 4 │ (void 0)::func(); │ ^ 5 │ (+0)::is(-0); 6 │ a::(b.c); i An explicit or implicit semicolon is expected here... 2 │ a || (b::c); 3 │ ::obj.prop; > 4 │ (void 0)::func(); │ ^ 5 │ (+0)::is(-0); 6 │ a::(b.c); i ...Which is required to end this statement 2 │ a || (b::c); 3 │ ::obj.prop; > 4 │ (void 0)::func(); │ ^^^^^^^^^ 5 │ (+0)::is(-0); 6 │ a::(b.c); bind_parens.js:5:5 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Expected a semicolon or an implicit semicolon after a statement, but found none 3 │ ::obj.prop; 4 │ (void 0)::func(); > 5 │ (+0)::is(-0); │ ^ 6 │ a::(b.c); 7 │ a::(b.c()); i An explicit or implicit semicolon is expected here... 3 │ ::obj.prop; 4 │ (void 0)::func(); > 5 │ (+0)::is(-0); │ ^ 6 │ a::(b.c); 7 │ a::(b.c()); i ...Which is required to end this statement 3 │ ::obj.prop; 4 │ (void 0)::func(); > 5 │ (+0)::is(-0); │ ^^^^^ 6 │ a::(b.c); 7 │ a::(b.c()); bind_parens.js:6:3 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected a statement but instead found ':' 4 │ (void 0)::func(); 5 │ (+0)::is(-0); > 6 │ a::(b.c); │ ^ 7 │ a::(b.c()); 8 │ a::b.c(); i Expected a statement here 4 │ (void 0)::func(); 5 │ (+0)::is(-0); > 6 │ a::(b.c); │ ^ 7 │ a::(b.c()); 8 │ a::b.c(); bind_parens.js:7:3 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected a statement but instead found ':' 5 │ (+0)::is(-0); 6 │ a::(b.c); > 7 │ a::(b.c()); │ ^ 8 │ a::b.c(); 9 │ a::(b.c()()); i Expected a statement here 5 │ (+0)::is(-0); 6 │ a::(b.c); > 7 │ a::(b.c()); │ ^ 8 │ a::b.c(); 9 │ a::(b.c()()); bind_parens.js:8:3 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected a statement but instead found ':' 6 │ a::(b.c); 7 │ a::(b.c()); > 8 │ a::b.c(); │ ^ 9 │ a::(b.c()()); 10 │ a::((b.c())()); i Expected a statement here 6 │ a::(b.c); 7 │ a::(b.c()); > 8 │ a::b.c(); │ ^ 9 │ a::(b.c()()); 10 │ a::((b.c())()); bind_parens.js:9:3 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected a statement but instead found ':' 7 │ a::(b.c()); 8 │ a::b.c(); > 9 │ a::(b.c()()); │ ^ 10 │ a::((b.c())()); 11 │ a::(b.c())(); i Expected a statement here 7 │ a::(b.c()); 8 │ a::b.c(); > 9 │ a::(b.c()()); │ ^ 10 │ a::((b.c())()); 11 │ a::(b.c())(); bind_parens.js:10:3 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected a statement but instead found ':' 8 │ a::b.c(); 9 │ a::(b.c()()); > 10 │ a::((b.c())()); │ ^ 11 │ a::(b.c())(); 12 │ a::(b.c().d); i Expected a statement here 8 │ a::b.c(); 9 │ a::(b.c()()); > 10 │ a::((b.c())()); │ ^ 11 │ a::(b.c())(); 12 │ a::(b.c().d); bind_parens.js:11:3 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected a statement but instead found ':' 9 │ a::(b.c()()); 10 │ a::((b.c())()); > 11 │ a::(b.c())(); │ ^ 12 │ a::(b.c().d); 13 │ a::(c().d.e); i Expected a statement here 9 │ a::(b.c()()); 10 │ a::((b.c())()); > 11 │ a::(b.c())(); │ ^ 12 │ a::(b.c().d); 13 │ a::(c().d.e); bind_parens.js:12:3 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected a statement but instead found ':' 10 │ a::((b.c())()); 11 │ a::(b.c())(); > 12 │ a::(b.c().d); │ ^ 13 │ a::(c().d.e); 14 │ a::(b()); i Expected a statement here 10 │ a::((b.c())()); 11 │ a::(b.c())(); > 12 │ a::(b.c().d); │ ^ 13 │ a::(c().d.e); 14 │ a::(b()); bind_parens.js:13:3 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected a statement but instead found ':' 11 │ a::(b.c())(); 12 │ a::(b.c().d); > 13 │ a::(c().d.e); │ ^ 14 │ a::(b()); 15 │ a::(b::c()); i Expected a statement here 11 │ a::(b.c())(); 12 │ a::(b.c().d); > 13 │ a::(c().d.e); │ ^ 14 │ a::(b()); 15 │ a::(b::c()); bind_parens.js:14:3 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected a statement but instead found ':' 12 │ a::(b.c().d); 13 │ a::(c().d.e); > 14 │ a::(b()); │ ^ 15 │ a::(b::c()); 16 │ a::(b()::c); i Expected a statement here 12 │ a::(b.c().d); 13 │ a::(c().d.e); > 14 │ a::(b()); │ ^ 15 │ a::(b::c()); 16 │ a::(b()::c); bind_parens.js:15:3 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected a statement but instead found ':' 13 │ a::(c().d.e); 14 │ a::(b()); > 15 │ a::(b::c()); │ ^ 16 │ a::(b()::c); 17 │ a::(b().c::d); i Expected a statement here 13 │ a::(c().d.e); 14 │ a::(b()); > 15 │ a::(b::c()); │ ^ 16 │ a::(b()::c); 17 │ a::(b().c::d); bind_parens.js:16:3 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected a statement but instead found ':' 14 │ a::(b()); 15 │ a::(b::c()); > 16 │ a::(b()::c); │ ^ 17 │ a::(b().c::d); 18 │ a::(b.c::d); i Expected a statement here 14 │ a::(b()); 15 │ a::(b::c()); > 16 │ a::(b()::c); │ ^ 17 │ a::(b().c::d); 18 │ a::(b.c::d); bind_parens.js:17:3 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected a statement but instead found ':' 15 │ a::(b::c()); 16 │ a::(b()::c); > 17 │ a::(b().c::d); │ ^ 18 │ a::(b.c::d); 19 │ a::(b::c.d); i Expected a statement here 15 │ a::(b::c()); 16 │ a::(b()::c); > 17 │ a::(b().c::d); │ ^ 18 │ a::(b.c::d); 19 │ a::(b::c.d); bind_parens.js:18:3 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected a statement but instead found ':' 16 │ a::(b()::c); 17 │ a::(b().c::d); > 18 │ a::(b.c::d); │ ^ 19 │ a::(b::c.d); 20 │ a::(b.c::d::e); i Expected a statement here 16 │ a::(b()::c); 17 │ a::(b().c::d); > 18 │ a::(b.c::d); │ ^ 19 │ a::(b::c.d); 20 │ a::(b.c::d::e); bind_parens.js:19:3 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected a statement but instead found ':' 17 │ a::(b().c::d); 18 │ a::(b.c::d); > 19 │ a::(b::c.d); │ ^ 20 │ a::(b.c::d::e); 21 │ a::(b::c::d); i Expected a statement here 17 │ a::(b().c::d); 18 │ a::(b.c::d); > 19 │ a::(b::c.d); │ ^ 20 │ a::(b.c::d::e); 21 │ a::(b::c::d); bind_parens.js:20:3 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected a statement but instead found ':' 18 │ a::(b.c::d); 19 │ a::(b::c.d); > 20 │ a::(b.c::d::e); │ ^ 21 │ a::(b::c::d); 22 │ a::(b::c::d.e); i Expected a statement here 18 │ a::(b.c::d); 19 │ a::(b::c.d); > 20 │ a::(b.c::d::e); │ ^ 21 │ a::(b::c::d); 22 │ a::(b::c::d.e); bind_parens.js:21:3 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected a statement but instead found ':' 19 │ a::(b::c.d); 20 │ a::(b.c::d::e); > 21 │ a::(b::c::d); │ ^ 22 │ a::(b::c::d.e); 23 │ a::((b::c::d).e); i Expected a statement here 19 │ a::(b::c.d); 20 │ a::(b.c::d::e); > 21 │ a::(b::c::d); │ ^ 22 │ a::(b::c::d.e); 23 │ a::((b::c::d).e); bind_parens.js:22:3 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected a statement but instead found ':' 20 │ a::(b.c::d::e); 21 │ a::(b::c::d); > 22 │ a::(b::c::d.e); │ ^ 23 │ a::((b::c::d).e); 24 │ a::(void 0); i Expected a statement here 20 │ a::(b.c::d::e); 21 │ a::(b::c::d); > 22 │ a::(b::c::d.e); │ ^ 23 │ a::((b::c::d).e); 24 │ a::(void 0); bind_parens.js:23:3 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected a statement but instead found ':' 21 │ a::(b::c::d); 22 │ a::(b::c::d.e); > 23 │ a::((b::c::d).e); │ ^ 24 │ a::(void 0); 25 │ a::(b.c()::d.e); i Expected a statement here 21 │ a::(b::c::d); 22 │ a::(b::c::d.e); > 23 │ a::((b::c::d).e); │ ^ 24 │ a::(void 0); 25 │ a::(b.c()::d.e); bind_parens.js:24:3 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected a statement but instead found ':' 22 │ a::(b::c::d.e); 23 │ a::((b::c::d).e); > 24 │ a::(void 0); │ ^ 25 │ a::(b.c()::d.e); 26 │ a::(b.c::d.e); i Expected a statement here 22 │ a::(b::c::d.e); 23 │ a::((b::c::d).e); > 24 │ a::(void 0); │ ^ 25 │ a::(b.c()::d.e); 26 │ a::(b.c::d.e); bind_parens.js:25:3 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected a statement but instead found ':' 23 │ a::((b::c::d).e); 24 │ a::(void 0); > 25 │ a::(b.c()::d.e); │ ^ 26 │ a::(b.c::d.e); 27 │ a::(b.c::d.e)::f.g; i Expected a statement here 23 │ a::((b::c::d).e); 24 │ a::(void 0); > 25 │ a::(b.c()::d.e); │ ^ 26 │ a::(b.c::d.e); 27 │ a::(b.c::d.e)::f.g; bind_parens.js:26:3 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected a statement but instead found ':' 24 │ a::(void 0); 25 │ a::(b.c()::d.e); > 26 │ a::(b.c::d.e); │ ^ 27 │ a::(b.c::d.e)::f.g; 28 │ b.c::d.e; i Expected a statement here 24 │ a::(void 0); 25 │ a::(b.c()::d.e); > 26 │ a::(b.c::d.e); │ ^ 27 │ a::(b.c::d.e)::f.g; 28 │ b.c::d.e; bind_parens.js:27:3 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected a statement but instead found ':' 25 │ a::(b.c()::d.e); 26 │ a::(b.c::d.e); > 27 │ a::(b.c::d.e)::f.g; │ ^ 28 │ b.c::d.e; 29 │ (b.c::d).e; i Expected a statement here 25 │ a::(b.c()::d.e); 26 │ a::(b.c::d.e); > 27 │ a::(b.c::d.e)::f.g; │ ^ 28 │ b.c::d.e; 29 │ (b.c::d).e; bind_parens.js:28:4 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Expected a semicolon or an implicit semicolon after a statement, but found none 26 │ a::(b.c::d.e); 27 │ a::(b.c::d.e)::f.g; > 28 │ b.c::d.e; │ ^ 29 │ (b.c::d).e; 30 │ (b::c::d).e; i An explicit or implicit semicolon is expected here... 26 │ a::(b.c::d.e); 27 │ a::(b.c::d.e)::f.g; > 28 │ b.c::d.e; │ ^ 29 │ (b.c::d).e; 30 │ (b::c::d).e; i ...Which is required to end this statement 26 │ a::(b.c::d.e); 27 │ a::(b.c::d.e)::f.g; > 28 │ b.c::d.e; │ ^^^^ 29 │ (b.c::d).e; 30 │ (b::c::d).e; bind_parens.js:29:5 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected `)` but instead found `:` 27 │ a::(b.c::d.e)::f.g; 28 │ b.c::d.e; > 29 │ (b.c::d).e; │ ^ 30 │ (b::c::d).e; 31 │ new (a::b)(); i Remove : bind_parens.js:30:3 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Type annotations are a TypeScript only feature. Convert your file to a TypeScript file or remove the syntax. 28 │ b.c::d.e; 29 │ (b.c::d).e; > 30 │ (b::c::d).e; │ ^ 31 │ new (a::b)(); 32 │ new f(a::b); i TypeScript only syntax bind_parens.js:30:4 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected `,` but instead found `:` 28 │ b.c::d.e; 29 │ (b.c::d).e; > 30 │ (b::c::d).e; │ ^ 31 │ new (a::b)(); 32 │ new f(a::b); i Remove : bind_parens.js:30:5 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected `,` but instead found `c` 28 │ b.c::d.e; 29 │ (b.c::d).e; > 30 │ (b::c::d).e; │ ^ 31 │ new (a::b)(); 32 │ new f(a::b); i Remove c bind_parens.js:30:6 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Type annotations are a TypeScript only feature. Convert your file to a TypeScript file or remove the syntax. 28 │ b.c::d.e; 29 │ (b.c::d).e; > 30 │ (b::c::d).e; │ ^ 31 │ new (a::b)(); 32 │ new f(a::b); i TypeScript only syntax bind_parens.js:30:7 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected `,` but instead found `:` 28 │ b.c::d.e; 29 │ (b.c::d).e; > 30 │ (b::c::d).e; │ ^ 31 │ new (a::b)(); 32 │ new f(a::b); i Remove : bind_parens.js:30:8 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected `,` but instead found `d` 28 │ b.c::d.e; 29 │ (b.c::d).e; > 30 │ (b::c::d).e; │ ^ 31 │ new (a::b)(); 32 │ new f(a::b); i Remove d bind_parens.js:30:10 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected `=>` but instead found `.` 28 │ b.c::d.e; 29 │ (b.c::d).e; > 30 │ (b::c::d).e; │ ^ 31 │ new (a::b)(); 32 │ new f(a::b); i Remove . bind_parens.js:31:7 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected `)` but instead found `:` 29 │ (b.c::d).e; 30 │ (b::c::d).e; > 31 │ new (a::b)(); │ ^ 32 │ new f(a::b); 33 │ f[a::b]; i Remove : bind_parens.js:32:8 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected `,` but instead found `:` 30 │ (b::c::d).e; 31 │ new (a::b)(); > 32 │ new f(a::b); │ ^ 33 │ f[a::b]; 34 │ f[a::b()]; i Remove : bind_parens.js:33:4 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected `]` but instead found `:` 31 │ new (a::b)(); 32 │ new f(a::b); > 33 │ f[a::b]; │ ^ 34 │ f[a::b()]; 35 │ i Remove : bind_parens.js:34:4 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected `]` but instead found `:` 32 │ new f(a::b); 33 │ f[a::b]; > 34 │ f[a::b()]; │ ^ 35 │ i Remove : ```