Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Implement Chalk's debug methods using TLS | Florian Diebold | 2020-04-10 | 2 | -42/+270 | |
| | | | | | | | | | | Chalk now panics if we don't implement these methods and run with CHALK_DEBUG, so I thought I'd try to implement them 'properly'. Sadly, it seems impossible to do without transmuting lifetimes somewhere. The problem is that we need a `&dyn HirDatabase` to get names etc., which we can't just put into TLS. I thought I could just use `scoped-tls`, but that doesn't support references to unsized types. So I put the `&dyn` into another struct and put the reference to *that* into the TLS, but I have to transmute the lifetime to 'static for that to work. | |||||
* | Fix Chalk panic | Florian Diebold | 2020-04-06 | 1 | -1/+6 | |
| | | | | | Fixes #3865. Basically I forgot to shift 'back' when we got `dyn Trait`s back from Chalk, so after going through Chalk a few times, the panic happened. | |||||
* | Upgrade Chalk again | Florian Diebold | 2020-04-05 | 2 | -30/+53 | |
| | | | | | | | The big change here is counting binders, not variables (https://github.com/rust-lang/chalk/pull/360). We have to adapt to the same scheme for our `Ty::Bound`. It's mostly fine though, even makes some things more clear. | |||||
* | Upgrade Chalk | Florian Diebold | 2020-04-05 | 1 | -24/+99 | |
| | ||||||
* | Use `dyn Trait` for working with databse | Aleksey Kladov | 2020-03-16 | 2 | -77/+70 | |
| | | | | | | | It improves compile time in `--release` mode quite a bit, it doesn't really slow things down and, conceptually, it seems closer to what we want the physical architecture to look like (we don't want to monomorphise EVERYTHING in a single leaf crate). | |||||
* | Drop larlpop-intern dep | Laurențiu Nicola | 2020-03-03 | 1 | -2/+2 | |
| | ||||||
* | Update chalk for Ty interners | Laurențiu Nicola | 2020-03-02 | 1 | -8/+11 | |
| | ||||||
* | Update chalk for RawId removal | Laurențiu Nicola | 2020-03-02 | 1 | -13/+7 | |
| | ||||||
* | Rename ast::ImplBlock -> ast::ImplDef | Aleksey Kladov | 2020-02-29 | 2 | -5/+5 | |
| | ||||||
* | Bump chalk and replace TypeFamily with Interner | Laurențiu Nicola | 2020-02-24 | 1 | -49/+58 | |
| | ||||||
* | Shorten some code | Florian Diebold | 2020-02-22 | 1 | -4/+1 | |
| | ||||||
* | Rework find_super_trait_path to protect against cycles | Florian Diebold | 2020-02-22 | 1 | -4/+2 | |
| | ||||||
* | Add &dyn Trait -> &dyn SuperTrait coercion, and fix &T -> &dyn Trait | Florian Diebold | 2020-02-22 | 1 | -30/+65 | |
| | ||||||
* | Implement dyn Trait unsizing as well | Florian Diebold | 2020-02-22 | 2 | -8/+108 | |
| | ||||||
* | Implement unsize coercion using proper trait solving | Florian Diebold | 2020-02-22 | 1 | -1/+60 | |
| | ||||||
* | More manual clippy fixes | Kirill Bulatov | 2020-02-18 | 2 | -4/+3 | |
| | ||||||
* | Run cargo +nightly fix --clippy -Z unstable-options | Kirill Bulatov | 2020-02-18 | 2 | -8/+8 | |
| | ||||||
* | Rename Ty::Param => Ty::Placeholder | Florian Diebold | 2020-02-14 | 1 | -2/+2 | |
| | | | | This aligns more with Chalk. | |||||
* | Formatting | Florian Diebold | 2020-02-07 | 1 | -3/+8 | |
| | ||||||
* | Use variables in predicates as well | Florian Diebold | 2020-02-07 | 1 | -3/+3 | |
| | ||||||
* | Change Ty::Param to contain param ID | Florian Diebold | 2020-02-07 | 1 | -12/+12 | |
| | ||||||
* | Upgrade Chalk | Florian Diebold | 2020-01-27 | 1 | -55/+53 | |
| | ||||||
* | Filter out error predicates in type bounds as well | Florian Diebold | 2019-12-22 | 1 | -2/+12 | |
| | ||||||
* | Introduce our own Chalk TypeFamily, instead of using ChalkIr | Florian Diebold | 2019-12-22 | 2 | -83/+122 | |
| | | | | | | It's not very different, except we can directly use Salsa IDs instead of casting them. This means we need to refactor the handling of errors to get rid of UNKNOWN_TRAIT though. | |||||
* | Refactor Chalk integration some more | Florian Diebold | 2019-12-22 | 1 | -72/+76 | |
| | ||||||
* | Update Chalk, clean up Chalk integration a bit | Florian Diebold | 2019-12-22 | 1 | -93/+87 | |
| | ||||||
* | Use generic ItemLoc for impls | Aleksey Kladov | 2019-12-20 | 1 | -1/+1 | |
| | ||||||
* | Support for nested traits | Aleksey Kladov | 2019-12-20 | 1 | -2/+4 | |
| | ||||||
* | Rename ContainerId -> AssocContainerId | Aleksey Kladov | 2019-12-20 | 1 | -3/+3 | |
| | ||||||
* | Rename N! to name! | Florian Diebold | 2019-12-13 | 1 | -3/+3 | |
| | ||||||
* | Add macros for known names and paths | Florian Diebold | 2019-12-13 | 1 | -3/+3 | |
| | ||||||
* | Move traits to the new loc | Aleksey Kladov | 2019-12-12 | 1 | -4/+2 | |
| | ||||||
* | Switch to the new location for impls | Aleksey Kladov | 2019-12-12 | 1 | -1/+1 | |
| | ||||||
* | Refactor parameter count tracking | Aleksey Kladov | 2019-12-07 | 1 | -1/+1 | |
| | ||||||
* | Remove idx and parent generics from generics | Aleksey Kladov | 2019-12-07 | 1 | -7/+7 | |
| | | | | | This makes `hir_def::GenericParams` flatter. The logic for re-numbering the params is moved to hir instead. | |||||
* | Extract built-in trait implementations to separate module | Florian Diebold | 2019-12-03 | 2 | -127/+218 | |
| | | | | This untangles the builtin logic from the Chalk translation. | |||||
* | Handle cycles in impl types better | Florian Diebold | 2019-11-30 | 1 | -11/+4 | |
| | | | | | | - impl Trait<Self> for S is allowed - impl Trait for S<Self> is an invalid cycle, but we can add cycle recovery for it in Salsa now | |||||
* | Memoize impl resolutions | Aleksey Kladov | 2019-11-27 | 1 | -20/+14 | |
| | ||||||
* | Move Ty | Aleksey Kladov | 2019-11-27 | 1 | -0/+906 | |