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–554 unchanged (554 lines)
555 // First, check to see if the property is implemented
556 // on a superclass.
557 JSType propType = ownerType.getPropertyType(propName);
558 if (propType instanceof FunctionType) {
559 return (FunctionType) propType;
560 }
561 // If it's not, then check to see if it's implemented
562 // on an implemented interface.
563
564 return null;
565 }
566
567 /**
568 * Gets an enum type. If the definition is correct, the object literal used
569 * to define the enum is traversed to gather the elements name, and this
…lines 570–1324 unchanged (755 lines)

After

…lines 1–553 unchanged (553 lines)
554 ObjectType ownerType, String propName) {
555 // First, check to see if the property is implemented
556 // on a superclass.
557 JSType propType = ownerType.getPropertyType(propName);
558 if (propType instanceof FunctionType) {
559 return (FunctionType) propType;
560 } else {
561 // If it's not, then check to see if it's implemented
562 // on an implemented interface.
563 for (ObjectType iface :
564 ownerType.getCtorImplementedInterfaces()) {
565 propType = iface.getPropertyType(propName);
566 if (propType instanceof FunctionType) {
567 return (FunctionType) propType;
568 }
569 }
570 }
571
572 return null;
573 }
574
575 /**
576 * Gets an enum type. If the definition is correct, the object literal used
…lines 577–1332 unchanged (756 lines)

Before

program
block_comment "/*\n * Copyright 2004 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"
static "static"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "TypeCheck"
. "."
identifier "ENUM_DUP"
; ";"
import_declaration
import "import"
static "static"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "TypeCheck"
. "."
identifier "ENUM_NOT_CONSTANT"
; ";"
import_declaration
import "import"
static "static"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "TypeCheck"
. "."
identifier "MULTIPLE_VAR_DEF"
; ";"
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 (+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 (+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 (+23 nodes collapsed)
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "annotations"
. "."
identifier "VisibleForTesting"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "javax"
. "."
identifier "annotation"
. "."
identifier "Nullable"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "base"
. "."
identifier "Preconditions"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "collect"
. "."
identifier "Lists"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "collect"
. "."
identifier "Maps"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "CodingConvention"
. "."
identifier "DelegateRelationship"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "CodingConvention"
. "."
identifier "ObjectLiteralCast"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "CodingConvention"
. "."
identifier "SubclassRelationship"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "CodingConvention"
. "."
identifier "SubclassType"
; ";"
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 "AbstractShallowCallback"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "Scope"
. "."
identifier "Var"
; ";"
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"
; ";"
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 "EnumType"
; ";"
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 "FunctionParamBuilder"
; ";"
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 "JSTypeNative"
; ";"
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
identifier "java"
. "."
identifier "util"
. "."
identifier "List"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "Map"
; ";"
block_comment "/**\n * Creates the symbol table of variables available in th"...
class_declaration
modifiers
final "final"
class "class"
identifier "TypedScopeCreator"
super_interfaces
implements "implements"
type_list
type_identifier "ScopeCreator"
class_body
{ "{"
field_declaration (+25 nodes collapsed)
field_declaration (+25 nodes collapsed)
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 "TypeValidator"
variable_declarator
identifier "validator"
; ";"
field_declaration
modifiers
private "private"
final "final"
type_identifier "CodingConvention"
variable_declarator
identifier "codingConvention"
; ";"
field_declaration
modifiers
private "private"
final "final"
type_identifier "JSTypeRegistry"
variable_declarator
identifier "typeRegistry"
; ";"
field_declaration (+22 nodes collapsed)
constructor_declaration (+26 nodes collapsed)
constructor_declaration (+63 nodes collapsed)
block_comment "/**\n * Creates a scope with all types declared. Declares n"...
method_declaration (+269 nodes collapsed)
block_comment "/**\n * Create the outermost scope. This scope contains nat"...
method_declaration (+236 nodes collapsed)
method_declaration (+86 nodes collapsed)
method_declaration (+41 nodes collapsed)
method_declaration (+40 nodes collapsed)
block_comment "/**\n * Given a node, determines whether that node names a "...
method_declaration (+131 nodes collapsed)
class_declaration
modifiers
private "private"
abstract "abstract"
class "class"
identifier "AbstractScopeBuilder"
super_interfaces
implements "implements"
type_list
scoped_type_identifier
type_identifier "NodeTraversal"
. "."
type_identifier "Callback"
class_body
{ "{"
block_comment "/**\n * The scope that we're builidng.\n */"
field_declaration
modifiers
final "final"
type_identifier "Scope"
variable_declarator
identifier "scope"
; ";"
block_comment "/**\n * The current source file that we're in.\n */"
field_declaration
modifiers
private "private"
type_identifier "String"
variable_declarator
identifier "sourceName"
= "="
null_literal "null"
; ";"
constructor_declaration (+22 nodes collapsed)
method_declaration (+130 nodes collapsed)
method_declaration (+24 nodes collapsed)
block_comment "/**\n * Returns the type specified in a JSDoc annotation "...
method_declaration (+39 nodes collapsed)
method_declaration (+394 nodes collapsed)
block_comment "/**\n * Defines variable(s) or modifies types based on th"...
method_declaration (+598 nodes collapsed)
block_comment "/**\n * Defines a variable based on the {@link Token#NAME"...
method_declaration (+307 nodes collapsed)
block_comment "/**\n * Gets the function type from the function node and"...
method_declaration (+719 nodes collapsed)
block_comment "/**\n * Find the function that's being overridden on this"...
method_declaration
modifiers
private "private"
type_identifier "FunctionType"
identifier "findOverriddenFunction"
formal_parameters
( "("
formal_parameter
type_identifier "ObjectType"
identifier "ownerType"
, ","
formal_parameter
type_identifier "String"
identifier "propName"
) ")"
block
{ "{"
line_comment "// First, check to see if the property is implemented"
line_comment "// on a superclass."
local_variable_declaration
type_identifier "JSType"
variable_declarator
identifier "propType"
= "="
method_invocation
identifier "ownerType"
. "."
identifier "getPropertyType"
argument_list
( "("
identifier "propName"
) ")"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
instanceof_expression
identifier "propType"
instanceof "instanceof"
type_identifier "FunctionType"
) ")"
block
{ "{"
return_statement
return "return"
cast_expression
( "("
type_identifier "FunctionType"
) ")"
identifier "propType"
; ";"
} "}"
line_comment "// If it's not, then check to see if it's implemented"
line_comment "// on an implemented interface."
return_statement
return "return"
null_literal "null"
; ";"
} "}"
block_comment "/**\n * Gets an enum type. If the definition is correct, "...
method_declaration (+423 nodes collapsed)
block_comment "/**\n * Defines a typed variable. The defining node will "...
method_declaration (+39 nodes collapsed)
block_comment "/**\n * Defines a typed variable. The defining node will "...
method_declaration (+614 nodes collapsed)
} "}"
block_comment "/**\n * A shallow traversal of the global scope to build up"...
class_declaration (+3266 nodes collapsed)
line_comment "// end GlobalScopeBuilder"
block_comment "/**\n * A shallow traversal of a local scope to find all ar"...
class_declaration (+583 nodes collapsed)
line_comment "// end LocalScopeBuilder"
} "}"

After

program
block_comment "/*\n * Copyright 2004 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"
static "static"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "TypeCheck"
. "."
identifier "ENUM_DUP"
; ";"
import_declaration
import "import"
static "static"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "TypeCheck"
. "."
identifier "ENUM_NOT_CONSTANT"
; ";"
import_declaration
import "import"
static "static"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "TypeCheck"
. "."
identifier "MULTIPLE_VAR_DEF"
; ";"
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 (+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 (+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 (+23 nodes collapsed)
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "annotations"
. "."
identifier "VisibleForTesting"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "javax"
. "."
identifier "annotation"
. "."
identifier "Nullable"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "base"
. "."
identifier "Preconditions"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "collect"
. "."
identifier "Lists"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "collect"
. "."
identifier "Maps"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "CodingConvention"
. "."
identifier "DelegateRelationship"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "CodingConvention"
. "."
identifier "ObjectLiteralCast"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "CodingConvention"
. "."
identifier "SubclassRelationship"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "CodingConvention"
. "."
identifier "SubclassType"
; ";"
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 "AbstractShallowCallback"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "Scope"
. "."
identifier "Var"
; ";"
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"
; ";"
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 "EnumType"
; ";"
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 "FunctionParamBuilder"
; ";"
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 "JSTypeNative"
; ";"
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
identifier "java"
. "."
identifier "util"
. "."
identifier "List"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "Map"
; ";"
block_comment "/**\n * Creates the symbol table of variables available in th"...
class_declaration
modifiers
final "final"
class "class"
identifier "TypedScopeCreator"
super_interfaces
implements "implements"
type_list
type_identifier "ScopeCreator"
class_body
{ "{"
field_declaration (+25 nodes collapsed)
field_declaration (+25 nodes collapsed)
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 "TypeValidator"
variable_declarator
identifier "validator"
; ";"
field_declaration
modifiers
private "private"
final "final"
type_identifier "CodingConvention"
variable_declarator
identifier "codingConvention"
; ";"
field_declaration
modifiers
private "private"
final "final"
type_identifier "JSTypeRegistry"
variable_declarator
identifier "typeRegistry"
; ";"
field_declaration (+22 nodes collapsed)
constructor_declaration (+26 nodes collapsed)
constructor_declaration (+63 nodes collapsed)
block_comment "/**\n * Creates a scope with all types declared. Declares n"...
method_declaration (+269 nodes collapsed)
block_comment "/**\n * Create the outermost scope. This scope contains nat"...
method_declaration (+236 nodes collapsed)
method_declaration (+86 nodes collapsed)
method_declaration (+41 nodes collapsed)
method_declaration (+40 nodes collapsed)
block_comment "/**\n * Given a node, determines whether that node names a "...
method_declaration (+131 nodes collapsed)
class_declaration
modifiers
private "private"
abstract "abstract"
class "class"
identifier "AbstractScopeBuilder"
super_interfaces
implements "implements"
type_list
scoped_type_identifier
type_identifier "NodeTraversal"
. "."
type_identifier "Callback"
class_body
{ "{"
block_comment "/**\n * The scope that we're builidng.\n */"
field_declaration
modifiers
final "final"
type_identifier "Scope"
variable_declarator
identifier "scope"
; ";"
block_comment "/**\n * The current source file that we're in.\n */"
field_declaration
modifiers
private "private"
type_identifier "String"
variable_declarator
identifier "sourceName"
= "="
null_literal "null"
; ";"
constructor_declaration (+22 nodes collapsed)
method_declaration (+130 nodes collapsed)
method_declaration (+24 nodes collapsed)
block_comment "/**\n * Returns the type specified in a JSDoc annotation "...
method_declaration (+39 nodes collapsed)
method_declaration (+394 nodes collapsed)
block_comment "/**\n * Defines variable(s) or modifies types based on th"...
method_declaration (+598 nodes collapsed)
block_comment "/**\n * Defines a variable based on the {@link Token#NAME"...
method_declaration (+307 nodes collapsed)
block_comment "/**\n * Gets the function type from the function node and"...
method_declaration (+719 nodes collapsed)
block_comment "/**\n * Find the function that's being overridden on this"...
method_declaration
modifiers
private "private"
type_identifier "FunctionType"
identifier "findOverriddenFunction"
formal_parameters
( "("
formal_parameter
type_identifier "ObjectType"
identifier "ownerType"
, ","
formal_parameter
type_identifier "String"
identifier "propName"
) ")"
block
{ "{"
line_comment "// First, check to see if the property is implemented"
line_comment "// on a superclass."
local_variable_declaration
type_identifier "JSType"
variable_declarator
identifier "propType"
= "="
method_invocation
identifier "ownerType"
. "."
identifier "getPropertyType"
argument_list
( "("
identifier "propName"
) ")"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
instanceof_expression
identifier "propType"
instanceof "instanceof"
type_identifier "FunctionType"
) ")"
block
{ "{"
return_statement
return "return"
cast_expression
( "("
type_identifier "FunctionType"
) ")"
identifier "propType"
; ";"
} "}"
else "else"
block
{ "{"
line_comment "// If it's not, then check to see if it's implemented"
line_comment "// on an implemented interface."
enhanced_for_statement
for "for"
( "("
type_identifier "ObjectType"
identifier "iface"
: ":"
method_invocation
identifier "ownerType"
. "."
identifier "getCtorImplementedInterfaces"
argument_list
( "("
) ")"
) ")"
block
{ "{"
expression_statement
assignment_expression
identifier "propType"
= "="
method_invocation
identifier "iface"
. "."
identifier "getPropertyType"
argument_list
( "("
identifier "propName"
) ")"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
instanceof_expression
identifier "propType"
instanceof "instanceof"
type_identifier "FunctionType"
) ")"
block
{ "{"
return_statement
return "return"
cast_expression
( "("
type_identifier "FunctionType"
) ")"
identifier "propType"
; ";"
} "}"
} "}"
} "}"
return_statement
return "return"
null_literal "null"
; ";"
} "}"
block_comment "/**\n * Gets an enum type. If the definition is correct, "...
method_declaration (+423 nodes collapsed)
block_comment "/**\n * Defines a typed variable. The defining node will "...
method_declaration (+39 nodes collapsed)
block_comment "/**\n * Defines a typed variable. The defining node will "...
method_declaration (+614 nodes collapsed)
} "}"
block_comment "/**\n * A shallow traversal of the global scope to build up"...
class_declaration (+3266 nodes collapsed)
line_comment "// end GlobalScopeBuilder"
block_comment "/**\n * A shallow traversal of a local scope to find all ar"...
class_declaration (+583 nodes collapsed)
line_comment "// end LocalScopeBuilder"
} "}"