aboutsummaryrefslogtreecommitdiff
path: root/macros/src/check.rs
diff options
context:
space:
mode:
Diffstat (limited to 'macros/src/check.rs')
-rw-r--r--macros/src/check.rs18
1 files changed, 14 insertions, 4 deletions
diff --git a/macros/src/check.rs b/macros/src/check.rs
index 3cd112ac..63cac1fa 100644
--- a/macros/src/check.rs
+++ b/macros/src/check.rs
@@ -63,16 +63,15 @@ pub fn app(app: check::App) -> Result<App> {
tasks: app.tasks
.into_iter()
.map(|(k, v)| {
- let v = ::check::task(k.as_ref(), v)
- .chain_err(|| format!("checking task `{}`", k))?;
+ let v =
+ ::check::task(k.as_ref(), v).chain_err(|| format!("checking task `{}`", k))?;
Ok((k, v))
})
.collect::<Result<_>>()?,
};
- ::check::resources(&app)
- .chain_err(|| "checking `resources`")?;
+ ::check::resources(&app).chain_err(|| "checking `resources`")?;
Ok(app)
}
@@ -93,6 +92,17 @@ fn resources(app: &App) -> Result<()> {
bail!("resource `{}` is unused", resource);
}
+ for (name, task) in &app.tasks {
+ for resource in &task.resources {
+ ensure!(
+ app.resources.contains_key(&resource),
+ "task {} contains an undeclared resource with name {}",
+ name,
+ resource
+ );
+ }
+ }
+
Ok(())
}