comparison src/ast_convert.rs @ 65:ce5e27a3f277

Add ClassDef.decorator_list support.
author Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
date Mon, 13 Jun 2016 01:27:10 +0100
parents 53817b39f139
children 8ce78e2ba48c
comparison
equal deleted inserted replaced
64:53817b39f139 65:ce5e27a3f277
551 if is_instance(&ast, &class_def_type) { 551 if is_instance(&ast, &class_def_type) {
552 let name = ast.getattr(py, "name").unwrap(); 552 let name = ast.getattr(py, "name").unwrap();
553 let bases = ast.getattr(py, "bases").unwrap(); 553 let bases = ast.getattr(py, "bases").unwrap();
554 //let keywords = ast.getattr(py, "keywords").unwrap(); 554 //let keywords = ast.getattr(py, "keywords").unwrap();
555 let body = ast.getattr(py, "body").unwrap(); 555 let body = ast.getattr(py, "body").unwrap();
556 //let decorator_list = ast.getattr(py, "decorator_list").unwrap(); 556 let decorator_list = ast.getattr(py, "decorator_list").unwrap();
557 557
558 let name = get_str(py, name); 558 let name = get_str(py, name);
559 let bases = parse_list(py, bases, parse_expr); 559 let bases = parse_list(py, bases, parse_expr);
560 let body = parse_list(py, body, parse_statement); 560 let body = parse_list(py, body, parse_statement);
561 561 let decorator_list = parse_list(py, decorator_list, parse_expr);
562 stmt::ClassDef(name, bases, vec!(), body, vec!()) 562
563 stmt::ClassDef(name, bases, vec!(), body, decorator_list)
563 } else if is_instance(&ast, &function_def_type) { 564 } else if is_instance(&ast, &function_def_type) {
564 let name = ast.getattr(py, "name").unwrap(); 565 let name = ast.getattr(py, "name").unwrap();
565 let args = ast.getattr(py, "args").unwrap(); 566 let args = ast.getattr(py, "args").unwrap();
566 let body = ast.getattr(py, "body").unwrap(); 567 let body = ast.getattr(py, "body").unwrap();
567 let decorator_list = ast.getattr(py, "decorator_list").unwrap(); 568 let decorator_list = ast.getattr(py, "decorator_list").unwrap();