Skip to content

Updated roadmap for traits #35

@cdstanford

Description

@cdstanford

New roadmap for traits. Replaces #30

For v0:

  • add tracking code to maintain, for each trait, the total set of caller-checked effects and unsafety for that trait (in the current package scope, among all implementations)
  • add information to our audit/policy files: in addition to the public functions, we also need the traits (both implemented by and exposed by/declared by that crate). For each trait: whether caller-checked or unsafe, which specific caller-checked effects
  • In the call graph in scanner, make sure trait methods are added to the call graph
  • In the call graph in scanner, make sure name resolution for traits points to the abstract trait as added to the call graph.

Possibly for v0, or save for v1:

  • In the call graph in scanner, add specific trait implementations in addition to the abstract trait method
  • In a non-generic context when we know the trait that is pointed to, point to the specific trait implementation instead of the abstract trait method.
  • For dynamic trait objects, just point to the abstract trait method

For v1:

  • For dynamic trait objects, track which specific possible trait impls it could point to
  • For traits called in a generic context, track which specific possible trait impls it could point to

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions