Skip to content

Commit

Permalink
fix: minor bugs
Browse files Browse the repository at this point in the history
  • Loading branch information
mtshiba committed Oct 5, 2024
1 parent 5ef1a5e commit 1d16dd7
Showing 3 changed files with 14 additions and 4 deletions.
10 changes: 8 additions & 2 deletions crates/erg_compiler/context/compare.rs
Original file line number Diff line number Diff line change
@@ -7,7 +7,7 @@ use erg_common::dict::Dict;
use erg_common::set::Set;
use erg_common::style::colors::DEBUG_ERROR;
use erg_common::traits::StructuralEq;
use erg_common::{assume_unreachable, log, set, set_recursion_limit};
use erg_common::{assume_unreachable, fmt_vec, log, set, set_recursion_limit};
use erg_common::{Str, Triple};

use crate::context::eval::UndoableLinkedList;
@@ -1548,7 +1548,13 @@ impl Context {
params: rps,
},
) if ln == rn => {
debug_assert_eq!(lps.len(), rps.len());
debug_assert_eq!(
lps.len(),
rps.len(),
"[{}], [{}]",
fmt_vec(lps),
fmt_vec(rps)
);
let mut unified_params = vec![];
for (lp, rp) in lps.iter().zip(rps.iter()) {
if let Some(union) = self.union_tp(lp, rp) {
3 changes: 2 additions & 1 deletion crates/erg_compiler/context/initialize/mod.rs
Original file line number Diff line number Diff line change
@@ -1116,7 +1116,8 @@ impl Context {
.quantify();
let subr = move |data: ClosureData, args, _ctx: &Context| {
let passed = Vec::<TyParam>::from(args);
let lack = data.nd_params.len() + data.d_params.len() - passed.len();
let lack =
(data.nd_params.len() + data.d_params.len()).saturating_sub(passed.len());
let erased = data
.d_params
.clone()
5 changes: 4 additions & 1 deletion crates/erg_compiler/lower.rs
Original file line number Diff line number Diff line change
@@ -562,7 +562,10 @@ impl<A: ASTBuildable> GenericASTLowerer<A> {
let mut new_tuple = vec![];
let (elems, .., paren) = tuple.elems.deconstruct();
let expect_ts = expect.transpose(elems.len());
for (elem, expect) in elems.into_iter().zip(expect_ts) {
for (elem, expect) in elems
.into_iter()
.zip(expect_ts.into_iter().chain(std::iter::repeat(None)))
{
match self.lower_expr(elem.expr, expect.as_ref()) {
Ok(elem) => new_tuple.push(elem),
Err((expr, errs)) => {

0 comments on commit 1d16dd7

Please sign in to comment.