mirror of
https://github.com/microsoft/regorus.git
synced 2026-08-05 02:16:11 +00:00
Fix scheduling regression (#53)
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
This commit is contained in:
committed by
GitHub
parent
ef36d9bed5
commit
639ba72c90
@@ -2348,7 +2348,17 @@ impl Interpreter {
|
||||
}
|
||||
v => v,
|
||||
};
|
||||
|
||||
let paths: Vec<&str> = path.iter().map(|s| *s.text()).collect();
|
||||
|
||||
if let RuleHead::Set { .. } = &rule_head {
|
||||
// Ensure that sets are created as empty.
|
||||
let vref = Self::make_or_get_value_mut(&mut self.data, &paths)?;
|
||||
if *vref == Value::Undefined {
|
||||
*vref = Value::new_set();
|
||||
}
|
||||
}
|
||||
|
||||
self.update_data(span, refr, &paths[..], value)?;
|
||||
|
||||
self.processed.insert(rule.clone());
|
||||
|
||||
@@ -162,6 +162,8 @@ pub fn schedule<Str: Clone + std::cmp::Ord + std::fmt::Debug>(
|
||||
(stmt_scheduled, reprocess_var)
|
||||
};
|
||||
|
||||
process_var(empty.clone());
|
||||
|
||||
let mut done = false;
|
||||
while !done {
|
||||
done = true;
|
||||
@@ -840,7 +842,7 @@ impl Analyzer {
|
||||
)?;
|
||||
self.process_comprs(&comprs[..], scope, first_use, &mut used_vars)?;
|
||||
definitions.push(Definition {
|
||||
var: expr.span().source_str().clone(),
|
||||
var: expr.span().source_str().clone_empty(),
|
||||
used_vars,
|
||||
});
|
||||
Ok(())
|
||||
|
||||
Reference in New Issue
Block a user