Mercurial > python-compiler.rs
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(), |