dpscript/ir/validator/checker/
cond.rs1use super::IRChecker;
2use crate::{IRCheckerContext, IRCondition, Result, UnsourcedValidatorError};
3
4impl IRChecker for IRCondition {
5 fn check(&mut self, cx: &mut IRCheckerContext) -> Result<()> {
6 let blocks = cx.get_blocks();
7
8 if !blocks.contains_key(&self.if_block) {
9 return Err(UnsourcedValidatorError {
10 err: format!("Cannot find block: {}", self.if_block),
11 }
12 .into());
13 }
14
15 if !blocks.contains_key(&self.else_block) {
16 return Err(UnsourcedValidatorError {
17 err: format!("Cannot find block: {}", self.else_block),
18 }
19 .into());
20 }
21
22 if !blocks.contains_key(&self.join_block) {
23 return Err(UnsourcedValidatorError {
24 err: format!("Cannot find block: {}", self.join_block),
25 }
26 .into());
27 }
28
29 Ok(())
30 }
31}