This mapping has 1 multi-map group: several pairings are equally correct there. The code view shows one arbitrary valid pairing, not the only one.

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

…lines 1–101 unchanged (101 lines)
102 // a.x = function() {}; // or
103 // var a = {x: function() {}};
104 int pType = parent.getType();
105 if (!(pType == Token.BLOCK ||
106 pType == Token.SCRIPT ||
107 pType == Token.NAME ||
108 pType == Token.ASSIGN)) {
109 return false;
110 }
111 }
112
113 if (parent != null && parent.getType() == Token.ASSIGN) {
114 Node lhs = parent.getFirstChild();
115 Node rhs = lhs.getNext();
116
…lines 117–191 unchanged (75 lines)

After

…lines 1–101 unchanged (101 lines)
102 // a.x = function() {}; // or
103 // var a = {x: function() {}};
104 int pType = parent.getType();
105 if (!(pType == Token.BLOCK ||
106 pType == Token.SCRIPT ||
107 pType == Token.NAME ||
108 pType == Token.ASSIGN ||
109 pType == Token.OBJECTLIT)) {
110 return false;
111 }
112 }
113
114 if (parent != null && parent.getType() == Token.ASSIGN) {
115 Node lhs = parent.getFirstChild();
116 Node rhs = lhs.getNext();
117
…lines 118–192 unchanged (75 lines)

Before

program
block_comment "/*\n * Copyright 2007 Google Inc.\n *\n * Licensed under the Ap"...
package_declaration
package "package"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "CheckLevel"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "NodeTraversal"
. "."
identifier "Callback"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "JSDocInfo"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "Node"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "Token"
; ";"
block_comment "/**\n * Checks for certain uses of the {@code this} keyword t"...
class_declaration
modifiers
final "final"
class "class"
identifier "CheckGlobalThis"
super_interfaces
implements "implements"
type_list
type_identifier "Callback"
class_body
{ "{"
field_declaration (+25 nodes collapsed)
field_declaration
modifiers
private "private"
final "final"
type_identifier "AbstractCompiler"
variable_declarator
identifier "compiler"
; ";"
field_declaration
modifiers
private "private"
final "final"
type_identifier "CheckLevel"
variable_declarator
identifier "level"
; ";"
block_comment "/**\n * If {@code assignLhsChild != null}, then the node be"...
field_declaration
modifiers
private "private"
type_identifier "Node"
variable_declarator
identifier "assignLhsChild"
= "="
null_literal "null"
; ";"
constructor_declaration (+33 nodes collapsed)
block_comment "/**\n * Since this pass reports errors only when a global {"...
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "shouldTraverse"
formal_parameters
( "("
formal_parameter
type_identifier "NodeTraversal"
identifier "t"
, ","
formal_parameter
type_identifier "Node"
identifier "n"
, ","
formal_parameter
type_identifier "Node"
identifier "parent"
) ")"
block
{ "{"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
method_invocation
identifier "n"
. "."
identifier "getType"
argument_list
( "("
) ")"
== "=="
field_access
identifier "Token"
. "."
identifier "FUNCTION"
) ")"
block
{ "{"
line_comment "// Don't traverse functions that are constructors or have th"...
line_comment "// or @override annotation."
local_variable_declaration
type_identifier "JSDocInfo"
variable_declarator
identifier "jsDoc"
= "="
method_invocation
identifier "getFunctionJsDocInfo"
argument_list
( "("
identifier "n"
) ")"
; ";"
if_statement (+55 nodes collapsed)
line_comment "// Don't traverse functions unless they would normally"
line_comment "// be able to have a @this annotation associated with them. "...
line_comment "// var a = function() { }; // or"
line_comment "// function a() {} // or"
line_comment "// a.x = function() {}; // or"
line_comment "// var a = {x: function() {}};"
local_variable_declaration
integral_type
int "int"
variable_declarator
identifier "pType"
= "="
method_invocation
identifier "parent"
. "."
identifier "getType"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
unary_expression
! "!"
parenthesized_expression
( "("
binary_expression any 4:5
binary_expression any 4:5
binary_expression any 4:5
binary_expression any 4:5
identifier "pType"
== "=="
field_access
identifier "Token"
. "."
identifier "BLOCK"
|| "||"
binary_expression
identifier "pType"
== "=="
field_access
identifier "Token"
. "."
identifier "SCRIPT"
|| "||"
binary_expression
identifier "pType"
== "=="
field_access
identifier "Token"
. "."
identifier "NAME"
|| "||"
binary_expression
identifier "pType"
== "=="
field_access
identifier "Token"
. "."
identifier "ASSIGN"
) ")"
) ")"
block
{ "{"
return_statement
return "return"
false "false"
; ";"
} "}"
} "}"
if_statement (+221 nodes collapsed)
return_statement
return "return"
true "true"
; ";"
} "}"
method_declaration (+92 nodes collapsed)
method_declaration (+53 nodes collapsed)
block_comment "/**\n * Gets a function's JSDoc information, if it has any."...
method_declaration (+173 nodes collapsed)
} "}"

After

program
block_comment "/*\n * Copyright 2007 Google Inc.\n *\n * Licensed under the Ap"...
package_declaration
package "package"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "CheckLevel"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "NodeTraversal"
. "."
identifier "Callback"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "JSDocInfo"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "Node"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "Token"
; ";"
block_comment "/**\n * Checks for certain uses of the {@code this} keyword t"...
class_declaration
modifiers
final "final"
class "class"
identifier "CheckGlobalThis"
super_interfaces
implements "implements"
type_list
type_identifier "Callback"
class_body
{ "{"
field_declaration (+25 nodes collapsed)
field_declaration
modifiers
private "private"
final "final"
type_identifier "AbstractCompiler"
variable_declarator
identifier "compiler"
; ";"
field_declaration
modifiers
private "private"
final "final"
type_identifier "CheckLevel"
variable_declarator
identifier "level"
; ";"
block_comment "/**\n * If {@code assignLhsChild != null}, then the node be"...
field_declaration
modifiers
private "private"
type_identifier "Node"
variable_declarator
identifier "assignLhsChild"
= "="
null_literal "null"
; ";"
constructor_declaration (+33 nodes collapsed)
block_comment "/**\n * Since this pass reports errors only when a global {"...
method_declaration
modifiers
public "public"
boolean_type "boolean"
identifier "shouldTraverse"
formal_parameters
( "("
formal_parameter
type_identifier "NodeTraversal"
identifier "t"
, ","
formal_parameter
type_identifier "Node"
identifier "n"
, ","
formal_parameter
type_identifier "Node"
identifier "parent"
) ")"
block
{ "{"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
method_invocation
identifier "n"
. "."
identifier "getType"
argument_list
( "("
) ")"
== "=="
field_access
identifier "Token"
. "."
identifier "FUNCTION"
) ")"
block
{ "{"
line_comment "// Don't traverse functions that are constructors or have th"...
line_comment "// or @override annotation."
local_variable_declaration
type_identifier "JSDocInfo"
variable_declarator
identifier "jsDoc"
= "="
method_invocation
identifier "getFunctionJsDocInfo"
argument_list
( "("
identifier "n"
) ")"
; ";"
if_statement (+55 nodes collapsed)
line_comment "// Don't traverse functions unless they would normally"
line_comment "// be able to have a @this annotation associated with them. "...
line_comment "// var a = function() { }; // or"
line_comment "// function a() {} // or"
line_comment "// a.x = function() {}; // or"
line_comment "// var a = {x: function() {}};"
local_variable_declaration
integral_type
int "int"
variable_declarator
identifier "pType"
= "="
method_invocation
identifier "parent"
. "."
identifier "getType"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
unary_expression
! "!"
parenthesized_expression
( "("
binary_expression any 4:5
binary_expression any 4:5
binary_expression any 4:5
binary_expression any 4:5
binary_expression any 4:5
identifier "pType"
== "=="
field_access
identifier "Token"
. "."
identifier "BLOCK"
|| "||"
binary_expression
identifier "pType"
== "=="
field_access
identifier "Token"
. "."
identifier "SCRIPT"
|| "||"
binary_expression
identifier "pType"
== "=="
field_access
identifier "Token"
. "."
identifier "NAME"
|| "||"
binary_expression
identifier "pType"
== "=="
field_access
identifier "Token"
. "."
identifier "ASSIGN"
|| "||"
binary_expression
identifier "pType"
== "=="
field_access
identifier "Token"
. "."
identifier "OBJECTLIT"
) ")"
) ")"
block
{ "{"
return_statement
return "return"
false "false"
; ";"
} "}"
} "}"
if_statement (+221 nodes collapsed)
return_statement
return "return"
true "true"
; ";"
} "}"
method_declaration (+92 nodes collapsed)
method_declaration (+53 nodes collapsed)
block_comment "/**\n * Gets a function's JSDoc information, if it has any."...
method_declaration (+173 nodes collapsed)
} "}"