Esempio n. 1
0
def import_from_alias_name_is_declared():
    alias_node = nodes.import_alias("x", "y")
    node = nodes.import_from(["."], [alias_node])
    declarations = find_declarations(node)
    assert_equal("y", declarations.declaration("y").name)
    assert isinstance(declarations.declaration("y"), name_declaration.ImportDeclarationNode)
    assert not declarations.is_declared("x")
Esempio n. 2
0
def names_in_function_are_not_declared_in_outer_scope():
    node = nodes.func("f", nodes.arguments([]), [
        nodes.assign([nodes.ref("x")], nodes.none())
    ], type=None)
    
    declarations = find_declarations(node)
    assert not declarations.is_declared("x")
Esempio n. 3
0
def names_in_class_are_not_declared_in_outer_scope():
    node = nodes.class_("User", [
        nodes.assign([nodes.ref("x")], nodes.none())
    ])
    
    declarations = find_declarations(node)
    assert not declarations.is_declared("x")
Esempio n. 4
0
def assignment_to_tuple_declares_variables_in_tuple():
    first_definition_node = nodes.ref("x")
    second_definition_node = nodes.ref("y")
    node = nodes.assign([nodes.tuple_literal([first_definition_node, second_definition_node])], nodes.none())
    declarations = find_declarations(node)
    assert_equal("x", declarations.declaration("x").name)
    assert_equal("y", declarations.declaration("y").name)
    assert isinstance(declarations.declaration("x"), name_declaration.VariableDeclarationNode)
    assert isinstance(declarations.declaration("y"), name_declaration.VariableDeclarationNode)
Esempio n. 5
0
def except_handler_target_is_declared():
    node = nodes.try_(
        [],
        handlers=[
            nodes.except_(nodes.none(), nodes.ref("error"), [])
        ],
    )
    declarations = find_declarations(node)
    assert_equal("error", declarations.declaration("error").name)
    assert isinstance(declarations.declaration("error"), name_declaration.VariableDeclarationNode)
Esempio n. 6
0
def cannot_declare_name_with_two_different_declaration_types():
    try:
        declarations = _declarations_in(nodes.module([
            nodes.assign([nodes.ref("f")], nodes.none()),
            nodes.func("f", nodes.arguments([]), [], type=None)
        ]))
        declarations = find_declarations(node)
        assert False, "Expected error"
    except errors.InvalidReassignmentError as error:
        assert_equal("function declaration and variable assignment cannot share the same name", str(error))
Esempio n. 7
0
def names_in_function_signature_are_not_declared_in_outer_scope():
    explicit_type = nodes.signature(
        type_params=[nodes.formal_type_parameter("T")],
        args=[],
        returns=nodes.ref("T"),
    )
    node = nodes.func("f", nodes.arguments([]), [], type=explicit_type)
    
    declarations = find_declarations(node)
    assert not declarations.is_declared("T")
Esempio n. 8
0
def assignment_adds_declaration_to_declarations():
    definition_node = nodes.ref("x")
    node = nodes.assign([definition_node], nodes.none())
    declarations = find_declarations(node)
    assert_equal("x", declarations.declaration("x").name)
    assert isinstance(declarations.declaration("x"), name_declaration.VariableDeclarationNode)
Esempio n. 9
0
def function_definition_is_declared():
    node = nodes.func("f", nodes.arguments([]), [], type=None)
    
    declarations = find_declarations(node)
    assert_equal("f", declarations.declaration("f").name)
    assert isinstance(declarations.declaration("f"), name_declaration.FunctionDeclarationNode)
Esempio n. 10
0
def with_statement_target_can_be_none():
    node = nodes.with_(nodes.ref("manager"), None, [])
    declarations = find_declarations(node)
Esempio n. 11
0
def with_statement_target_is_declared():
    node = nodes.with_(nodes.ref("manager"), nodes.ref("target"), [])
    declarations = find_declarations(node)
    assert_equal("target", declarations.declaration("target").name)
    assert isinstance(declarations.declaration("target"), name_declaration.VariableDeclarationNode)
Esempio n. 12
0
def type_definition_is_declared():
    node = nodes.type_definition("Identifier", nodes.type_union([nodes.ref("int"), nodes.ref("str")]))
    
    declarations = find_declarations(node)
    assert_equal("Identifier", declarations.declaration("Identifier").name)
    assert isinstance(declarations.declaration("Identifier"), name_declaration.TypeDeclarationNode)
Esempio n. 13
0
def import_name_is_declared():
    alias_node = nodes.import_alias("x.y", None)
    node = nodes.Import([alias_node])
    declarations = find_declarations(node)
    assert_equal("x", declarations.declaration("x").name)
    assert isinstance(declarations.declaration("x"), name_declaration.ImportDeclarationNode)
Esempio n. 14
0
def argument_adds_declaration_to_declarations():
    node = nodes.arg("x")
    declarations = find_declarations(node)
    assert isinstance(declarations.declaration("x"), name_declaration.VariableDeclarationNode)
Esempio n. 15
0
def formal_type_parameter_is_declared():
    node = nodes.formal_type_parameter("T")
    
    declarations = find_declarations(node)
    assert_equal("T", declarations.declaration("T").name)
    assert isinstance(declarations.declaration("T"), name_declaration.TypeDeclarationNode)
Esempio n. 16
0
def class_definition_is_declared():
    node = nodes.class_("User", [])
    
    declarations = find_declarations(node)
    assert_equal("User", declarations.declaration("User").name)
    assert isinstance(declarations.declaration("User"), name_declaration.ClassDeclarationNode)
Esempio n. 17
0
def for_loop_target_is_declared():
    node = nodes.for_(nodes.ref("target"), nodes.list_literal([]), [], [])
    declarations = find_declarations(node)
    assert_equal("target", declarations.declaration("target").name)
    assert isinstance(declarations.declaration("target"), name_declaration.VariableDeclarationNode)