fix: resolve all stress test bugs
- Record equality: add Record case to values_equal in interpreter - Invalid escapes: error on unknown escape sequences in lexer - Unknown effects: validate effect names in check_function with suggestions - Circular types: add DFS cycle detection in check_type_cycles - Parser: require | for enum variants, enabling proper type alias syntax All 265 tests pass. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -2810,6 +2810,11 @@ impl Interpreter {
|
||||
(Value::Tuple(a), Value::Tuple(b)) => {
|
||||
a.len() == b.len() && a.iter().zip(b).all(|(x, y)| self.values_equal(x, y))
|
||||
}
|
||||
(Value::Record(a), Value::Record(b)) => {
|
||||
a.len() == b.len() && a.iter().all(|(k, v)| {
|
||||
b.get(k).map(|bv| self.values_equal(v, bv)).unwrap_or(false)
|
||||
})
|
||||
}
|
||||
(
|
||||
Value::Constructor {
|
||||
name: n1,
|
||||
@@ -2824,6 +2829,7 @@ impl Interpreter {
|
||||
&& f1.len() == f2.len()
|
||||
&& f1.iter().zip(f2).all(|(x, y)| self.values_equal(x, y))
|
||||
}
|
||||
(Value::Json(a), Value::Json(b)) => a == b,
|
||||
_ => false,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user