From ccba3b507c4e8190f8bec6877ea95e6412757961 Mon Sep 17 00:00:00 2001 From: felipegchi Date: Mon, 12 Dec 2022 13:37:37 -0300 Subject: [PATCH] fix: problem with duplication of arity error message --- crates/kind-pass/src/desugar/destruct.rs | 4 ++-- crates/kind-pass/src/desugar/expr.rs | 4 ++-- .../suite/issues/checker/ArityOnLet.golden | 12 ++++++++++++ .../kind-tests/suite/issues/checker/ArityOnLet.kind2 | 7 +++++++ 4 files changed, 23 insertions(+), 4 deletions(-) create mode 100644 crates/kind-tests/suite/issues/checker/ArityOnLet.golden create mode 100644 crates/kind-tests/suite/issues/checker/ArityOnLet.kind2 diff --git a/crates/kind-pass/src/desugar/destruct.rs b/crates/kind-pass/src/desugar/destruct.rs index 5aa4f62e..cb0ad491 100644 --- a/crates/kind-pass/src/desugar/destruct.rs +++ b/crates/kind-pass/src/desugar/destruct.rs @@ -136,13 +136,13 @@ impl<'a> DesugarState<'a> { self.desugar_destruct( next.range, binding, - res_val, + res_val.clone(), &|this| this.desugar_expr(next), &|this, name| { desugared::Expr::let_( range, name.clone(), - this.desugar_expr(val), + res_val.clone(), this.desugar_expr(next), ) }, diff --git a/crates/kind-pass/src/desugar/expr.rs b/crates/kind-pass/src/desugar/expr.rs index 356f404d..8a70499d 100644 --- a/crates/kind-pass/src/desugar/expr.rs +++ b/crates/kind-pass/src/desugar/expr.rs @@ -124,13 +124,13 @@ impl<'a> DesugarState<'a> { self.desugar_destruct( next.range, destruct, - res_val, + res_val.clone(), &|this| this.desugar_sttm(bind_ident, pure_ident, next), &|this, ident| { desugared::Expr::let_( destruct.locate(), ident.clone(), - this.desugar_expr(val), + res_val.clone(), this.desugar_sttm(bind_ident, pure_ident, next), ) }, diff --git a/crates/kind-tests/suite/issues/checker/ArityOnLet.golden b/crates/kind-tests/suite/issues/checker/ArityOnLet.golden new file mode 100644 index 00000000..43448da8 --- /dev/null +++ b/crates/kind-tests/suite/issues/checker/ArityOnLet.golden @@ -0,0 +1,12 @@ + ERROR Incorrect arity. + + /--[suite/issues/checker/ArityOnLet.kind2:6:13] + | + 5 | ArityOnLet = + 6 | let a = A + | v + | \This function requires a fixed number of arguments + 7 | 2 + + Hint: This function expects 1 arguments but got 0 + diff --git a/crates/kind-tests/suite/issues/checker/ArityOnLet.kind2 b/crates/kind-tests/suite/issues/checker/ArityOnLet.kind2 new file mode 100644 index 00000000..16893b3a --- /dev/null +++ b/crates/kind-tests/suite/issues/checker/ArityOnLet.kind2 @@ -0,0 +1,7 @@ +A (n : U60) : U60 +A n = n + +ArityOnLet : U60 +ArityOnLet = + let a = A + 2 \ No newline at end of file