From 802eb4fca5d9ac418529e99876b493b3dcc4630c Mon Sep 17 00:00:00 2001 From: Shunsuke Shibayama Date: Wed, 15 Mar 2023 12:29:02 +0900 Subject: [PATCH] fix: tuple/import bugs --- Cargo.lock | 16 ++++++++-------- crates/py2erg/convert.rs | 14 ++++++-------- tests/import.py | 4 +++- tests/test.py | 4 ++++ 4 files changed, 21 insertions(+), 17 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0255d4a..0e474cb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -253,7 +253,7 @@ checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" [[package]] name = "els" version = "0.1.20-nightly.0" -source = "git+https://github.com/erg-lang/erg?branch=main#75d838ee7bd1a0faced69ff52c8d19d8d2d5ac35" +source = "git+https://github.com/erg-lang/erg?branch=main#e0d5cd2748c03988d1e431c2a33a7720e7a83544" dependencies = [ "erg_common", "erg_compiler", @@ -274,7 +274,7 @@ dependencies = [ [[package]] name = "erg_common" version = "0.6.8-nightly.0" -source = "git+https://github.com/erg-lang/erg?branch=main#75d838ee7bd1a0faced69ff52c8d19d8d2d5ac35" +source = "git+https://github.com/erg-lang/erg?branch=main#e0d5cd2748c03988d1e431c2a33a7720e7a83544" dependencies = [ "backtrace-on-stack-overflow", "hermit-abi", @@ -285,7 +285,7 @@ dependencies = [ [[package]] name = "erg_compiler" version = "0.6.8-nightly.0" -source = "git+https://github.com/erg-lang/erg?branch=main#75d838ee7bd1a0faced69ff52c8d19d8d2d5ac35" +source = "git+https://github.com/erg-lang/erg?branch=main#e0d5cd2748c03988d1e431c2a33a7720e7a83544" dependencies = [ "erg_common", "erg_parser", @@ -294,7 +294,7 @@ dependencies = [ [[package]] name = "erg_parser" version = "0.6.8-nightly.0" -source = "git+https://github.com/erg-lang/erg?branch=main#75d838ee7bd1a0faced69ff52c8d19d8d2d5ac35" +source = "git+https://github.com/erg-lang/erg?branch=main#e0d5cd2748c03988d1e431c2a33a7720e7a83544" dependencies = [ "erg_common", "unicode-xid 0.2.4", @@ -816,18 +816,18 @@ checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" [[package]] name = "serde" -version = "1.0.155" +version = "1.0.156" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71f2b4817415c6d4210bfe1c7bfcf4801b2d904cb4d0e1a8fdb651013c9e86b8" +checksum = "314b5b092c0ade17c00142951e50ced110ec27cea304b1037c6969246c2469a4" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.155" +version = "1.0.156" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d071a94a3fac4aff69d023a7f411e33f40f3483f8c5190b1953822b6b76d7630" +checksum = "d7e29c4601e36bcec74a223228dce795f4cd3616341a4af93520ca1a837c087d" dependencies = [ "proc-macro2", "quote", diff --git a/crates/py2erg/convert.rs b/crates/py2erg/convert.rs index a0f2c62..5e09e40 100644 --- a/crates/py2erg/convert.rs +++ b/crates/py2erg/convert.rs @@ -462,9 +462,9 @@ impl ASTConverter { Self::param_pattern_to_var(param.pat), param.t_spec.map(|t| t.t_spec), )); - let method = tmp_expr.clone().attr_expr( - self.convert_ident("__Tuple_getitem__".to_string(), expr.location), - ); + let method = tmp_expr + .clone() + .attr_expr(self.convert_ident("__getitem__".to_string(), expr.location)); let args = Args::new(vec![PosArg::new(Expr::Literal(index))], None, vec![], None); let tuple_acc = method.call_expr(args); @@ -1391,11 +1391,9 @@ impl ASTConverter { Self::param_pattern_to_var(param.pat), param.t_spec.map(|t| t.t_spec), )); - let method = - tmp_expr.clone().attr_expr(self.convert_ident( - "__Tuple_getitem__".to_string(), - stmt.location, - )); + let method = tmp_expr.clone().attr_expr( + self.convert_ident("__getitem__".to_string(), stmt.location), + ); let args = Args::pos_only(vec![PosArg::new(Expr::Literal(index))], None); let tuple_acc = method.call_expr(args); diff --git a/tests/import.py b/tests/import.py index b315cf8..9bfa9fb 100644 --- a/tests/import.py +++ b/tests/import.py @@ -4,6 +4,7 @@ from random import randint as rdi from datetime import datetime, timedelta import datetime as dt from http.client import HTTPResponse +import http i = random.randint(0, 1) print(i + 1) @@ -20,5 +21,6 @@ assert glob == None max_date = datetime.max max_delta = timedelta.max - assert dt.datetime.max == max_date + +Resp = http.client.HTTPResponse diff --git a/tests/test.py b/tests/test.py index d8d3e24..2b6e3c3 100644 --- a/tests/test.py +++ b/tests/test.py @@ -33,3 +33,7 @@ print(dic["c"]) # ERR arr = [1, 2, 3] print(arr[4]) # ERR + +i, j = 1, 2 +assert i == 1 +assert j == 2