comparison src/ast_convert.rs @ 64:53817b39f139

Add FunctionDef.decorator_list support.
author Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
date Mon, 13 Jun 2016 01:18:48 +0100
parents 5df52b40fe54
children ce5e27a3f277
comparison
equal deleted inserted replaced
63:5df52b40fe54 64:53817b39f139
562 stmt::ClassDef(name, bases, vec!(), body, vec!()) 562 stmt::ClassDef(name, bases, vec!(), body, vec!())
563 } else if is_instance(&ast, &function_def_type) { 563 } else if is_instance(&ast, &function_def_type) {
564 let name = ast.getattr(py, "name").unwrap(); 564 let name = ast.getattr(py, "name").unwrap();
565 let args = ast.getattr(py, "args").unwrap(); 565 let args = ast.getattr(py, "args").unwrap();
566 let body = ast.getattr(py, "body").unwrap(); 566 let body = ast.getattr(py, "body").unwrap();
567 let decorator_list = ast.getattr(py, "decorator_list").unwrap();
567 let returns = ast.getattr(py, "returns").unwrap(); 568 let returns = ast.getattr(py, "returns").unwrap();
568 569
569 let name = get_str(py, name); 570 let name = get_str(py, name);
570 let args = parse_arguments(py, args); 571 let args = parse_arguments(py, args);
571 let body = parse_list(py, body, parse_statement); 572 let body = parse_list(py, body, parse_statement);
572 573 let decorator_list = parse_list(py, decorator_list, parse_expr);
573 let decorators = vec!();
574 let returns = parse_optional_expr(py, returns); 574 let returns = parse_optional_expr(py, returns);
575 575
576 stmt::FunctionDef(name, args, body, decorators, returns) 576 stmt::FunctionDef(name, args, body, decorator_list, returns)
577 } else if is_instance(&ast, &global_type) { 577 } else if is_instance(&ast, &global_type) {
578 let names = ast.getattr(py, "names").unwrap(); 578 let names = ast.getattr(py, "names").unwrap();
579 let names = parse_list(py, names, get_str); 579 let names = parse_list(py, names, get_str);
580 stmt::Global(names) 580 stmt::Global(names)
581 } else if is_instance(&ast, &nonlocal_type) { 581 } else if is_instance(&ast, &nonlocal_type) {