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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions