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–47 unchanged (47 lines)
48 * For when {@code goog.isArray} returns true.
49 */
50 private final Visitor<JSType> restrictToArrayVisitor =
51 new RestrictByTrueTypeOfResultVisitor() {
52 @Override
53 protected JSType caseTopType(JSType topType) {
54 return topType;
55 }
56
57 @Override
58 public JSType caseObjectType(ObjectType type) {
59 JSType arrayType = getNativeType(ARRAY_TYPE);
60 return arrayType.isSubtype(type) ? arrayType : null;
…lines 61–267 unchanged (207 lines)

After

…lines 1–47 unchanged (47 lines)
48 * For when {@code goog.isArray} returns true.
49 */
50 private final Visitor<JSType> restrictToArrayVisitor =
51 new RestrictByTrueTypeOfResultVisitor() {
52 @Override
53 protected JSType caseTopType(JSType topType) {
54 return topType.isAllType() ?
55 getNativeType(ARRAY_TYPE) : topType;
56 }
57
58 @Override
59 public JSType caseObjectType(ObjectType type) {
60 JSType arrayType = getNativeType(ARRAY_TYPE);
61 return arrayType.isSubtype(type) ? arrayType : null;
…lines 62–268 unchanged (207 lines)

Before

program
block_comment "/*\n * Copyright 2007 The Closure Compiler Authors.\n *\n * Lic"...
package_declaration
package "package"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "type"
; ";"
import_declaration (+23 nodes collapsed)
import_declaration (+23 nodes collapsed)
import_declaration (+23 nodes collapsed)
import_declaration (+23 nodes collapsed)
import_declaration (+23 nodes collapsed)
import_declaration (+23 nodes collapsed)
import_declaration (+23 nodes collapsed)
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "base"
. "."
identifier "Function"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "collect"
. "."
identifier "ImmutableMap"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "CodingConvention"
; ";"
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
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "jstype"
. "."
identifier "FunctionType"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "jstype"
. "."
identifier "JSType"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "jstype"
. "."
identifier "JSTypeRegistry"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "jstype"
. "."
identifier "ObjectType"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "jstype"
. "."
identifier "Visitor"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "Map"
; ";"
block_comment "/**\n * A reverse abstract interpreter (RAI) for specific clo"...
class_declaration
modifiers
public "public"
class "class"
identifier "ClosureReverseAbstractInterpreter"
superclass
extends "extends"
type_identifier "ChainableReverseAbstractInterpreter"
class_body
{ "{"
block_comment "/**\n * For when {@code goog.isArray} returns true.\n */"
field_declaration
modifiers
private "private"
final "final"
generic_type
type_identifier "Visitor"
type_arguments
< "<"
type_identifier "JSType"
> ">"
variable_declarator
identifier "restrictToArrayVisitor"
= "="
object_creation_expression
new "new"
type_identifier "RestrictByTrueTypeOfResultVisitor"
argument_list
( "("
) ")"
class_body
{ "{"
method_declaration
modifiers
marker_annotation
@ "@"
identifier "Override"
protected "protected"
type_identifier "JSType"
identifier "caseTopType"
formal_parameters
( "("
formal_parameter
type_identifier "JSType"
identifier "topType"
) ")"
block
{ "{"
return_statement
return "return"
identifier "topType"
; ";"
} "}"
method_declaration (+45 nodes collapsed)
} "}"
; ";"
block_comment "/**\n * For when {@code goog.isArray} returns false.\n */"
field_declaration (+61 nodes collapsed)
block_comment "/**\n * For when {@code goog.isObject} returns true. This i"...
field_declaration (+91 nodes collapsed)
block_comment "/**\n * For when {@code goog.isObject} returns false.\n */"
field_declaration (+102 nodes collapsed)
block_comment "/** Functions used to restrict types. */"
field_declaration (+21 nodes collapsed)
block_comment "/**\n * Creates a {@link ClosureReverseAbstractInterpreter}"...
constructor_declaration (+860 nodes collapsed)
method_declaration (+254 nodes collapsed)
method_declaration (+109 nodes collapsed)
class_declaration (+60 nodes collapsed)
} "}"

After

program
block_comment "/*\n * Copyright 2007 The Closure Compiler Authors.\n *\n * Lic"...
package_declaration
package "package"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "type"
; ";"
import_declaration (+23 nodes collapsed)
import_declaration (+23 nodes collapsed)
import_declaration (+23 nodes collapsed)
import_declaration (+23 nodes collapsed)
import_declaration (+23 nodes collapsed)
import_declaration (+23 nodes collapsed)
import_declaration (+23 nodes collapsed)
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "base"
. "."
identifier "Function"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "collect"
. "."
identifier "ImmutableMap"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "CodingConvention"
; ";"
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
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "jstype"
. "."
identifier "FunctionType"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "jstype"
. "."
identifier "JSType"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "jstype"
. "."
identifier "JSTypeRegistry"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "jstype"
. "."
identifier "ObjectType"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "jstype"
. "."
identifier "Visitor"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "Map"
; ";"
block_comment "/**\n * A reverse abstract interpreter (RAI) for specific clo"...
class_declaration
modifiers
public "public"
class "class"
identifier "ClosureReverseAbstractInterpreter"
superclass
extends "extends"
type_identifier "ChainableReverseAbstractInterpreter"
class_body
{ "{"
block_comment "/**\n * For when {@code goog.isArray} returns true.\n */"
field_declaration
modifiers
private "private"
final "final"
generic_type
type_identifier "Visitor"
type_arguments
< "<"
type_identifier "JSType"
> ">"
variable_declarator
identifier "restrictToArrayVisitor"
= "="
object_creation_expression
new "new"
type_identifier "RestrictByTrueTypeOfResultVisitor"
argument_list
( "("
) ")"
class_body
{ "{"
method_declaration
modifiers
marker_annotation
@ "@"
identifier "Override"
protected "protected"
type_identifier "JSType"
identifier "caseTopType"
formal_parameters
( "("
formal_parameter
type_identifier "JSType"
identifier "topType"
) ")"
block
{ "{"
return_statement
return "return"
ternary_expression
method_invocation
identifier "topType"
. "."
identifier "isAllType"
argument_list
( "("
) ")"
? "?"
method_invocation
identifier "getNativeType"
argument_list
( "("
identifier "ARRAY_TYPE"
) ")"
: ":"
identifier "topType"
; ";"
} "}"
method_declaration (+45 nodes collapsed)
} "}"
; ";"
block_comment "/**\n * For when {@code goog.isArray} returns false.\n */"
field_declaration (+61 nodes collapsed)
block_comment "/**\n * For when {@code goog.isObject} returns true. This i"...
field_declaration (+91 nodes collapsed)
block_comment "/**\n * For when {@code goog.isObject} returns false.\n */"
field_declaration (+102 nodes collapsed)
block_comment "/** Functions used to restrict types. */"
field_declaration (+21 nodes collapsed)
block_comment "/**\n * Creates a {@link ClosureReverseAbstractInterpreter}"...
constructor_declaration (+860 nodes collapsed)
method_declaration (+254 nodes collapsed)
method_declaration (+109 nodes collapsed)
class_declaration (+60 nodes collapsed)
} "}"