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),