comparison src/ast_convert.rs @ 63:5df52b40fe54

Implement FunctionDef.returns.
author Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
date Mon, 13 Jun 2016 00:55:04 +0100
parents 6b73843c5b4a
children 53817b39f139
comparison
equal deleted inserted replaced
62:d255a932553f 63:5df52b40fe54
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 returns = ast.getattr(py, "returns").unwrap();
567 568
568 let name = get_str(py, name); 569 let name = get_str(py, name);
569 let args = parse_arguments(py, args); 570 let args = parse_arguments(py, args);
570 let body = parse_list(py, body, parse_statement); 571 let body = parse_list(py, body, parse_statement);
571 572
572 let decorators = vec!(); 573 let decorators = vec!();
573 let returns = None; 574 let returns = parse_optional_expr(py, returns);
574 575
575 stmt::FunctionDef(name, args, body, decorators, returns) 576 stmt::FunctionDef(name, args, body, decorators, returns)
576 } else if is_instance(&ast, &global_type) { 577 } else if is_instance(&ast, &global_type) {
577 let names = ast.getattr(py, "names").unwrap(); 578 let names = ast.getattr(py, "names").unwrap();
578 let names = parse_list(py, names, get_str); 579 let names = parse_list(py, names, get_str);