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–424 unchanged (424 lines)
425 }
426
427 // Make sure this assignment is not in a loop.
428 for (BasicBlock block = ref.getBasicBlock();
429 block != null; block = block.getParent()) {
430 if (block.isFunction) {
431 break;
432 } else if (block.isLoop) {
433 return false;
434 }
435 }
436
437 return true;
…lines 438–725 unchanged (288 lines)

After

…lines 1–424 unchanged (424 lines)
425 }
426
427 // Make sure this assignment is not in a loop.
428 for (BasicBlock block = ref.getBasicBlock();
429 block != null; block = block.getParent()) {
430 if (block.isFunction) {
431 if (ref.getSymbol().getScope() != ref.scope) {
432 return false;
433 }
434 break;
435 } else if (block.isLoop) {
436 return false;
437 }
438 }
439
…lines 440–728 unchanged (289 lines)

Before

program
block_comment "/*\n * Copyright 2008 The Closure Compiler Authors.\n *\n * Lic"...
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 "common"
. "."
identifier "annotations"
. "."
identifier "VisibleForTesting"
; ";"
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 "base"
. "."
identifier "Predicate"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "base"
. "."
identifier "Predicates"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "collect"
. "."
identifier "ImmutableSet"
; ";"
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 "NodeTraversal"
. "."
identifier "ScopedCallback"
; ";"
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 "InputId"
; ";"
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 "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 "StaticReference"
; ";"
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 "StaticSourceFile"
; ";"
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 "StaticSymbolTable"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "ArrayDeque"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "Deque"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "Iterator"
; ";"
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"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "Set"
; ";"
block_comment "/**\n * A helper class for passes that want to access all inf"...
class_declaration
class "class"
identifier "ReferenceCollectingCallback"
super_interfaces
implements "implements"
type_list
type_identifier "ScopedCallback"
, ","
type_identifier "HotSwapCompilerPass"
, ","
generic_type
type_identifier "StaticSymbolTable"
type_arguments
< "<"
type_identifier "Var"
, ","
scoped_type_identifier
type_identifier "ReferenceCollectingCallback"
. "."
type_identifier "Reference"
> ">"
class_body
{ "{"
block_comment "/**\n * Maps a given variable to a collection of references"...
field_declaration (+23 nodes collapsed)
block_comment "/**\n * The stack of basic blocks and scopes the current tr"...
field_declaration (+25 nodes collapsed)
block_comment "/**\n * Source of behavior at various points in the travers"...
field_declaration
modifiers
private "private"
final "final"
type_identifier "Behavior"
variable_declarator
identifier "behavior"
; ";"
block_comment "/**\n * JavaScript compiler to use in traversing.\n */"
field_declaration
modifiers
private "private"
final "final"
type_identifier "AbstractCompiler"
variable_declarator
identifier "compiler"
; ";"
block_comment "/**\n * Only collect references for filtered variables.\n "...
field_declaration
modifiers
private "private"
final "final"
generic_type
type_identifier "Predicate"
type_arguments
< "<"
type_identifier "Var"
> ">"
variable_declarator
identifier "varFilter"
; ";"
block_comment "/**\n * Constructor initializes block stack.\n */"
constructor_declaration (+36 nodes collapsed)
block_comment "/**\n * Constructor only collects references that match the"...
constructor_declaration (+51 nodes collapsed)
block_comment "/**\n * Convenience method for running this pass over a tre"...
method_declaration (+44 nodes collapsed)
block_comment "/**\n * Same as process but only runs on a part of AST asso"...
method_declaration (+35 nodes collapsed)
block_comment "/**\n * Gets the variables that were referenced in this cal"...
method_declaration (+29 nodes collapsed)
method_declaration (+24 nodes collapsed)
block_comment "/**\n * Gets the reference collection for the given variabl"...
method_declaration (+28 nodes collapsed)
block_comment "/**\n * For each node, update the block stack and reference"...
method_declaration (+190 nodes collapsed)
block_comment "/**\n * Updates block stack and invokes any additional beha"...
method_declaration (+78 nodes collapsed)
block_comment "/**\n * Updates block stack and invokes any additional beha"...
method_declaration (+106 nodes collapsed)
block_comment "/**\n * Updates block stack.\n */"
method_declaration (+70 nodes collapsed)
block_comment "/**\n * @return true if this node marks the start of a new "...
method_declaration (+156 nodes collapsed)
method_declaration (+79 nodes collapsed)
interface_declaration
interface "interface"
identifier "ReferenceMap"
interface_body
{ "{"
method_declaration
type_identifier "ReferenceCollection"
identifier "getReferences"
formal_parameters
( "("
formal_parameter
type_identifier "Var"
identifier "var"
) ")"
; ";"
} "}"
class_declaration (+85 nodes collapsed)
block_comment "/**\n * Way for callers to add specific behavior during tra"...
interface_declaration (+21 nodes collapsed)
field_declaration (+39 nodes collapsed)
block_comment "/**\n * A collection of references. Can be subclassed to ap"...
class_declaration
modifiers
static "static"
class "class"
identifier "ReferenceCollection"
super_interfaces
implements "implements"
type_list
generic_type
type_identifier "Iterable"
type_arguments
< "<"
type_identifier "Reference"
> ">"
class_body
{ "{"
field_declaration
generic_type
type_identifier "List"
type_arguments
< "<"
type_identifier "Reference"
> ">"
variable_declarator
identifier "references"
= "="
method_invocation
identifier "Lists"
. "."
identifier "newArrayList"
argument_list
( "("
) ")"
; ";"
method_declaration (+29 nodes collapsed)
method_declaration (+22 nodes collapsed)
block_comment "/**\n * Determines if the variable for this reference col"...
method_declaration (+168 nodes collapsed)
block_comment "/**\n * Whether the variable is escaped into an inner sco"...
method_declaration (+72 nodes collapsed)
block_comment "/**\n * @param index The index into the references array "...
method_declaration (+55 nodes collapsed)
block_comment "/**\n * @param index The index into the references array "...
method_declaration (+126 nodes collapsed)
block_comment "/**\n * @return The reference that provides the value for"...
method_declaration (+64 nodes collapsed)
block_comment "/**\n * Constants are allowed to be defined after their f"...
method_declaration (+83 nodes collapsed)
block_comment "/**\n * @return Whether the variable is only assigned a v"...
method_declaration
boolean_type "boolean"
identifier "isAssignedOnceInLifetime"
formal_parameters
( "("
) ")"
block
{ "{"
local_variable_declaration
type_identifier "Reference"
variable_declarator
identifier "ref"
= "="
method_invocation
identifier "getOneAndOnlyAssignment"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
identifier "ref"
== "=="
null_literal "null"
) ")"
block
{ "{"
return_statement
return "return"
false "false"
; ";"
} "}"
line_comment "// Make sure this assignment is not in a loop."
for_statement
for "for"
( "("
local_variable_declaration
type_identifier "BasicBlock"
variable_declarator
identifier "block"
= "="
method_invocation
identifier "ref"
. "."
identifier "getBasicBlock"
argument_list
( "("
) ")"
; ";"
binary_expression
identifier "block"
!= "!="
null_literal "null"
; ";"
assignment_expression
identifier "block"
= "="
method_invocation
identifier "block"
. "."
identifier "getParent"
argument_list
( "("
) ")"
) ")"
block
{ "{"
if_statement
if "if"
parenthesized_expression
( "("
field_access
identifier "block"
. "."
identifier "isFunction"
) ")"
block
{ "{"
break_statement
break "break"
; ";"
} "}"
else "else"
if_statement
if "if"
parenthesized_expression
( "("
field_access
identifier "block"
. "."
identifier "isLoop"
) ")"
block
{ "{"
return_statement
return "return"
false "false"
; ";"
} "}"
} "}"
return_statement
return "return"
true "true"
; ";"
} "}"
block_comment "/**\n * @return The one and only assignment. Returns if t"...
method_declaration (+123 nodes collapsed)
block_comment "/**\n * @return Whether the variable is never assigned a "...
method_declaration (+92 nodes collapsed)
method_declaration (+59 nodes collapsed)
} "}"
block_comment "/**\n * Represents a single declaration or reference to a v"...
class_declaration (+966 nodes collapsed)
block_comment "/**\n * Represents a section of code that is uninterrupted "...
class_declaration (+334 nodes collapsed)
} "}"

After

program
block_comment "/*\n * Copyright 2008 The Closure Compiler Authors.\n *\n * Lic"...
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 "common"
. "."
identifier "annotations"
. "."
identifier "VisibleForTesting"
; ";"
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 "base"
. "."
identifier "Predicate"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "base"
. "."
identifier "Predicates"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "collect"
. "."
identifier "ImmutableSet"
; ";"
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 "NodeTraversal"
. "."
identifier "ScopedCallback"
; ";"
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 "InputId"
; ";"
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 "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 "StaticReference"
; ";"
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 "StaticSourceFile"
; ";"
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 "StaticSymbolTable"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "ArrayDeque"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "Deque"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "Iterator"
; ";"
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"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "Set"
; ";"
block_comment "/**\n * A helper class for passes that want to access all inf"...
class_declaration
class "class"
identifier "ReferenceCollectingCallback"
super_interfaces
implements "implements"
type_list
type_identifier "ScopedCallback"
, ","
type_identifier "HotSwapCompilerPass"
, ","
generic_type
type_identifier "StaticSymbolTable"
type_arguments
< "<"
type_identifier "Var"
, ","
scoped_type_identifier
type_identifier "ReferenceCollectingCallback"
. "."
type_identifier "Reference"
> ">"
class_body
{ "{"
block_comment "/**\n * Maps a given variable to a collection of references"...
field_declaration (+23 nodes collapsed)
block_comment "/**\n * The stack of basic blocks and scopes the current tr"...
field_declaration (+25 nodes collapsed)
block_comment "/**\n * Source of behavior at various points in the travers"...
field_declaration
modifiers
private "private"
final "final"
type_identifier "Behavior"
variable_declarator
identifier "behavior"
; ";"
block_comment "/**\n * JavaScript compiler to use in traversing.\n */"
field_declaration
modifiers
private "private"
final "final"
type_identifier "AbstractCompiler"
variable_declarator
identifier "compiler"
; ";"
block_comment "/**\n * Only collect references for filtered variables.\n "...
field_declaration
modifiers
private "private"
final "final"
generic_type
type_identifier "Predicate"
type_arguments
< "<"
type_identifier "Var"
> ">"
variable_declarator
identifier "varFilter"
; ";"
block_comment "/**\n * Constructor initializes block stack.\n */"
constructor_declaration (+36 nodes collapsed)
block_comment "/**\n * Constructor only collects references that match the"...
constructor_declaration (+51 nodes collapsed)
block_comment "/**\n * Convenience method for running this pass over a tre"...
method_declaration (+44 nodes collapsed)
block_comment "/**\n * Same as process but only runs on a part of AST asso"...
method_declaration (+35 nodes collapsed)
block_comment "/**\n * Gets the variables that were referenced in this cal"...
method_declaration (+29 nodes collapsed)
method_declaration (+24 nodes collapsed)
block_comment "/**\n * Gets the reference collection for the given variabl"...
method_declaration (+28 nodes collapsed)
block_comment "/**\n * For each node, update the block stack and reference"...
method_declaration (+190 nodes collapsed)
block_comment "/**\n * Updates block stack and invokes any additional beha"...
method_declaration (+78 nodes collapsed)
block_comment "/**\n * Updates block stack and invokes any additional beha"...
method_declaration (+106 nodes collapsed)
block_comment "/**\n * Updates block stack.\n */"
method_declaration (+70 nodes collapsed)
block_comment "/**\n * @return true if this node marks the start of a new "...
method_declaration (+156 nodes collapsed)
method_declaration (+79 nodes collapsed)
interface_declaration
interface "interface"
identifier "ReferenceMap"
interface_body
{ "{"
method_declaration
type_identifier "ReferenceCollection"
identifier "getReferences"
formal_parameters
( "("
formal_parameter
type_identifier "Var"
identifier "var"
) ")"
; ";"
} "}"
class_declaration (+85 nodes collapsed)
block_comment "/**\n * Way for callers to add specific behavior during tra"...
interface_declaration (+21 nodes collapsed)
field_declaration (+39 nodes collapsed)
block_comment "/**\n * A collection of references. Can be subclassed to ap"...
class_declaration
modifiers
static "static"
class "class"
identifier "ReferenceCollection"
super_interfaces
implements "implements"
type_list
generic_type
type_identifier "Iterable"
type_arguments
< "<"
type_identifier "Reference"
> ">"
class_body
{ "{"
field_declaration
generic_type
type_identifier "List"
type_arguments
< "<"
type_identifier "Reference"
> ">"
variable_declarator
identifier "references"
= "="
method_invocation
identifier "Lists"
. "."
identifier "newArrayList"
argument_list
( "("
) ")"
; ";"
method_declaration (+29 nodes collapsed)
method_declaration (+22 nodes collapsed)
block_comment "/**\n * Determines if the variable for this reference col"...
method_declaration (+168 nodes collapsed)
block_comment "/**\n * Whether the variable is escaped into an inner sco"...
method_declaration (+72 nodes collapsed)
block_comment "/**\n * @param index The index into the references array "...
method_declaration (+55 nodes collapsed)
block_comment "/**\n * @param index The index into the references array "...
method_declaration (+126 nodes collapsed)
block_comment "/**\n * @return The reference that provides the value for"...
method_declaration (+64 nodes collapsed)
block_comment "/**\n * Constants are allowed to be defined after their f"...
method_declaration (+83 nodes collapsed)
block_comment "/**\n * @return Whether the variable is only assigned a v"...
method_declaration
boolean_type "boolean"
identifier "isAssignedOnceInLifetime"
formal_parameters
( "("
) ")"
block
{ "{"
local_variable_declaration
type_identifier "Reference"
variable_declarator
identifier "ref"
= "="
method_invocation
identifier "getOneAndOnlyAssignment"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
identifier "ref"
== "=="
null_literal "null"
) ")"
block
{ "{"
return_statement
return "return"
false "false"
; ";"
} "}"
line_comment "// Make sure this assignment is not in a loop."
for_statement
for "for"
( "("
local_variable_declaration
type_identifier "BasicBlock"
variable_declarator
identifier "block"
= "="
method_invocation
identifier "ref"
. "."
identifier "getBasicBlock"
argument_list
( "("
) ")"
; ";"
binary_expression
identifier "block"
!= "!="
null_literal "null"
; ";"
assignment_expression
identifier "block"
= "="
method_invocation
identifier "block"
. "."
identifier "getParent"
argument_list
( "("
) ")"
) ")"
block
{ "{"
if_statement
if "if"
parenthesized_expression
( "("
field_access
identifier "block"
. "."
identifier "isFunction"
) ")"
block
{ "{"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
method_invocation
method_invocation
identifier "ref"
. "."
identifier "getSymbol"
argument_list
( "("
) ")"
. "."
identifier "getScope"
argument_list
( "("
) ")"
!= "!="
field_access
identifier "ref"
. "."
identifier "scope"
) ")"
block
{ "{"
return_statement
return "return"
false "false"
; ";"
} "}"
break_statement
break "break"
; ";"
} "}"
else "else"
if_statement
if "if"
parenthesized_expression
( "("
field_access
identifier "block"
. "."
identifier "isLoop"
) ")"
block
{ "{"
return_statement
return "return"
false "false"
; ";"
} "}"
} "}"
return_statement
return "return"
true "true"
; ";"
} "}"
block_comment "/**\n * @return The one and only assignment. Returns if t"...
method_declaration (+123 nodes collapsed)
block_comment "/**\n * @return Whether the variable is never assigned a "...
method_declaration (+92 nodes collapsed)
method_declaration (+59 nodes collapsed)
} "}"
block_comment "/**\n * Represents a single declaration or reference to a v"...
class_declaration (+966 nodes collapsed)
block_comment "/**\n * Represents a section of code that is uninterrupted "...
class_declaration (+334 nodes collapsed)
} "}"