Skip to content

mir_framework: Problem with exports used by external tools #120130

Closed
@jubnzv

Description

@jubnzv

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-MIRArea: Mid-level IR (MIR) - https://blog.rust-lang.org/2016/04/19/MIR.htmlC-feature-requestCategory: A feature request, i.e: not implemented / a PR.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions