If I have an explicit import node that is itself importing some dependent package foo and then I am also implicitly importing foo due to some usage elsewhere, the graph encoding will not aggregate and merge those two usages leading to the implicitly imported version always being used. If there are some pieces of the interface in the version from the explicit import that are not present in the implicitly imported version, then encoding will be wrong.
This is because import nodes use the type collection on the CompositionGraph which has not had its interfaces aggregated:
|
self.import(&mut state, name, &self.0.types, node.item_kind) |