(
&mut self,
input: &Path,
name: &str,
sprite: &Sprite,
stage: Option<&Sprite>,
config: &Config,
d: D,
broadcasts: &FxHashSet<SmolStr>,
| 427 | } |
| 428 | |
| 429 | pub fn sprite( |
| 430 | &mut self, |
| 431 | input: &Path, |
| 432 | name: &str, |
| 433 | sprite: &Sprite, |
| 434 | stage: Option<&Sprite>, |
| 435 | config: &Config, |
| 436 | d: D, |
| 437 | broadcasts: &FxHashSet<SmolStr>, |
| 438 | ) -> io::Result<()> { |
| 439 | for proc in sprite.procs.values() { |
| 440 | if !sprite.used_procs.contains(&proc.name) { |
| 441 | d.report(DiagnosticKind::UnusedProc(proc.name.clone()), &proc.span); |
| 442 | } else { |
| 443 | for arg in &proc.args { |
| 444 | if !sprite |
| 445 | .proc_used_args |
| 446 | .get(&proc.name) |
| 447 | .unwrap() |
| 448 | .contains(&arg.name) |
| 449 | { |
| 450 | d.report(DiagnosticKind::UnusedArg(arg.name.clone()), &arg.span); |
| 451 | } |
| 452 | } |
| 453 | } |
| 454 | } |
| 455 | for func in sprite.funcs.values() { |
| 456 | if !sprite.used_funcs.contains(&func.name) { |
| 457 | d.report(DiagnosticKind::UnusedFunc(func.name.clone()), &func.span); |
| 458 | } else { |
| 459 | for arg in &func.args { |
| 460 | if !sprite |
| 461 | .func_used_args |
| 462 | .get(&func.name) |
| 463 | .unwrap() |
| 464 | .contains(&arg.name) |
| 465 | { |
| 466 | d.report(DiagnosticKind::UnusedArg(arg.name.clone()), &arg.span); |
| 467 | } |
| 468 | } |
| 469 | } |
| 470 | } |
| 471 | for struct_ in sprite.structs.values() { |
| 472 | if !struct_.is_used { |
| 473 | d.report( |
| 474 | DiagnosticKind::UnusedStruct(struct_.name.clone()), |
| 475 | &struct_.span, |
| 476 | ); |
| 477 | } |
| 478 | } |
| 479 | for enum_ in sprite.enums.values() { |
| 480 | if !enum_.is_used { |
| 481 | d.report(DiagnosticKind::UnusedEnum(enum_.name.clone()), &enum_.span); |
| 482 | } |
| 483 | } |
| 484 | self.id.reset(); |
| 485 | write!(self, "{{")?; |
| 486 | write!(self, r#""isStage":{}"#, name == STAGE_NAME)?; |
no test coverage detected