From 9b83c3ad58c122b7d11be5684d15cf8912d80586 Mon Sep 17 00:00:00 2001 From: Folkert Date: Fri, 16 Oct 2020 15:29:21 +0200 Subject: [PATCH] optional record fields in patterns are bound --- compiler/can/src/pattern.rs | 3 +++ compiler/solve/src/solve.rs | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/compiler/can/src/pattern.rs b/compiler/can/src/pattern.rs index 332205b188..43e76963d2 100644 --- a/compiler/can/src/pattern.rs +++ b/compiler/can/src/pattern.rs @@ -326,6 +326,9 @@ pub fn canonicalize_pattern<'a>( &loc_default.value, ); + // an optional field binds the symbol! + output.references.bound_symbols.insert(symbol); + output.union(expr_output); destructs.push(Located { diff --git a/compiler/solve/src/solve.rs b/compiler/solve/src/solve.rs index 79b8b817e6..124dd5e90d 100644 --- a/compiler/solve/src/solve.rs +++ b/compiler/solve/src/solve.rs @@ -201,8 +201,8 @@ fn solve( constraint: &Constraint, ) -> State { match constraint { - // True => state, True => { + dbg!(&env.vars_by_symbol); state .vars_by_symbol .extend(env.vars_by_symbol.iter().map(|(x, y)| (*x, *y)));