mirror of
https://github.com/mtshiba/pylyzer.git
synced 2025-08-04 14:28:24 +00:00
Fix a type declaration bug
This commit is contained in:
parent
1a40a1eca7
commit
401a6f9b84
4 changed files with 12 additions and 6 deletions
6
Cargo.lock
generated
6
Cargo.lock
generated
|
@ -227,7 +227,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "erg_common"
|
||||
version = "0.6.0-beta.4"
|
||||
source = "git+https://github.com/erg-lang/erg?branch=main#fb9eb0a12040cba151f45df3abb407e0592d3add"
|
||||
source = "git+https://github.com/erg-lang/erg?branch=main#46418987c1e6bf24baa774827cb1e4be8fe25b67"
|
||||
dependencies = [
|
||||
"hermit-abi",
|
||||
"libc",
|
||||
|
@ -237,7 +237,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "erg_compiler"
|
||||
version = "0.6.0-beta.4"
|
||||
source = "git+https://github.com/erg-lang/erg?branch=main#fb9eb0a12040cba151f45df3abb407e0592d3add"
|
||||
source = "git+https://github.com/erg-lang/erg?branch=main#46418987c1e6bf24baa774827cb1e4be8fe25b67"
|
||||
dependencies = [
|
||||
"erg_common",
|
||||
"erg_parser",
|
||||
|
@ -246,7 +246,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "erg_parser"
|
||||
version = "0.6.0-beta.4"
|
||||
source = "git+https://github.com/erg-lang/erg?branch=main#fb9eb0a12040cba151f45df3abb407e0592d3add"
|
||||
source = "git+https://github.com/erg-lang/erg?branch=main#46418987c1e6bf24baa774827cb1e4be8fe25b67"
|
||||
dependencies = [
|
||||
"erg_common",
|
||||
"unicode-xid 0.2.4",
|
||||
|
|
|
@ -716,7 +716,7 @@ impl ASTConverter {
|
|||
let def = Def::new(sig, body);
|
||||
Expr::Def(def)
|
||||
} else {
|
||||
self.register_name_info(&name, NameKind::Variable);
|
||||
// no registration because it's just a type ascription
|
||||
let ident = self.convert_ident(name, stmt.location);
|
||||
let tasc = TypeAscription::new(Expr::Accessor(Accessor::Ident(ident)), COLON, t_spec);
|
||||
Expr::TypeAsc(tasc)
|
||||
|
|
|
@ -86,10 +86,15 @@ impl PythonAnalyzer {
|
|||
let err = CompileError::new(core, self.cfg.input.clone(), "".into());
|
||||
IncompleteArtifact::new(None, CompileErrors::from(err), CompileErrors::empty())
|
||||
})?;
|
||||
let converter = py2erg::ASTConverter::new(self.cfg.copy(), ShadowingMode::Invisible);
|
||||
let shadowing = if cfg!(feature = "debug") {
|
||||
ShadowingMode::Visible
|
||||
} else {
|
||||
ShadowingMode::Invisible
|
||||
};
|
||||
let converter = py2erg::ASTConverter::new(self.cfg.copy(), shadowing);
|
||||
let IncompleteArtifact{ object: Some(erg_module), mut errors, mut warns } = converter.convert_program(py_program) else { unreachable!() };
|
||||
let erg_ast = AST::new(erg_common::Str::rc(filename), erg_module);
|
||||
erg_common::log!("AST: {erg_ast}");
|
||||
erg_common::log!("AST:\n{erg_ast}");
|
||||
match self.checker.lower(erg_ast, mode) {
|
||||
Ok(mut artifact) => {
|
||||
artifact.warns.extend(warns);
|
||||
|
|
|
@ -28,4 +28,5 @@ print(dic["c"]) # ERR
|
|||
a = [1, 2, 3]
|
||||
print(a[4]) # ERR
|
||||
|
||||
a_: str
|
||||
a_ = "aa" if True else "bb"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue