2019.04.29 - 2019.06.10
Sprint goals around various focus points. Will be updated as needed.

Goal: extend chalk to cover bits of Rust it doesn’t cover

Support trait objects in chalk

  • add basic support for `dyn Trait` and `impl Trait` (chalk#218) — Keith Yeung
  • implied bounds support

Support specialization in chalk

  • support specialized impls (chalk#219) — Sunjay Varma
  • refactor the query struct so that lowering can do queries to determine what specializes what, and we can detect cycles?

Goal: Validate search strategy

  • support flexible predicate order selection (relatively easy)
  • built-in bounds support (prob not worth it right now)
  • control goal selection order: avoid negative goals? (prob not worth it right now)
  • proposal around non-enumerable clauses (chalk#217)
  • explain chalk-engine basics
  • explain chalk-engine in depth —- nikomatsakis
  • fix bug around co-inductive cycles
  • file an issue with test case — nikomatsakis

Goal: refactoring and improving chalk itself

  • reorganize crates around chalk-solve (chalk#224)  — detrumi
  • chalk-solve to become the ‘main’ crate
  • separate crate for repl
  • separate tests into tests directory, perhaps, or else into some subcrate
  • separate tests out and build on cargo test or something like that
  • API comments — set a goal to have #[deny(missing_docs)]

Goal: rustc-chalk interation improvements

  • get to the bottom of inference failure problems (on this PR)
  • run test files with new chalk integration mode
  • consider some kind of mode to let us run more broadly against run-pass (e.g., disabling region integration, or running in tandem with the existing solver)

Goal: lazy-norm and const

  • introduce canonicalization to const evaluation — nikomatsakis

Goal: trait upcasting

Goal: associated type bounds