(&self)
| 49 | } |
| 50 | |
| 51 | pub fn validate(&self) -> Result<(), String> { |
| 52 | // Check for undeclared raised errors |
| 53 | for error in &self.raised_errors { |
| 54 | if !self.declared_errors.contains(error) { |
| 55 | return Err(format!( |
| 56 | "Error type '{}' is raised but not declared in function '{}'s signature", |
| 57 | error.name, self.function_name.lexeme |
| 58 | )); |
| 59 | } |
| 60 | } |
| 61 | |
| 62 | // Check for unused declared errors |
| 63 | for error in &self.declared_errors { |
| 64 | if !self.raised_errors.contains(error) { |
| 65 | return Err(format!( |
| 66 | "Error type '{}' is declared but never raised in function '{}'", |
| 67 | error.name, self.function_name.lexeme |
| 68 | )); |
| 69 | } |
| 70 | } |
| 71 | |
| 72 | Ok(()) |
| 73 | } |
| 74 | |
| 75 | pub fn has_error_types(&self) -> bool { |
| 76 | !self.declared_errors.is_empty() |
no test coverage detected