diff --git a/src/vm/test.rs b/src/vm/test.rs index 8908822..4cc9e1c 100644 --- a/src/vm/test.rs +++ b/src/vm/test.rs @@ -144,7 +144,7 @@ fn test_attrs() { test_expr("{ a.b = 1; } ? a.b", boolean!(true)); test_expr( "{ a.b = 1; } // { a.c = 2 }", - attrs! { symbol!("a") => attrs!{ symbol!("b") => int!(1), symbol!("c") => int!(2) } }, + attrs! { symbol!("a") => attrs!{ symbol!("c") => int!(2) } }, ); } @@ -164,6 +164,6 @@ fn test_let() { test_expr(r#"let a = { a = 1; }; b = "a"; in a.${b}"#, int!(1)); test_expr( r#"let b = "c"; in { a.b = 1; } // { a."a${b}" = 2 }"}"#, - attrs! { symbol!("a") => attrs!{ symbol!("b") => int!(1), symbol!("ac") => int!(2) } }, + attrs! { symbol!("a") => attrs!{ symbol!("ac") => int!(2) } }, ); } diff --git a/src/vm/value/attrset.rs b/src/vm/value/attrset.rs index c2b7002..dbd99a4 100644 --- a/src/vm/value/attrset.rs +++ b/src/vm/value/attrset.rs @@ -26,12 +26,7 @@ impl AttrSet { pub fn update(mut self, other: AttrSet) -> AttrSet { for (k, v) in other.data.iter() { - if let Some(attr) = self.data.get(k) { - let new_attr = attr.clone().update(v.clone()); - self.data.insert_mut(k.clone(), new_attr); - } else { - self.push_attr(k.clone(), v.clone()) - } + self.push_attr(k.clone(), v.clone()) } self }