Code view:

A painting is a person's account of this edit as text, recorded independently of the node mapping - a rendering often has several equally defensible answers where the mapping has one. Deletions and insertions carry no position on the opposite side in a painting, so that panel draws no caret for them.

Before

1let x = { b: 1, extra: 2 }
2let xx: { a, b } = { a: 1, ...x, z: 3 } // error for 'z', no error for 'extra'
3

After

1// @strict: false
2let x = { b: 1, extra: 2 }
3let xx: { a, b } = { a: 1, ...x, z: 3 } // error for 'z', no error for 'extra'
4

Before

program
lexical_declaration
let "let"
variable_declarator
identifier "x"
= "="
object
{ "{"
pair
property_identifier "b"
: ":"
number "1"
, ","
pair
property_identifier "extra"
: ":"
number "2"
} "}"
lexical_declaration (+32 nodes collapsed)

After

program
comment "// @strict: false"
lexical_declaration
let "let"
variable_declarator
identifier "x"
= "="
object
{ "{"
pair
property_identifier "b"
: ":"
number "1"
, ","
pair
property_identifier "extra"
: ":"
number "2"
} "}"
lexical_declaration (+32 nodes collapsed)