comparison src/ast_dump.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
225 fn to_string(&self, indent: usize) -> String { 225 fn to_string(&self, indent: usize) -> String {
226 let current_indent = make_indent(indent); 226 let current_indent = make_indent(indent);
227 match self.clone() { 227 match self.clone() {
228 stmt::ClassDef(name, bases, keywords, body, decorator_list) => format!("{}class {}({}):\n{}", current_indent, name, vec_to_strings_vec(bases).join(", "), statements_to_string(indent, body)), 228 stmt::ClassDef(name, bases, keywords, body, decorator_list) => format!("{}class {}({}):\n{}", current_indent, name, vec_to_strings_vec(bases).join(", "), statements_to_string(indent, body)),
229 stmt::FunctionDef(name, arguments, body, decorator_list, returns) => { 229 stmt::FunctionDef(name, arguments, body, decorator_list, returns) => {
230 format!("{}def {}({}){}:\n{}", 230 format!("{}{}def {}({}){}:\n{}",
231 {
232 let decorators = vec_to_strings_vec(decorator_list);
233 if decorators.is_empty() {
234 String::new()
235 } else {
236 format!("{}@{}\n", current_indent, decorators.join(format!("\n{}@", current_indent).as_str()))
237 }
238 },
231 current_indent, 239 current_indent,
232 name, 240 name,
233 arguments.to_string(), 241 arguments.to_string(),
234 match returns { 242 match returns {
235 None => String::new(), 243 None => String::new(),