chalk icon indicating copy to clipboard operation
chalk copied to clipboard

An implementation and definition of the Rust trait system using a PROLOG-like logic solver

Results 54 chalk issues
Sort by recently updated
recently updated
newest added

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...

C-chalk-solve

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...

C-chalk-recursive

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....

C-chalk-solve

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...

C-chalk-solve

C-chalk-ir
C-chalk-solve

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...

bug
C-chalk-recursive

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...

meta

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.