Loading...
[NOTES] Upcoming Traits Work
Possible path
improve higher-ranked types, lifetimes
(needs
issue)
Reason:
Chalk adopted an improved way of handling higher-ranked terms
This will fix some bugs in the existing system
(e.g.,
#32330
) but also allows us to be much more expressive
Needed, in particular, to support Generic Associated Types
(GATs)
Much work has been done here, but there is more to do
Total estimate: 84 person-hours
Steps:
add a way to represent bound types in rustc
Estimate: 40 person-hours
prepare variant of lexical solver using universes instead
Estimate: 24 person-hours
integrate universes into canonicalization
(
48696
)
Estimate: 24 person-hours
integrate chalk under a flag
(
48049
)
Reason:
G
ateway to many features:
GATs, specialization, implied bounds
(link
to RFCs)
Need to have something we can test to help direct further work
Initial goal is to check some very simple Rust programs using Chalk
add non-normalized projection variant
(
53683
)
Estimate: 24 person-hours
finish
lowering rules
(
49177
)
Estimate: 16 person-hours
implement very naive procedure to find the lowered rules for a given domain goal
Estimate: 24 person-hours
implement non-naive procedure for finding lowered rules for a given domain goal, integrating with incremental compilation
Estimate: 40 person-hours
implement unification procedures in integration
Estimate: 24 person-hours
implement
other bits of
integration
(fill
in panics)
Estimate: 24 person-hours
preliminary support for GATs
(
44265
)
a lot of people have been asking for this!
see tracking issue, …
https://lukaskalbertodt.github.io/2018/08/03/solving-the-generalized-streaming-iterator-problem-without-gats.html
parsing for GATs: fix tests
(
comment
)
Estimated time: 24 person-hours
improve test coverage
(
comment
)
Estimated time: 16 person-hours
Lower information to HIR and propagate to the chalk rules
Estimated time: 32 person-hours
Please turn on JavaScript to use Paper in all of its awesomeness. ^_^
Possible path
improve higher-ranked types, lifetimes (needs issue)
integrate chalk under a flag (48049)
preliminary support for GATs (44265)