Description
c16d3f3 has made it impossible to import some structures in rustc_mir_framework
when implementing dataflow analyses in external tools.
When implementing AnalysisDomain
for a custom dataflow problem, we can no longer import the Forward
or Backward
direction. Here is the source code of such an implementation. Forward
is needed to set the Direction
type of the AnalysisDomain
trait. Previously, it was available under the pub use
export, but for now it is private.
The default implementation of the AnalysisDomain::Direction
is Forward
, so I can simply use the default value as a workaround. However, if I need to write a backward analysis, I must rewrite some parts of the framework in our source code because they cannot be imported.
There are other tools in the ecosystem that use that API, e.g.:
These changes will make problems if they decide to update to the recent toolchain.
Could you please take a look at this matter? Are these changes intentional? Could we make some of the exports public again?
cc @nnethercote
Activity
Noratrieb commentedon Jan 19, 2024
Feel free to send in a PR to make it public again. Please add a comment on the items saying they're used by external tools.
jubnzv commentedon Jan 19, 2024
I will double-check which of the removed imports might be beneficial for external tools and will send a PR if there are no objections.
rustc_mir_dataflow: Add exports for external tools
7 remaining items