In order:
- Support primitives
- Support structs
- Support enums
- Support unions
- [-] Support
type
aliases- Need to make it so that in
type X = String
, X depends on String. This will require modification of theType
branch inuser_defined_types
- Support type generics
type X<T: Y> = ...
depends on Y
- Need to make it so that in
- Support traits
- Want some sort of enum to distinguish between struct/enum/primitive/trait dependence
- [N] Extra trait dependences (same as type aliases)
- Support
where
clauses - Allow traits to depend on other traits
trait A: B {}
- Support trait generics
trait X<T: Y>
depends on Y
- Support generics / trait bounds
- Tricky since generics introduce scope. Two A's in diff structs are not the same A
- Remove self-loops in example 7
- Improve
base_types
to supportBox<T>
,Map<K,V>
, etc - Add flag for showing builtin/primitive types (ex: Box/u8)
- Support multi-file projects
- Support modules
- For now, I am just using the type name as given by syn, which is not very robust.