Skip to content

Commit 01220f8

Browse files
authored
Merge pull request #81 from pulseengine/fix/reexporter-caller-already-converted
fix: set caller_already_converted for re-exporter adapter chains
2 parents 9d75edd + b71270b commit 01220f8

1 file changed

Lines changed: 14 additions & 0 deletions

File tree

meld-core/src/resolver.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1174,6 +1174,20 @@ impl Resolver {
11741174
graph.reexporter_components = reexporter_set.into_iter().collect();
11751175
}
11761176

1177+
// For adapters FROM a re-exporter TO the resource definer: the
1178+
// re-exporter's generated code already extracts rep via its handle
1179+
// table (ht_rep). The downstream adapter must not call resource.rep
1180+
// again, or it would double-extract.
1181+
for site in &mut graph.adapter_sites {
1182+
if graph.reexporter_components.contains(&site.from_component) {
1183+
for op in &mut site.requirements.resource_params {
1184+
if !op.is_owned && op.callee_defines_resource {
1185+
op.caller_already_converted = true;
1186+
}
1187+
}
1188+
}
1189+
}
1190+
11771191
// Synthesize missing resource imports.
11781192
//
11791193
// The component model's `canon lift` handles `resource.rep` and

0 commit comments

Comments
 (0)