summaryrefslogtreecommitdiffstats
path: root/crates/rebel/src/context.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/rebel/src/context.rs')
-rw-r--r--crates/rebel/src/context.rs18
1 files changed, 12 insertions, 6 deletions
diff --git a/crates/rebel/src/context.rs b/crates/rebel/src/context.rs
index bf16546..b8090d1 100644
--- a/crates/rebel/src/context.rs
+++ b/crates/rebel/src/context.rs
@@ -437,19 +437,25 @@ impl Context {
Ok(Cow::Owned(ret))
}
- fn parent_ref<'ctx>(&'ctx self, dep: &'ctx ParentDep, args: &TaskArgs) -> Result<TaskRef> {
- let id = dep.dep.id.as_ref();
+ fn parent_ref<'ctx>(
+ &'ctx self,
+ dep_of: TaskIDRef<'ctx>,
+ dep: &'ctx ParentDep,
+ args: &TaskArgs,
+ ) -> Result<TaskRef> {
+ let id = dep.dep.id(dep_of.recipe);
let mapped_args = Context::map_args(id, &dep.dep.args, args, false)?;
self.task_ref(id, mapped_args.as_ref())
}
pub fn output_ref<'ctx>(
&'ctx self,
+ dep_of: TaskIDRef<'ctx>,
dep: &'ctx OutputDep,
args: &TaskArgs,
build_dep: bool,
) -> Result<OutputRef<'ctx>> {
- let id = dep.dep.id.as_ref();
+ let id = dep.dep.id(dep_of.recipe);
let mapped_args = Context::map_args(id, &dep.dep.args, args, build_dep)?;
Ok(OutputRef {
task: self.task_ref(id, mapped_args.as_ref())?,
@@ -465,7 +471,7 @@ impl Context {
let Some(parent) = &task.parent else {
return Ok(None);
};
- Some(self.parent_ref(parent, &task_ref.args)).transpose()
+ Some(self.parent_ref(task_ref.id, parent, &task_ref.args)).transpose()
}
fn ancestor_iter<'ctx>(
@@ -504,7 +510,7 @@ impl Context {
.build_depends
.iter()
.filter(|dep| allow_noinherit || !dep.noinherit)
- .map(|dep| self.output_ref(dep, &current_ref.args, true))
+ .map(|dep| self.output_ref(task_ref.id, dep, &current_ref.args, true))
.collect::<Result<Vec<_>>>()?;
ret.extend(entries);
@@ -528,7 +534,7 @@ impl Context {
.depends
.iter()
.filter(|dep| allow_noinherit || !dep.noinherit)
- .map(|dep| self.output_ref(dep, &current_ref.args, false))
+ .map(|dep| self.output_ref(task_ref.id, dep, &current_ref.args, false))
.collect::<Result<Vec<_>>>()?;
ret.extend(entries);