# HG changeset patch # User Emmanuel Gil Peyrot # Date 1464658584 -3600 # Node ID 326d7f2a94d4ddc5d3f5d8ec80924bb6a3784f6b # Parent 5fc7c2790d8ccfb0e41ac65b715d02c0a82d7fab Remove useless abstraction of function name as Expr. diff --git a/src/ast_convert.rs b/src/ast_convert.rs --- 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(); diff --git a/src/ast_dump.rs b/src/ast_dump.rs --- 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!(); diff --git a/src/ast_type.rs b/src/ast_type.rs --- a/src/ast_type.rs +++ b/src/ast_type.rs @@ -44,7 +44,7 @@ impl Visitor 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 for Typing { } Type::Bottom }, - Statement::FunctionDef(_, _, _) => { - println!("Statement:FunctionDef Error"); - panic!() - }, Statement::Global(_) => { Type::Bottom }, diff --git a/src/python_ast.rs b/src/python_ast.rs --- 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, Vec), - FunctionDef(Expr, Vec, Vec), + FunctionDef(String, Vec, Vec), Global(Vec), If(Expr, Vec, Vec), Assign(Vec, Expr),