Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated roadmap for traits #35

Open
5 of 7 tasks
cdstanford opened this issue Jun 1, 2023 · 0 comments
Open
5 of 7 tasks

Updated roadmap for traits #35

cdstanford opened this issue Jun 1, 2023 · 0 comments
Labels
roadmap-v1 Roadmap for v1.0

Comments

@cdstanford
Copy link
Collaborator

cdstanford commented Jun 1, 2023

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
@cdstanford cdstanford added roadmap-v0 On the current roadmap roadmap-v1 Roadmap for v1.0 labels Jun 1, 2023
@cdstanford cdstanford removed the roadmap-v0 On the current roadmap label Oct 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
roadmap-v1 Roadmap for v1.0
Projects
None yet
Development

No branches or pull requests

1 participant