Fix minor bugs

* Fix Lambda parsing bugs
* Fix a bug that is registered as parameters instead of variables
* Fix Lambda formatting
This commit is contained in:
Shunsuke Shibayama 2022-08-28 10:34:12 +09:00
parent 259ba2c172
commit 49fb4848a2
6 changed files with 9 additions and 15 deletions

10
Cargo.lock generated
View file

@ -15,7 +15,7 @@ dependencies = [
[[package]]
name = "erg"
version = "0.2.8"
version = "0.3.0"
dependencies = [
"erg_common",
"erg_compiler",
@ -25,14 +25,14 @@ dependencies = [
[[package]]
name = "erg_common"
version = "0.2.8"
version = "0.3.0"
dependencies = [
"atty",
]
[[package]]
name = "erg_compiler"
version = "0.2.8"
version = "0.3.0"
dependencies = [
"erg_common",
"erg_parser",
@ -41,14 +41,14 @@ dependencies = [
[[package]]
name = "erg_parser"
version = "0.2.8"
version = "0.3.0"
dependencies = [
"erg_common",
]
[[package]]
name = "erg_type"
version = "0.2.8"
version = "0.3.0"
dependencies = [
"erg_common",
]

View file

@ -901,7 +901,7 @@ impl Context {
return Some((t, ctx));
}
}
_ => todo!(),
other => todo!("{other}"),
}
if let Some(outer) = &self.outer {
outer.rec_get_nominal_type_ctx(typ)

View file

@ -170,7 +170,7 @@ impl Context {
}
let vis = ident.vis();
let vi = VarInfo::new(generalized, muty, vis, VarKind::Defined(id));
self.params.push((Some(ident.name.clone()), vi));
self.locals.insert(ident.name.clone(), vi);
Ok(())
}
}

View file

@ -1136,8 +1136,7 @@ pub struct Def {
impl NestedDisplay for Def {
fn fmt_nest(&self, f: &mut fmt::Formatter<'_>, level: usize) -> fmt::Result {
self.sig.fmt_nest(f, level)?;
writeln!(f, " {}", self.body.op.content)?;
writeln!(f, "{} {}", self.sig, self.body.op.content)?;
self.body.block.fmt_nest(f, level + 1)
}
}

View file

@ -2389,8 +2389,7 @@ pub struct Def {
impl NestedDisplay for Def {
fn fmt_nest(&self, f: &mut fmt::Formatter<'_>, level: usize) -> fmt::Result {
self.sig.fmt_nest(f, level)?;
writeln!(f, " {}", self.body.op.content)?;
writeln!(f, "{} {}", self.sig, self.body.op.content)?;
self.body.block.fmt_nest(f, level + 1)
}
}

View file

@ -1645,10 +1645,6 @@ impl Parser {
self.errs.push(err);
return Err(());
}
// REVIEW: need this?
while self.cur_is(Newline) {
self.skip();
}
let body = self.try_reduce_block().map_err(|_| self.stack_dec())?;
self.counter.inc();
self.level -= 1;