diff --git a/roadmap.toml b/roadmap.toml index 7ebe647..949b4b5 100644 --- a/roadmap.toml +++ b/roadmap.toml @@ -19,7 +19,8 @@ items = [ name = "impl-trait" label = "Model `impl Trait`" items = [ - { label = "Preliminary model for opaque types where hidden types are known", status="Assigned", ref = "https://github.com/rust-lang/chalk/issues/335" } + { label = "Preliminary model for opaque types where hidden types are known", status="Assigned", ref = "https://github.com/rust-lang/chalk/issues/335" }, + { label = "Sketch out the integration plan", status="Assigned" }, ] [[group]] @@ -55,17 +56,39 @@ items = [ { label = "Align placeholders and ty::Param", status="Blocked" }, { label = "Move Identifier to TypeFamily", status="Complete" }, { label = "Adapt rustc's debruijn index model", port="debruijn", status="Assigned", href="https://github.com/rust-lang/chalk/issues/334" }, + { label = "Adapt rustc's representation of regions", status="Blocked" }, { label = "Remove all vectors, boxes" }, { label = "Introduce a `Visit` trait", href="https://github.com/rust-lang/chalk/issues/333", port="visit" }, + { label = "Add and integrate flags into types and elsewhere" }, +] + +[[group]] +name = "chalk-builtin-traits" +label = "Extend chalk-solve with knowledge of builtin-traits" +items = [ + { label="support the `Sized` trait", status="Blocked", href="https://github.com/rust-lang/chalk/issues/261" }, + { label="support the `Clone` trait", status="Blocked" }, + { label="support the `Copy` trait", status="Blocked" }, + { label="support the `Unsized` trait", status="Blocked" }, +] + +[[group]] +name = "chalk-const" +label = "Extend chalk to support constants" +items = [ + { label="introduce constant 'kind', alongside types and lifetimes", status="Blocked" }, ] [[group]] name = "rustc-integration-mvp" label = "Integrate chalk-solve into rustc" -requires = [ "map-chalk-types-to-rustc-types" ] +requires = [ "map-chalk-types-to-rustc-types", "chalk-const", "chalk-builtin-traits" ] items = [ - { label="remove old chalk support" }, - { label="create" }, + { label="remove old chalk support", status="Complete", href="https://github.com/rust-lang/rust/pull/69247" }, + { label="exploratory integration to better uncover requirements", href="https://github.com/rust-lang/rust/pull/69406", status="Assigned" }, + { label="map rustc types to chalk types", status="Blocked" }, + { label="map rustc predicates to chalk goals, clauses", status="Blocked" }, + { label="implement RustIrDatabase in trait", status="Blocked" }, ] [[group]] @@ -74,13 +97,23 @@ label = "Explore proposed language features" requires = [ "rustc-integration-mvp", "rust-analyzer-integration" ] status = "Blocked" items = [ - { label="implied bounds" }, + { label="Implied bounds" }, + { label="Specialization", href="https://github.com/rust-lang/chalk/issues/9" }, +] + +[[group]] +name = "chalk-debugging" +label = "Improve ability to debug chalk from within rustc or rust-analyzer" +requires = [ ] +items = [ + { label="Integrate tracing library", href="https://github.com/rust-lang/chalk/issues/337", status="Assigned" }, + { label="Extract standalone examples automatically" }, ] [[goal]] name = "library" label = "Chalk usable as a standalone library for traits solving" -requires = [ "rustc-integration-mvp", "rust-analyzer-integration" ] +requires = [ "rustc-integration-mvp", "rust-analyzer-integration", "chalk-debugging" ] [[goal]] name = "gats"