mirror of
https://github.com/fluencelabs/aquavm
synced 2025-03-15 04:30:48 +00:00
fix(air-parser): allow non used streams in validator (#360)
Validator checks that stream used in `canon` is populated by a value in a supplied script. This PR removes this check, because it's useful for code generation.
This commit is contained in:
parent
910f1665eb
commit
01bbca72c2
@ -237,6 +237,21 @@ fn canon_empty_stream() {
|
||||
assert_eq!(actual_trace, expected_trace);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn canon_empty_not_writable_stream() {
|
||||
let peer_id = "peer_id";
|
||||
let mut vm = create_avm(echo_call_service(), peer_id);
|
||||
|
||||
let script = f!(r#"
|
||||
(canon "{peer_id}" $stream #canon_stream)
|
||||
"#);
|
||||
|
||||
let result = checked_call_vm!(vm, <_>::default(), &script, "", "");
|
||||
let actual_trace = trace_from_result(&result);
|
||||
let expected_trace = vec![executed_state::canon(vec![])];
|
||||
assert_eq!(actual_trace, expected_trace);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn canon_over_later_defined_stream() {
|
||||
let vm_peer_id_1 = "vm_peer_id_1";
|
||||
|
@ -79,8 +79,9 @@ impl<'i> VariableValidator<'i> {
|
||||
};
|
||||
}
|
||||
|
||||
// canon doesn't check stream to be defined, because empty streams are considered to be emtpy
|
||||
// and it's useful for code generation
|
||||
pub(super) fn met_canon(&mut self, canon: &Canon<'i>, span: Span) {
|
||||
self.met_variable_name(canon.stream.name, span);
|
||||
self.met_variable_name_definition(canon.canon_stream.name, span);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user