chalk
chalk copied to clipboard
An implementation and definition of the Rust trait system using a PROLOG-like logic solver
This is a meta issue for the work of extending chalk to support the various built-in traits like `Sized`, `Copy`, and so forth. * [x] Extend `TraitDefn` with concept of...
The recursive solver introduced by @flodiebold in https://github.com/rust-lang/chalk/issues/351 isn't handling coinduction correctly. A number of the tests have "FIXME" results. ([See comment.](https://github.com/rust-lang/chalk/pull/372#discussion_r408708780)) This issue has been assigned to @zaharidichev via...
Currently the `RustIrDatabase` trait has methods that return `Arc`, but this doesn't map that well to rustc, as it must create these awkward types. We could instead have finer-grained methods....
As discussed in [this Zulip thread](https://zulip-archive.rust-lang.org/144729wgtraits/66779mapfromcanonical.html), the existing canonical logic is broken: * First, `map_from_canonical` needs to remap the universes in the canonical binders * Second, we need to preserve...
While debugging a separate issue, I noticed that in our tests all WF checks are done by the SLG solver. Out of curiosity I tried using the recursive solver for...
The following code compiles in rustc: ```rust fn f(u: T) { let x = u.into(); x.as_str(); } ``` This works even though there are other (blanket) impls that could apply...
In #224, @matklad suggested using "test coverage marks" to manually track test coverage: https://github.com/rust-analyzer/rust-analyzer/blob/ef782adc293deb287128f005dbab2038ba3ccdc1/crates/test_utils/src/marks.rs This seems like a great idea, although I wonder if we can come up with a...
To print debug info that is not present in the internal representation of terms in chalk (struct and trait names, for example) we use a thread local storage, all info...
We should create some benchmarks, so we can track runtime and memory usage later.