diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2020-09-30 23:06:16 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2020-09-30 23:06:16 +0100 |
commit | 43253c508d990cf9d65a1c68cf5dbec8206db164 (patch) | |
tree | 5355f982aa2c2386672e21824d38227d74d4dfb4 /crates/hir_ty/src/infer/coerce.rs | |
parent | 7c9ae771bca39d511a0ea7395da2b4b91b44ee12 (diff) | |
parent | 0671bf2d734c6d579896a8f976a2c65e5a7f405e (diff) |
Merge #6102
6102: Fix MergingBehaviour::Last creating unintuitive import trees r=jonas-schievink a=Veykril
The way this behaviour currently works is actually a bit weird. Imagine the following three imports get requested for insertion in the given order:
- `winapi::um::d3d11::ID3D11Device`
- `winapi::shared::dxgiformat::DXGI_FORMAT`
- `winapi::um::d3d11::D3D11_FILTER`
After the first two you will have the following tree:
```rust
use winapi::{shared::dxgiformat::DXGI_FORMAT, um::d3d11::ID3D11Device};
```
which is to be expected as they arent nested this kind of merging is allowed, but now importing the third one will result in:
```rust
use winapi::{shared::dxgiformat::DXGI_FORMAT, um::d3d11::ID3D11Device, um::d3d11::D3D11_FILTER};
```
which is still fine according to the rules, but it looks weird(at least in my eyes) due to the long paths that are quite similar. The changes in this PR will change the criteria for when to reject `Last` merging, it still disallows multiple nesting but it also only allows single segment paths inside of the `UseTreeList`. With this change you get the following tree after the first two imports:
```rust
use winapi::um::d3d11::ID3D11Device;
use winapi::shared::dxgiformat::DXGI_FORMAT;
```
and after the third:
```rust
use winapi::shared::dxgiformat::DXGI_FORMAT;
use winapi::um::d3d11::{ID3D11Device, D3D11_FILTER};
```
Which I believe looks more like what you would expect.
Co-authored-by: Lukas Wirth <[email protected]>
Diffstat (limited to 'crates/hir_ty/src/infer/coerce.rs')
0 files changed, 0 insertions, 0 deletions