Mercurial > python-compiler.rs
changeset 3:326d7f2a94d4
Remove useless abstraction of function name as Expr.
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
---|---|
date | Tue, 31 May 2016 02:36:24 +0100 |
parents | 5fc7c2790d8c |
children | f27a4aee9dfa |
files | src/ast_convert.rs src/ast_dump.rs src/ast_type.rs src/python_ast.rs |
diffstat | 4 files changed, 4 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ast_convert.rs +++ b/src/ast_convert.rs @@ -258,7 +258,7 @@ fn parse_statement(py: Python, ast: PyOb statements.push(statement); } - Statement::FunctionDef(Expr::Name(name), args, statements) + Statement::FunctionDef(name, args, statements) } else if is_instance(&ast, &global_type) { let names = ast.getattr(py, "names").unwrap();
--- a/src/ast_dump.rs +++ b/src/ast_dump.rs @@ -81,7 +81,7 @@ impl Statement { } statements.join("\n") }), - Statement::FunctionDef(Expr::Name(name), arguments, body) => format!("{}def {}({}):\n{}", make_indent(indent), name, { + Statement::FunctionDef(name, arguments, body) => format!("{}def {}({}):\n{}", make_indent(indent), name, { let mut args = vec!(); for arg in arguments { args.push(arg.to_string()); @@ -94,7 +94,6 @@ impl Statement { } statements.join("\n") }), - Statement::FunctionDef(_, _, _) => format!("error!"), Statement::Global(names) => format!("{}global {}", make_indent(indent), names.join(", ")), Statement::If(test, body, orelse) => format!("{}if {}:\n{}", make_indent(indent), test.to_string(), { let mut statements = vec!();
--- a/src/ast_type.rs +++ b/src/ast_type.rs @@ -44,7 +44,7 @@ impl Visitor<Type> for Typing { Statement::ClassDef(name, classes, body) => { Type::Bottom }, - Statement::FunctionDef(Expr::Name(name), arguments, body) => { + Statement::FunctionDef(name, arguments, body) => { let mut env = self.environment.pop().unwrap(); self.environment.push(env.clone()); @@ -71,10 +71,6 @@ impl Visitor<Type> for Typing { } Type::Bottom }, - Statement::FunctionDef(_, _, _) => { - println!("Statement:FunctionDef Error"); - panic!() - }, Statement::Global(_) => { Type::Bottom },
--- a/src/python_ast.rs +++ b/src/python_ast.rs @@ -7,7 +7,7 @@ pub struct Module { #[derive(Clone, Debug)] pub enum Statement { ClassDef(String, Vec<Expr>, Vec<Statement>), - FunctionDef(Expr, Vec<Expr>, Vec<Statement>), + FunctionDef(String, Vec<Expr>, Vec<Statement>), Global(Vec<String>), If(Expr, Vec<Statement>, Vec<Statement>), Assign(Vec<Expr>, Expr),