class_body
{ "{"
block_comment "/**\n * A list of variables that should not be inlined, b"...
field_declaration (+21 nodes collapsed)
block_comment "/**\n * Stored possible aliases of variables that never c"...
field_declaration (+22 nodes collapsed)
method_declaration (+41 nodes collapsed)
block_comment "/**\n * If any of the variables are well-defined and alia"...
method_declaration (+214 nodes collapsed)
block_comment "/**\n * For all variables in this scope, see if they are "...
method_declaration (+236 nodes collapsed)
method_declaration (+185 nodes collapsed)
method_declaration (+74 nodes collapsed)
method_declaration
modifiers
private "private"
void_type "void"
identifier "inlineNonConstants"
formal_parameters
( "("
formal_parameter
type_identifier "Var"
identifier "v"
, ","
formal_parameter
type_identifier "ReferenceCollection"
identifier "referenceInfo"
, ","
formal_parameter
boolean_type "boolean"
identifier "maybeModifiedArguments"
) ")"
block
{ "{"
local_variable_declaration
integral_type
int "int"
variable_declarator
identifier "refCount"
= "="
method_invocation
field_access
identifier "referenceInfo"
. "."
identifier "references"
. "."
identifier "size"
argument_list
( "("
) ")"
; ";"
local_variable_declaration
type_identifier "Reference"
variable_declarator
identifier "declaration"
= "="
method_invocation
field_access
identifier "referenceInfo"
. "."
identifier "references"
. "."
identifier "get"
argument_list
( "("
decimal_integer_literal "0"
) ")"
; ";"
local_variable_declaration
type_identifier "Reference"
variable_declarator
identifier "init"
= "="
method_invocation
identifier "referenceInfo"
. "."
identifier "getInitializingReference"
argument_list
( "("
) ")"
; ";"
local_variable_declaration
integral_type
int "int"
variable_declarator
identifier "firstRefAfterInit"
= "="
ternary_expression
parenthesized_expression
( "("
binary_expression
identifier "declaration"
== "=="
identifier "init"
) ")"
? "?"
decimal_integer_literal "2"
: ":"
decimal_integer_literal "3"
; ";"
if_statement (+287 nodes collapsed)
line_comment "// If this variable was not inlined normally, check if we ca"...
line_comment "// inline an alias of it. (If the variable was inlined, then"...
line_comment "// reference data is out of sync. We're better off just wait"...
line_comment "// the next pass.)"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression any 3:4
binary_expression any 3:4
binary_expression any 3:4
unary_expression
! "!"
identifier "maybeModifiedArguments"
&& "&&"
unary_expression
! "!"
method_invocation
identifier "staleVars"
. "."
identifier "contains"
argument_list
( "("
identifier "v"
) ")"
&& "&&"
method_invocation
identifier "referenceInfo"
. "."
identifier "isWellDefined"
argument_list
( "("
) ")"
&& "&&"
method_invocation
identifier "referenceInfo"
. "."
identifier "isAssignedOnceInLifetime"
argument_list
( "("
) ")"
) ")"
block
{ "{"
line_comment "// Inlining the variable based solely on well-defined and as"...
line_comment "// once is *NOT* correct. We relax the correctness requireme"...
line_comment "// the variable is declared constant."
local_variable_declaration
generic_type
type_identifier "List"
type_arguments
< "<"
type_identifier "Reference"
> ">"
variable_declarator
identifier "refs"
= "="
field_access
identifier "referenceInfo"
. "."
identifier "references"
; ";"
for_statement (+191 nodes collapsed)
} "}"
} "}"
block_comment "/**\n * If there are any variable references in the given"...
method_declaration (+101 nodes collapsed)
block_comment "/**\n * Whether the given variable is forbidden from bein"...
method_declaration (+75 nodes collapsed)
block_comment "/**\n * Do the actual work of inlining a single declarati"...
method_declaration (+196 nodes collapsed)
block_comment "/**\n * Inline an immutable variable into all of its refe"...
method_declaration (+103 nodes collapsed)
block_comment "/**\n * Inline a declared constant.\n */"
method_declaration (+106 nodes collapsed)
block_comment "/**\n * Remove the given VAR declaration.\n */"
method_declaration (+118 nodes collapsed)
block_comment "/**\n * Replace the given reference with the given value "...
method_declaration (+119 nodes collapsed)
block_comment "/**\n * Determines whether the given variable is declared"...
method_declaration (+171 nodes collapsed)
block_comment "/**\n * Compute whether the given string is worth inlinin"...
method_declaration (+171 nodes collapsed)
block_comment "/**\n * @return true if the provided reference and declar"...
method_declaration (+377 nodes collapsed)
block_comment "/**\n * If the value is a literal, we can cross more boun"...
method_declaration (+38 nodes collapsed)
block_comment "/**\n * If the value of a variable is not constant, then "...
method_declaration (+285 nodes collapsed)
block_comment "/**\n * @return true if the reference is a normal VAR or "...
method_declaration (+66 nodes collapsed)
block_comment "/**\n * @return Whether there is a initial value.\n */"
method_declaration (+194 nodes collapsed)
block_comment "/**\n * @return true if the reference is a candidate for "...
method_declaration (+37 nodes collapsed)
block_comment "/**\n * Determines whether the reference collection descr"...
method_declaration (+368 nodes collapsed)
} "}"