class_body
{ "{"
field_declaration
modifiers
protected "protected"
final "final"
type_identifier "CodingConvention"
variable_declarator
identifier "convention"
; ";"
field_declaration
modifiers
final "final"
type_identifier "JSTypeRegistry"
variable_declarator
identifier "typeRegistry"
; ";"
field_declaration
modifiers
private "private"
type_identifier "ChainableReverseAbstractInterpreter"
variable_declarator
identifier "firstLink"
; ";"
field_declaration
modifiers
private "private"
type_identifier "ChainableReverseAbstractInterpreter"
variable_declarator
identifier "nextLink"
; ";"
block_comment "/**\n * Constructs an interpreter, which is the only link i"...
constructor_declaration (+57 nodes collapsed)
block_comment "/**\n * Appends a link to {@code this}, returning the updat"...
method_declaration (+55 nodes collapsed)
block_comment "/**\n * Gets the first link of this chain.\n */"
method_declaration
modifiers
public "public"
type_identifier "ChainableReverseAbstractInterpreter"
identifier "getFirst"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "firstLink"
; ";"
} "}"
block_comment "/**\n * Calculates the preciser scope starting with the fir"...
method_declaration (+37 nodes collapsed)
block_comment "/**\n * Delegates the calculation of the preciser scope to "...
method_declaration (+45 nodes collapsed)
block_comment "/**\n * Returns the type of a node in the given scope if th"...
method_declaration (+265 nodes collapsed)
block_comment "/**\n * Declares a refined type in {@code scope} for the na"...
method_declaration
modifiers
protected "protected"
void_type "void"
identifier "declareNameInScope"
formal_parameters
( "("
formal_parameter
type_identifier "FlowScope"
identifier "scope"
, ","
formal_parameter
type_identifier "Node"
identifier "node"
, ","
formal_parameter
type_identifier "JSType"
identifier "type"
) ")"
block
{ "{"
switch_expression
switch "switch"
parenthesized_expression
( "("
method_invocation
identifier "node"
. "."
identifier "getType"
argument_list
( "("
) ")"
) ")"
switch_block
{ "{"
switch_block_statement_group (+29 nodes collapsed)
switch_block_statement_group (+82 nodes collapsed)
line_comment "// \"this\" references aren't currently modeled in the CFG."
switch_block_statement_group (+27 nodes collapsed)
} "}"
} "}"
block_comment "/**\n * @see #getRestrictedWithoutUndefined(JSType)\n */"
field_declaration (+444 nodes collapsed)
block_comment "/**\n * @see #getRestrictedWithoutNull(JSType)\n */"
field_declaration (+444 nodes collapsed)
block_comment "/**\n * A class common to all visitors that need to restric"...
class_declaration (+354 nodes collapsed)
block_comment "/**\n * A class common to all visitors that need to restric"...
class_declaration (+161 nodes collapsed)
block_comment "/**\n * A class common to all visitors that need to restric"...
class_declaration (+212 nodes collapsed)
block_comment "/**\n * @see ChainableReverseAbstractInterpreter#getRestric"...
class_declaration (+513 nodes collapsed)
block_comment "/**\n * Returns a version of type where undefined is not pr"...
method_declaration (+34 nodes collapsed)
block_comment "/**\n * Returns a version of type where null is not present"...
method_declaration (+34 nodes collapsed)
block_comment "/**\n * Returns a version of {@code type} that is restricte"...
method_declaration (+97 nodes collapsed)
method_declaration (+23 nodes collapsed)
block_comment "/**\n * If we definitely know what a type is based on the t"...
method_declaration (+166 nodes collapsed)
} "}"