From 0139084cb9a0346bab1205eccc3fb7b00862ecb0 Mon Sep 17 00:00:00 2001 From: Shunsuke Shibayama Date: Tue, 30 May 2023 23:48:01 +0900 Subject: [PATCH 1/4] Update convert.rs --- crates/py2erg/convert.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/crates/py2erg/convert.rs b/crates/py2erg/convert.rs index 519e700..41c1de2 100644 --- a/crates/py2erg/convert.rs +++ b/crates/py2erg/convert.rs @@ -1828,7 +1828,11 @@ impl ASTConverter { let import_acc = Expr::Accessor(Accessor::Ident( self.convert_ident("__import__".to_string(), stmt.location), )); - let cont = format!("\"{}\"", name.symbol.split('.').next().unwrap()); + let cont = if name.alias.is_some() { + format!("\"{}\"", name.symbol.replace('.', "/")) + }else { + format!("\"{}\"", name.symbol.split('.').next().unwrap()) + }; let mod_name = Expr::Literal(Literal::new(Token::new( TokenKind::StrLit, cont, From 4b369b729deb77fe337ac8f2f879fac813717bae Mon Sep 17 00:00:00 2001 From: Shunsuke Shibayama Date: Wed, 31 May 2023 13:32:57 +0900 Subject: [PATCH 2/4] build: update version (v0.0.30) --- Cargo.lock | 20 ++++++++++---------- Cargo.toml | 10 +++++----- crates/py2erg/convert.rs | 2 +- src/analyze.rs | 6 ++---- 4 files changed, 18 insertions(+), 20 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 07819c3..aac36af 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -252,9 +252,9 @@ checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" [[package]] name = "els" -version = "0.1.26-nightly.0" +version = "0.1.26-nightly.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf50f787a8376384af8e7b074c489329669eeb1264f15f1a7f136102a003f2f" +checksum = "5147d6b8d0f525ee83165cb4bef0f76039b38a0d50423a724f1f3bb3780f4871" dependencies = [ "erg_common", "erg_compiler", @@ -274,9 +274,9 @@ dependencies = [ [[package]] name = "erg_common" -version = "0.6.14-nightly.0" +version = "0.6.14-nightly.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0d10554accd6de5e3f41e3db5931348320c89b9745a82635887f850dd77aadb" +checksum = "5602258c4f796f05bdcde0453e574970f9b8def356c1246e0b6dcdad6d74b8c5" dependencies = [ "backtrace-on-stack-overflow", "hermit-abi", @@ -286,9 +286,9 @@ dependencies = [ [[package]] name = "erg_compiler" -version = "0.6.14-nightly.0" +version = "0.6.14-nightly.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3570aa70c9f488516c6286280ae4d3343aed382b6c7881b784195af64350aa50" +checksum = "021c0889b72067ed8148e10155ea4f0954a50dc2691d9d2f1c96bb781002e8aa" dependencies = [ "erg_common", "erg_parser", @@ -296,9 +296,9 @@ dependencies = [ [[package]] name = "erg_parser" -version = "0.6.14-nightly.0" +version = "0.6.14-nightly.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfd44c03719e8051c7997263298e2b792da6138f818646d0eeae359f92bf0c60" +checksum = "b305a4ebe2303ea1a702644bf9c73105178dd447f7c65ba7b222b557d5336cc8" dependencies = [ "erg_common", "unicode-xid 0.2.4", @@ -602,7 +602,7 @@ dependencies = [ [[package]] name = "py2erg" -version = "0.0.29" +version = "0.0.30" dependencies = [ "erg_common", "erg_compiler", @@ -611,7 +611,7 @@ dependencies = [ [[package]] name = "pylyzer" -version = "0.0.29" +version = "0.0.30" dependencies = [ "els", "erg_common", diff --git a/Cargo.toml b/Cargo.toml index 74e0a4d..6d9eef9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,16 +15,16 @@ members = [ ] [workspace.package] -version = "0.0.29" +version = "0.0.30" authors = ["Shunsuke Shibayama "] license = "MIT OR Apache-2.0" edition = "2021" repository = "https://github.com/mtshiba/pylyzer" [workspace.dependencies] -erg_common = { version = "0.6.14-nightly.0", features = ["py_compat", "els"] } -erg_compiler = { version = "0.6.14-nightly.0", features = ["py_compat", "els"] } -els = { version = "0.1.26-nightly.0", features = ["py_compat"] } +erg_common = { version = "0.6.14-nightly.2", features = ["py_compat", "els"] } +erg_compiler = { version = "0.6.14-nightly.2", features = ["py_compat", "els"] } +els = { version = "0.1.26-nightly.2", features = ["py_compat"] } rustpython-parser = "0.1.2" # erg_compiler = { git = "https://github.com/erg-lang/erg", branch = "main", features = ["py_compat", "els"] } # erg_common = { git = "https://github.com/erg-lang/erg", branch = "main", features = ["py_compat", "els"] } @@ -44,7 +44,7 @@ erg_compiler = { workspace = true } erg_common = { workspace = true } els = { workspace = true } rustpython-parser = { workspace = true } -py2erg = { version = "0.0.29", path = "./crates/py2erg" } +py2erg = { version = "0.0.30", path = "./crates/py2erg" } [lib] path = "src/lib.rs" diff --git a/crates/py2erg/convert.rs b/crates/py2erg/convert.rs index 41c1de2..419ef8d 100644 --- a/crates/py2erg/convert.rs +++ b/crates/py2erg/convert.rs @@ -1830,7 +1830,7 @@ impl ASTConverter { )); let cont = if name.alias.is_some() { format!("\"{}\"", name.symbol.replace('.', "/")) - }else { + } else { format!("\"{}\"", name.symbol.split('.').next().unwrap()) }; let mod_name = Expr::Literal(Literal::new(Token::new( diff --git a/src/analyze.rs b/src/analyze.rs index 5f21739..4fd37f4 100644 --- a/src/analyze.rs +++ b/src/analyze.rs @@ -7,7 +7,7 @@ use erg_common::Str; use erg_compiler::artifact::{BuildRunnable, Buildable, CompleteArtifact, IncompleteArtifact}; use erg_compiler::context::register::CheckStatus; use erg_compiler::context::ModuleContext; -use erg_compiler::erg_parser::ast::{AST, Module}; +use erg_compiler::erg_parser::ast::{Module, AST}; use erg_compiler::erg_parser::error::ParseErrors; use erg_compiler::erg_parser::parse::Parsable; use erg_compiler::error::{CompileError, CompileErrors}; @@ -22,9 +22,7 @@ pub struct SimplePythonParser {} impl Parsable for SimplePythonParser { fn parse(code: String) -> Result { - let py_program = parser::parse_program(&code).map_err(|_err| { - ParseErrors::empty() - })?; + let py_program = parser::parse_program(&code).map_err(|_err| ParseErrors::empty())?; let shadowing = if cfg!(feature = "debug") { ShadowingMode::Visible } else { From 724eb2c90fe0f520ab01e18ce5a9b22512de13aa Mon Sep 17 00:00:00 2001 From: Shunsuke Shibayama Date: Thu, 1 Jun 2023 21:16:54 +0900 Subject: [PATCH 3/4] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 056f8af..ada29dc 100644 --- a/README.md +++ b/README.md @@ -86,6 +86,8 @@ pylyzer converts Python ASTs to Erg ASTs and passes them to Erg's type checker. * pylyzer (= Erg's type system) has its own type declarations for the Python standard APIs. Typing of all APIs is not complete and may result in an error that such an API does not exist. +* Since pylyzer's type checking is conservative, you may encounter many (possibly false positive) errors. We are working on fixing this, but if you are concerned about editor errors, please turn off the diagnostics feature. + ## TODOs * [x] type checking From 4753699bfb2b0f782e2c091a37ee7c284be319e7 Mon Sep 17 00:00:00 2001 From: Shunsuke Shibayama Date: Thu, 1 Jun 2023 21:52:13 +0900 Subject: [PATCH 4/4] build: update version (v0.0.31) --- Cargo.lock | 20 ++++++++++---------- Cargo.toml | 11 ++++++----- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index aac36af..0d904da 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -252,9 +252,9 @@ checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" [[package]] name = "els" -version = "0.1.26-nightly.2" +version = "0.1.26-nightly.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5147d6b8d0f525ee83165cb4bef0f76039b38a0d50423a724f1f3bb3780f4871" +checksum = "9c5a0e259df10904a6f0a16a63ad896cebfcbd46086c3cec3de72de82087460e" dependencies = [ "erg_common", "erg_compiler", @@ -274,9 +274,9 @@ dependencies = [ [[package]] name = "erg_common" -version = "0.6.14-nightly.2" +version = "0.6.14-nightly.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5602258c4f796f05bdcde0453e574970f9b8def356c1246e0b6dcdad6d74b8c5" +checksum = "2d198aa66805c129d8bf54ac2a6b141146f01a01b03b3b02777fb2bc88613578" dependencies = [ "backtrace-on-stack-overflow", "hermit-abi", @@ -286,9 +286,9 @@ dependencies = [ [[package]] name = "erg_compiler" -version = "0.6.14-nightly.2" +version = "0.6.14-nightly.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "021c0889b72067ed8148e10155ea4f0954a50dc2691d9d2f1c96bb781002e8aa" +checksum = "1297cb7c6aacd21439a038ca8a4cdcc650fa1b92a23cb1ac902cb2d17dc4e1a4" dependencies = [ "erg_common", "erg_parser", @@ -296,9 +296,9 @@ dependencies = [ [[package]] name = "erg_parser" -version = "0.6.14-nightly.2" +version = "0.6.14-nightly.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b305a4ebe2303ea1a702644bf9c73105178dd447f7c65ba7b222b557d5336cc8" +checksum = "ac57a120256d58782ca7d0d336969894af7396918909b14cda8ddbf1bcd3a845" dependencies = [ "erg_common", "unicode-xid 0.2.4", @@ -602,7 +602,7 @@ dependencies = [ [[package]] name = "py2erg" -version = "0.0.30" +version = "0.0.31" dependencies = [ "erg_common", "erg_compiler", @@ -611,7 +611,7 @@ dependencies = [ [[package]] name = "pylyzer" -version = "0.0.30" +version = "0.0.31" dependencies = [ "els", "erg_common", diff --git a/Cargo.toml b/Cargo.toml index 6d9eef9..fde96ef 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,16 +15,16 @@ members = [ ] [workspace.package] -version = "0.0.30" +version = "0.0.31" authors = ["Shunsuke Shibayama "] license = "MIT OR Apache-2.0" edition = "2021" repository = "https://github.com/mtshiba/pylyzer" [workspace.dependencies] -erg_common = { version = "0.6.14-nightly.2", features = ["py_compat", "els"] } -erg_compiler = { version = "0.6.14-nightly.2", features = ["py_compat", "els"] } -els = { version = "0.1.26-nightly.2", features = ["py_compat"] } +erg_common = { version = "0.6.14-nightly.4", features = ["py_compat", "els"] } +erg_compiler = { version = "0.6.14-nightly.4", features = ["py_compat", "els"] } +els = { version = "0.1.26-nightly.4", features = ["py_compat"] } rustpython-parser = "0.1.2" # erg_compiler = { git = "https://github.com/erg-lang/erg", branch = "main", features = ["py_compat", "els"] } # erg_common = { git = "https://github.com/erg-lang/erg", branch = "main", features = ["py_compat", "els"] } @@ -38,13 +38,14 @@ debug = ["erg_compiler/debug", "erg_common/debug", "py2erg/debug"] large_thread = ["erg_compiler/large_thread", "erg_common/large_thread", "els/large_thread"] pretty = ["erg_compiler/pretty", "erg_common/pretty"] backtrace = ["erg_common/backtrace"] +experimental = ["els/experimental", "erg_compiler/experimental", "erg_common/experimental"] [dependencies] erg_compiler = { workspace = true } erg_common = { workspace = true } els = { workspace = true } rustpython-parser = { workspace = true } -py2erg = { version = "0.0.30", path = "./crates/py2erg" } +py2erg = { version = "0.0.31", path = "./crates/py2erg" } [lib] path = "src/lib.rs"