Skip to content

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

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)

Activity

  1. aochagavia commented on May 2, 2016

    @aochagavia
    ContributorAuthor

    cc @nrc

    Do you know the answer to my questions in the open problems part?

  2. nrc commented on May 2, 2016

    @nrc
    Member

    @aochagavia if the def id is from the local crate, then it should never return None. I think we can assume that and just unwrap. We do need to make sure we only call with local ids though, it is possible we could get a NodeId from an extern crate (via metadata or something?).

  3. added 3 commits that reference this issue on May 9, 2016
    af60d4c
    6e7bfd7
    9f5f997
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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