diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2020-05-22 18:31:39 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2020-05-22 18:31:39 +0100 |
commit | b38f9a5810f28563c45acb1ae8b82438649227c9 (patch) | |
tree | ea6b68dcbd47a92a5615c74723ae69dafd7d47f9 /crates/ra_hir_ty/src/traits.rs | |
parent | c5a22715809fa79b2c77d461c2161dbf5ebb411a (diff) | |
parent | e0f978018aad1a48390189ce54372913f324b2e3 (diff) |
Merge #4570
4570: Use Chalk's built-in impls r=matklad a=flodiebold
This contains two changes:
- Chalk has begun adding built-in representations of primitive types; use these in our type conversion logic. There's one somewhat 'iffy' part here, namely references; we don't keep track of lifetimes, but Chalk does, so it will expect a lifetime parameter on references. If we didn't provide that, it could cause crashes in Chalk code that expects the lifetime, so I rather hackily add an (always the same) lifetime placeholder during conversion. I expect that we'll fully switch to using Chalk's types everywhere before we add lifetime support, so I think this is the best solution for now.
- let Chalk know about well-known traits (from lang items), so it can apply its built-in impls.
Before:
```
Total expressions: 181485
Expressions of unknown type: 2940 (1%)
Expressions of partially unknown type: 2884 (1%)
Type mismatches: 901
Inference: 37.821210245s, 0b allocated 0b resident
Total: 53.399467609s, 0b allocated 0b resident
```
After:
```
Total expressions: 181485
Expressions of unknown type: 2923 (1%)
Expressions of partially unknown type: 2879 (1%)
Type mismatches: 734
Inference: 39.157752509s, 0b allocated 0b resident
Total: 54.110767621s, 0b allocated 0b resident
```
(I will start splitting up `chalk.rs` in a separate PR, since it's getting pretty big...)
Co-authored-by: Florian Diebold <[email protected]>
Co-authored-by: Florian Diebold <[email protected]>
Diffstat (limited to 'crates/ra_hir_ty/src/traits.rs')
0 files changed, 0 insertions, 0 deletions