예제 #1
0
def break_is_not_valid_in_while_loop_else_body():
    break_node = nodes.break_()
    node = nodes.while_(nodes.bool_literal(True), [], [break_node])
    error = assert_raises(errors.TypeCheckError,
        lambda: check_loop_control(node, False))
    assert_equal(break_node, error.node)
    assert_equal("'break' outside loop", str(error))
예제 #2
0
def break_is_not_valid_in_function_in_while_loop_body():
    break_node = nodes.break_()
    func_node = nodes.func("f", nodes.args([]), [break_node], type=None)
    node = nodes.while_(nodes.bool_literal(True), [func_node], [])
    error = assert_raises(errors.TypeCheckError,
        lambda: check_loop_control(node, False))
    assert_equal(break_node, error.node)
    assert_equal("'break' outside loop", str(error))
예제 #3
0
def break_is_not_valid_in_module():
    node = nodes.break_()
    error = assert_raises(errors.TypeCheckError,
        lambda: check_loop_control(node, False))
    assert_equal(node, error.node)
    assert_equal("'break' outside loop", str(error))
예제 #4
0
def break_is_valid_in_try_finally_body():
    node = nodes.try_([], finally_body=[nodes.break_()])
    check_loop_control(node, True)
예제 #5
0
def break_is_valid_in_while_loop_body():
    node = nodes.while_(nodes.bool_literal(True), [nodes.break_()])
    check_loop_control(node, False)
예제 #6
0
def break_is_valid_in_for_loop_body():
    node = nodes.for_(nodes.ref("x"), nodes.ref("xs"), [nodes.break_()])
    check_loop_control(node, False)
예제 #7
0
def break_has_no_references():
    _assert_no_references(nodes.break_())
예제 #8
0
def test_parse_break():
    _assert_statement_parse(nodes.break_(), "break")
예제 #9
0
 def test_break(self):
     _assert_transform(
         nodes.break_(),
         cc.break_
     )