--- source: crates/rome_formatter_test/src/snapshot_builder.rs info: test_file: js/record/syntax.js --- # Input ```js #{} #{ a: 1, b: 2 } #{ a: 1, b: #[2, 3, #{ c: 4 }] } ``` # Prettier differences ```diff --- Prettier +++ Rome @@ -1,3 +1,17 @@ -#{}; -#{ a: 1, b: 2 }; -#{ a: 1, b: #[2, 3, #{ c: 4 }] }; +# +{ +} +# +{ + a: 1, b; + : 2 +} +# +{ + a: 1, b; + : #[2, 3, # + { + c: 4; + } + ] +} ``` # Output ```js # { } # { a: 1, b; : 2 } # { a: 1, b; : #[2, 3, # { c: 4; } ] } ``` # Errors ``` syntax.js:1:1 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected `!` following a `#`, but found none > 1 │ #{} │ ^ 2 │ #{ a: 1, b: 2 } 3 │ #{ a: 1, b: #[2, 3, #{ c: 4 }] } syntax.js:2:2 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected an identifier but instead found '{' 1 │ #{} > 2 │ #{ a: 1, b: 2 } │ ^ 3 │ #{ a: 1, b: #[2, 3, #{ c: 4 }] } 4 │ i Expected an identifier here 1 │ #{} > 2 │ #{ a: 1, b: 2 } │ ^ 3 │ #{ a: 1, b: #[2, 3, #{ c: 4 }] } 4 │ syntax.js:2:1 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Private names are only allowed on the left side of a 'in' expression 1 │ #{} > 2 │ #{ a: 1, b: 2 } │ ^ 3 │ #{ a: 1, b: #[2, 3, #{ c: 4 }] } 4 │ syntax.js:2:2 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Expected a semicolon or an implicit semicolon after a statement, but found none 1 │ #{} > 2 │ #{ a: 1, b: 2 } │ ^ 3 │ #{ a: 1, b: #[2, 3, #{ c: 4 }] } 4 │ i An explicit or implicit semicolon is expected here... 1 │ #{} > 2 │ #{ a: 1, b: 2 } │ ^ 3 │ #{ a: 1, b: #[2, 3, #{ c: 4 }] } 4 │ i ...Which is required to end this statement 1 │ #{} > 2 │ #{ a: 1, b: 2 } │ ^^ 3 │ #{ a: 1, b: #[2, 3, #{ c: 4 }] } 4 │ syntax.js:2:11 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Expected a semicolon or an implicit semicolon after a statement, but found none 1 │ #{} > 2 │ #{ a: 1, b: 2 } │ ^ 3 │ #{ a: 1, b: #[2, 3, #{ c: 4 }] } 4 │ i An explicit or implicit semicolon is expected here... 1 │ #{} > 2 │ #{ a: 1, b: 2 } │ ^ 3 │ #{ a: 1, b: #[2, 3, #{ c: 4 }] } 4 │ i ...Which is required to end this statement 1 │ #{} > 2 │ #{ a: 1, b: 2 } │ ^^^^^ 3 │ #{ a: 1, b: #[2, 3, #{ c: 4 }] } 4 │ syntax.js:3:2 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected an identifier but instead found '{' 1 │ #{} 2 │ #{ a: 1, b: 2 } > 3 │ #{ a: 1, b: #[2, 3, #{ c: 4 }] } │ ^ 4 │ i Expected an identifier here 1 │ #{} 2 │ #{ a: 1, b: 2 } > 3 │ #{ a: 1, b: #[2, 3, #{ c: 4 }] } │ ^ 4 │ syntax.js:3:1 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Private names are only allowed on the left side of a 'in' expression 1 │ #{} 2 │ #{ a: 1, b: 2 } > 3 │ #{ a: 1, b: #[2, 3, #{ c: 4 }] } │ ^ 4 │ syntax.js:3:2 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Expected a semicolon or an implicit semicolon after a statement, but found none 1 │ #{} 2 │ #{ a: 1, b: 2 } > 3 │ #{ a: 1, b: #[2, 3, #{ c: 4 }] } │ ^ 4 │ i An explicit or implicit semicolon is expected here... 1 │ #{} 2 │ #{ a: 1, b: 2 } > 3 │ #{ a: 1, b: #[2, 3, #{ c: 4 }] } │ ^ 4 │ i ...Which is required to end this statement 1 │ #{} 2 │ #{ a: 1, b: 2 } > 3 │ #{ a: 1, b: #[2, 3, #{ c: 4 }] } │ ^^ 4 │ syntax.js:3:11 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Expected a semicolon or an implicit semicolon after a statement, but found none 1 │ #{} 2 │ #{ a: 1, b: 2 } > 3 │ #{ a: 1, b: #[2, 3, #{ c: 4 }] } │ ^ 4 │ i An explicit or implicit semicolon is expected here... 1 │ #{} 2 │ #{ a: 1, b: 2 } > 3 │ #{ a: 1, b: #[2, 3, #{ c: 4 }] } │ ^ 4 │ i ...Which is required to end this statement 1 │ #{} 2 │ #{ a: 1, b: 2 } > 3 │ #{ a: 1, b: #[2, 3, #{ c: 4 }] } │ ^^^^^ 4 │ syntax.js:3:30 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected a statement but instead found ']' 1 │ #{} 2 │ #{ a: 1, b: 2 } > 3 │ #{ a: 1, b: #[2, 3, #{ c: 4 }] } │ ^ 4 │ i Expected a statement here 1 │ #{} 2 │ #{ a: 1, b: 2 } > 3 │ #{ a: 1, b: #[2, 3, #{ c: 4 }] } │ ^ 4 │ ```