Skip to content

save-analysis: use a decoupled representation for dumped data #33348

Closed
@aochagavia

Description

@aochagavia

Currently, the Dump trait exposes internal types of the compiler, which is undesirable. It also forces the trait's implementors to write lowering code (as can be seen in the current implementation of json_dumper).

Proposed solution

  1. Create a new module in save-analysis called external_data where the new *Data structs will live (they can be moved from json_dumper, along with the lowering code).
  2. Modify the Dump trait to operate on save_analysis::external_data::* instead of on save_analysis::data::*.

Some open problems

When getting a DefId from a NodeId, what should we do when tcx.map.opt_local_def_id(node_id) returns None? What does that mean? If we call the function with a NodeId provided by the compiler, should it always succeed? The current code doesn't make that assumption (see data.rs)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions