fix: tuple/import bugs

This commit is contained in:
Shunsuke Shibayama 2023-03-15 12:29:02 +09:00
parent c7b2b8cf55
commit 802eb4fca5
4 changed files with 21 additions and 17 deletions

16
Cargo.lock generated
View File

@ -253,7 +253,7 @@ checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
[[package]] [[package]]
name = "els" name = "els"
version = "0.1.20-nightly.0" 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 = [ dependencies = [
"erg_common", "erg_common",
"erg_compiler", "erg_compiler",
@ -274,7 +274,7 @@ dependencies = [
[[package]] [[package]]
name = "erg_common" name = "erg_common"
version = "0.6.8-nightly.0" 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 = [ dependencies = [
"backtrace-on-stack-overflow", "backtrace-on-stack-overflow",
"hermit-abi", "hermit-abi",
@ -285,7 +285,7 @@ dependencies = [
[[package]] [[package]]
name = "erg_compiler" name = "erg_compiler"
version = "0.6.8-nightly.0" 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 = [ dependencies = [
"erg_common", "erg_common",
"erg_parser", "erg_parser",
@ -294,7 +294,7 @@ dependencies = [
[[package]] [[package]]
name = "erg_parser" name = "erg_parser"
version = "0.6.8-nightly.0" 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 = [ dependencies = [
"erg_common", "erg_common",
"unicode-xid 0.2.4", "unicode-xid 0.2.4",
@ -816,18 +816,18 @@ checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
[[package]] [[package]]
name = "serde" name = "serde"
version = "1.0.155" version = "1.0.156"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "71f2b4817415c6d4210bfe1c7bfcf4801b2d904cb4d0e1a8fdb651013c9e86b8" checksum = "314b5b092c0ade17c00142951e50ced110ec27cea304b1037c6969246c2469a4"
dependencies = [ dependencies = [
"serde_derive", "serde_derive",
] ]
[[package]] [[package]]
name = "serde_derive" name = "serde_derive"
version = "1.0.155" version = "1.0.156"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d071a94a3fac4aff69d023a7f411e33f40f3483f8c5190b1953822b6b76d7630" checksum = "d7e29c4601e36bcec74a223228dce795f4cd3616341a4af93520ca1a837c087d"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",

View File

@ -462,9 +462,9 @@ impl ASTConverter {
Self::param_pattern_to_var(param.pat), Self::param_pattern_to_var(param.pat),
param.t_spec.map(|t| t.t_spec), param.t_spec.map(|t| t.t_spec),
)); ));
let method = tmp_expr.clone().attr_expr( let method = tmp_expr
self.convert_ident("__Tuple_getitem__".to_string(), expr.location), .clone()
); .attr_expr(self.convert_ident("__getitem__".to_string(), expr.location));
let args = let args =
Args::new(vec![PosArg::new(Expr::Literal(index))], None, vec![], None); Args::new(vec![PosArg::new(Expr::Literal(index))], None, vec![], None);
let tuple_acc = method.call_expr(args); let tuple_acc = method.call_expr(args);
@ -1391,11 +1391,9 @@ impl ASTConverter {
Self::param_pattern_to_var(param.pat), Self::param_pattern_to_var(param.pat),
param.t_spec.map(|t| t.t_spec), param.t_spec.map(|t| t.t_spec),
)); ));
let method = let method = tmp_expr.clone().attr_expr(
tmp_expr.clone().attr_expr(self.convert_ident( self.convert_ident("__getitem__".to_string(), stmt.location),
"__Tuple_getitem__".to_string(), );
stmt.location,
));
let args = let args =
Args::pos_only(vec![PosArg::new(Expr::Literal(index))], None); Args::pos_only(vec![PosArg::new(Expr::Literal(index))], None);
let tuple_acc = method.call_expr(args); let tuple_acc = method.call_expr(args);

View File

@ -4,6 +4,7 @@ from random import randint as rdi
from datetime import datetime, timedelta from datetime import datetime, timedelta
import datetime as dt import datetime as dt
from http.client import HTTPResponse from http.client import HTTPResponse
import http
i = random.randint(0, 1) i = random.randint(0, 1)
print(i + 1) print(i + 1)
@ -20,5 +21,6 @@ assert glob == None
max_date = datetime.max max_date = datetime.max
max_delta = timedelta.max max_delta = timedelta.max
assert dt.datetime.max == max_date assert dt.datetime.max == max_date
Resp = http.client.HTTPResponse

View File

@ -33,3 +33,7 @@ print(dic["c"]) # ERR
arr = [1, 2, 3] arr = [1, 2, 3]
print(arr[4]) # ERR print(arr[4]) # ERR
i, j = 1, 2
assert i == 1
assert j == 2