From 4056ecaa663a6ce5d95c24ccc504f08a5469016d Mon Sep 17 00:00:00 2001 From: felipegchi Date: Fri, 2 Dec 2022 13:45:29 -0300 Subject: [PATCH] fix: problems with dependency of record fields --- crates/kind-pass/src/unbound/mod.rs | 4 +++- .../suite/checker/issues/RecordFieldDependency.golden | 1 + .../suite/checker/issues/RecordFieldDependency.kind2 | 4 ++++ 3 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 crates/kind-tests/suite/checker/issues/RecordFieldDependency.golden create mode 100644 crates/kind-tests/suite/checker/issues/RecordFieldDependency.kind2 diff --git a/crates/kind-pass/src/unbound/mod.rs b/crates/kind-pass/src/unbound/mod.rs index 55d3346c..3b7c9a72 100644 --- a/crates/kind-pass/src/unbound/mod.rs +++ b/crates/kind-pass/src/unbound/mod.rs @@ -258,8 +258,10 @@ impl Visitor for UnboundCollector { TopLevel::RecordType(entr) => { let inside_vars = self.context_vars.clone(); visit_vec!(entr.parameters.iter_mut(), arg => self.visit_argument(arg)); - visit_vec!(entr.fields.iter_mut(), (_, _, typ) => { + + visit_vec!(entr.fields.iter_mut(), (name, _, typ) => { self.visit_expr(typ); + self.context_vars.push((name.range, name.to_string())) }); self.context_vars = inside_vars; diff --git a/crates/kind-tests/suite/checker/issues/RecordFieldDependency.golden b/crates/kind-tests/suite/checker/issues/RecordFieldDependency.golden new file mode 100644 index 00000000..db814b93 --- /dev/null +++ b/crates/kind-tests/suite/checker/issues/RecordFieldDependency.golden @@ -0,0 +1 @@ +Ok! \ No newline at end of file diff --git a/crates/kind-tests/suite/checker/issues/RecordFieldDependency.kind2 b/crates/kind-tests/suite/checker/issues/RecordFieldDependency.kind2 new file mode 100644 index 00000000..a8a6ea53 --- /dev/null +++ b/crates/kind-tests/suite/checker/issues/RecordFieldDependency.kind2 @@ -0,0 +1,4 @@ +record FieldDependency { + ty : Type + snd : ty +} \ No newline at end of file