Guillaume Gomez
e596aa294b
Rollup merge of #87188 - GuillaumeGomez:gui-test-auto-hide-trait-impl, r=notriddle
...
Add GUI test for auto-hide-trait-implementations setting
Fixes #85592 .
r? ``@notriddle``
2021-07-16 19:54:10 +02:00
Guillaume Gomez
12ed22ffe4
Rollup merge of #87180 - notriddle:notriddle/sidebar-keyboard-mobile, r=GuillaumeGomez
...
feat(rustdoc): open sidebar menu when links inside it are focused
Fixes #87172
Based on #87167 (which should be merged first)
r? ``@GuillaumeGomez``
Preview it at https://notriddle.com/notriddle-rustdoc-test/std/index.html
2021-07-16 19:54:08 +02:00
Guillaume Gomez
4fbac2994f
Rollup merge of #87179 - fee1-dead:active-const-impl, r=oli-obk
...
Mark `const_trait_impl` as active
See [this zulip thread](https://rust-lang.zulipchat.com/#narrow/stream/146212-t-compiler.2Fconst-eval/topic/implementation.20path.20for.20const.20trait.20impls ).
r? ``@oli-obk``
2021-07-16 19:54:06 +02:00
Guillaume Gomez
7c5cabe30f
Rollup merge of #87174 - inquisitivecrystal:array-map, r=kennytm
...
Stabilize `[T; N]::map()`
This stabilizes the `[T; N]::map()` function, gated by the `array_map` feature. The FCP has [already completed.](https://github.com/rust-lang/rust/issues/75243#issuecomment-878448138 )
Closes #75243 .
2021-07-16 19:54:04 +02:00
Guillaume Gomez
effea681c0
Rollup merge of #87158 - In-line:suggest-full-enum-variant-for-local-module, r=estebank
...
Suggest full enum variant for local modules
2021-07-16 19:54:02 +02:00
Guillaume Gomez
8273567a71
Rollup merge of #87107 - oli-obk:tait_double, r=nikomatsakis
...
Loop over all opaque types instead of looking at just the first one with the same DefId
This exposed a bug in VecMap and is needed for https://github.com/rust-lang/rust/pull/86410 anyway
r? ``@spastorino``
cc ``@nikomatsakis``
2021-07-16 19:53:59 +02:00
Oli Scherer
ebe21ac23a
Infer all inference variables via InferCx
...
The previous algorithm was correct for the example given in its
documentation, but when the TAIT was declared as a free item
instead of an associated item, the generic parameters were the
wrong ones.
2021-07-16 17:37:28 +00:00
Oli Scherer
24a8d3bce3
Add some more tracing instrumentation
2021-07-16 17:34:17 +00:00
bors
c49895d904
Auto merge of #84623 - jackh726:gats-incomplete, r=nikomatsakis
...
Make GATs no longer an incomplete feature
Blocked on ~#84622~, ~#82272~, ~#76826~
r? `@nikomatsakis`
2021-07-16 16:23:15 +00:00
Jane Lusby
93b7aee2da
rename assert_matches module
2021-07-16 09:18:14 -07:00
Michael Howell
0ea2980ae5
feat(rustdoc): open sidebar menu when links inside it are focused
...
Fixes #87172
Based on #87167 (which should be merged first)
Preview it at https://notriddle.com/notriddle-rustdoc-test/std/index.html
Co-authored-by: Guillaume Gomez <guillaume.gomez@huawei.com>
2021-07-16 08:32:20 -07:00
bors
2119976c49
Auto merge of #87140 - camsteffen:pat-slice-refs, r=oli-obk
...
Remove refs from Pat slices
Changes `PatKind::Or(&'hir [&'hir Pat<'hir>])` to `PatKind::Or(&'hir [Pat<'hir>])` and others. This is more consistent with `ExprKind`, saves a little memory, and is a little easier to use.
2021-07-16 13:35:48 +00:00
Guillaume Gomez
f6efa33566
Add GUI test for auto-hide-trait-implementations setting
2021-07-16 15:15:23 +02:00
Ralf Jung
a5299fb688
add some comments regarding the two major quirks of our memory model
2021-07-16 13:16:09 +02:00
bors
59d92bd017
Auto merge of #87182 - GuillaumeGomez:rollup-whwohua, r=GuillaumeGomez
...
Rollup of 7 pull requests
Successful merges:
- #86983 (Add or improve natvis definitions for common standard library types)
- #87069 (ExprUseVisitor: Treat ByValue use of Copy types as ImmBorrow)
- #87138 (Correct invariant documentation for `steps_between`)
- #87145 (Make --cap-lints and related options leave crate hash alone)
- #87161 (RFC2229: Use the correct place type)
- #87162 (Fix type decl layout "overflow")
- #87167 (Fix sidebar display on small devices)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
2021-07-16 09:28:22 +00:00
Ralf Jung
0d3d6f05f1
fix typo in compile_fail doctest
2021-07-16 10:31:56 +02:00
Ralf Jung
7c720ce612
get rid of incorrect erase_for_fmt
2021-07-16 10:09:56 +02:00
Guillaume Gomez
b19f37ca54
Rollup merge of #87167 - GuillaumeGomez:sidebar-display-mobile, r=notriddle
...
Fix sidebar display on small devices
Part of #87059 .
Instead of hiding the sidebar on small devices, we instead move it out of the viewport so that it remains "visible" to our text only users.
Could you confirm it works for you `@ahicks92` and `@DataTriny` please? You can give it a try at [this URL](https://guillaume-gomez.fr/rustdoc-test/test_docs/index.html ).
r? `@notriddle`
2021-07-16 10:08:11 +02:00
Guillaume Gomez
a547abe929
Rollup merge of #87162 - GuillaumeGomez:type-decl-overflow, r=notriddle
...
Fix type decl layout "overflow"
Before:
![Screenshot from 2021-07-15 17-56-12](https://user-images.githubusercontent.com/3050060/125822644-c4595211-d75e-4dd7-ba44-183197ee836c.png )
After:
![Screenshot from 2021-07-15 17-56-17](https://user-images.githubusercontent.com/3050060/125822648-7b363847-e153-4ff3-9fba-59478e32eced.png )
cc ```@SergioBenitez```
r? ```@notriddle```
2021-07-16 10:08:09 +02:00
Guillaume Gomez
41433795e7
Rollup merge of #87161 - sexxi-goose:fix-issue-87097, r=nikomatsakis
...
RFC2229: Use the correct place type
Closes https://github.com/rust-lang/rust/issues/87097
The ICE occurred because instead of looking at the type of the place after all the projections are applied, we instead looked at the `base_ty` of the Place to decide whether a discriminant should be read of not. This lead to two issues:
1. the kind of the type is not necessarily `Adt` since we only look at the `base_ty`, it could be instead `Ref` for example
2. if the kind of the type is `Adt` you could still be looking at the wrong variant to make a decision on whether the discriminant should be read or not
r? `@nikomatsakis`
2021-07-16 10:08:08 +02:00
Guillaume Gomez
c1b9bbf1e7
Rollup merge of #87145 - jsgf:fix-lint-opt-hash, r=michaelwoerister
...
Make --cap-lints and related options leave crate hash alone
Closes : #87144
2021-07-16 10:08:07 +02:00
Guillaume Gomez
36de8778fc
Rollup merge of #87138 - dhwthompson:fix-range-invariant, r=JohnTitor
...
Correct invariant documentation for `steps_between`
Given that the previous example involves stepping forward from A to B, the equivalent example on this line would make most sense as stepping backward from B to A.
I should probably add a caveat here that I’m fairly new to Rust, and this is my first contribution to this repo, so it’s very possible that I’ve misunderstood how this is supposed to work (either on a technical level or a social one). If this is the case, please do let me know.
2021-07-16 10:08:06 +02:00
Guillaume Gomez
c1ffca0869
Rollup merge of #87069 - sexxi-goose:copy_ref_always, r=nikomatsakis
...
ExprUseVisitor: Treat ByValue use of Copy types as ImmBorrow
r? ```@nikomatsakis```
2021-07-16 10:08:05 +02:00
Guillaume Gomez
f4e47ba3f1
Rollup merge of #86983 - wesleywiser:natvis_std_types, r=michaelwoerister
...
Add or improve natvis definitions for common standard library types
Natvis definitions are used by Windows debuggers to provide a better experience when inspecting a value for types with natvis definitions. Many of our standard library types and intrinsic Rust types like slices and `str` already have natvis definitions.
This PR adds natvis definitions for missing types (like all of the `Atomic*` types) and improves some of the existing ones (such as showing the ref count on `Arc<T>` and `Rc<T>` and showing the borrow state of `RefCell<T>`). I've also added cdb tests to cover these definitions and updated existing tests with the new visualizations.
With this PR, the following types now visualize in a much more intuitive way:
### Type: `NonZero{I,U}{8,16,32,64,128,size}`, `Atomic{I,U}{8,16,32,64,size}`, `AtomicBool` and `Wrapping<T>`
<details><summary>Example:</summary>
```rust
let a_u32 = AtomicU32::new(32i32);
```
```
0:000> dx a_u32
a_u32 : 32 [Type: core::sync::atomic::AtomicU32]
[<Raw View>] [Type: core::sync::atomic::AtomicU32]
```
</details>
### Type: `Cell<T>` and `UnsafeCell<T>`
<details><summary>Example:</summary>
```rust
let cell = Cell::new(123u8);
let unsafecell = UnsafeCell::new((42u16, 30u16));
```
```
0:000> dx cell
cell : 123 [Type: core::cell::Cell<u8>]
[<Raw View>] [Type: core::cell::Cell<u8>]
0:000> dx unsafecell
unsafecell : (42, 30) [Type: core::cell::UnsafeCell<tuple<u16, u16>>]
[<Raw View>] [Type: core::cell::UnsafeCell<tuple<u16, u16>>]
[0] : 42 [Type: unsigned short]
[1] : 30 [Type: unsigned short]
```
</details>
### Type: `RefCell<T>`
<details><summary>Example:</summary>
```rust
let refcell = RefCell::new((123u16, 456u32));
```
```
0:000> dx refcell
refcell : (123, 456) [Type: core::cell::RefCell<tuple<u16, u32>>]
[<Raw View>] [Type: core::cell::RefCell<tuple<u16, u32>>]
[Borrow state] : Unborrowed
[0] : 123 [Type: unsigned short]
[1] : 456 [Type: unsigned int]
```
</details>
### Type: `NonNull<T>` and `Unique<T>`
<details><summary>Example:</summary>
```rust
let nonnull: NonNull<_> = (&(10, 20)).into();
```
```
0:000> dx nonnull
nonnull : NonNull(0x7ff6a5d9c390: (10, 20)) [Type: core::ptr::non_null::NonNull<tuple<i32, i32>>]
[<Raw View>] [Type: core::ptr::non_null::NonNull<tuple<i32, i32>>]
[0] : 10 [Type: int]
[1] : 20 [Type: int]
```
</details>
### Type: `Range<T>`, `RangeFrom<T>`, `RangeInclusive<T>`, `RangeTo<T>` and `RangeToInclusive<T>`
<details><summary>Example:</summary>
```rust
let range = (1..12);
let rangefrom = (9..);
let rangeinclusive = (32..=80);
let rangeto = (..42);
let rangetoinclusive = (..=120);
```
```
0:000> dx range
range : (1..12) [Type: core::ops::range::Range<i32>]
[<Raw View>] [Type: core::ops::range::Range<i32>]
0:000> dx rangefrom
rangefrom : (9..) [Type: core::ops::range::RangeFrom<i32>]
[<Raw View>] [Type: core::ops::range::RangeFrom<i32>]
0:000> dx rangeinclusive
rangeinclusive : (32..=80) [Type: core::ops::range::RangeInclusive<i32>]
[<Raw View>] [Type: core::ops::range::RangeInclusive<i32>]
0:000> dx rangeto
rangeto : (..42) [Type: core::ops::range::RangeTo<i32>]
[<Raw View>] [Type: core::ops::range::RangeTo<i32>]
0:000> dx rangetoinclusive
rangetoinclusive : (..=120) [Type: core::ops::range::RangeToInclusive<i32>]
[<Raw View>] [Type: core::ops::range::RangeToInclusive<i32>]
```
</details>
### Type: `Duration`
<details><summary>Example:</summary>
```rust
let duration = Duration::new(5, 12);
```
```
0:000> dx duration
duration : 5s 12ns [Type: core::time::Duration]
[<Raw View>] [Type: core::time::Duration]
seconds : 5 [Type: unsigned __int64]
nanoseconds : 12 [Type: unsigned int]
```
</details>
### Type: `ManuallyDrop<T>`
<details><summary>Example:</summary>
```rust
let manuallydrop = ManuallyDrop::new((123, 456));
```
```
0:000> dx manuallydrop
manuallydrop : (123, 456) [Type: core::mem::manually_drop::ManuallyDrop<tuple<i32, i32>>]
[<Raw View>] [Type: core::mem::manually_drop::ManuallyDrop<tuple<i32, i32>>]
[0] : 123 [Type: int]
[1] : 456 [Type: int]
```
</details>
### Type: `Pin<T>`
<details><summary>Example:</summary>
```rust
let mut s = "this".to_string();
let pin = Pin::new(&mut s);
```
```
0:000> dx pin
pin : Pin(0x11a0ff6f0: "this") [Type: core::pin::Pin<mut alloc::string::String*>]
[<Raw View>] [Type: core::pin::Pin<mut alloc::string::String*>]
[len] : 4 [Type: unsigned __int64]
[capacity] : 4 [Type: unsigned __int64]
[chars]
```
</details>
### Type: `Rc<T>` and `Arc<T>`
<details><summary>Example:</summary>
```rust
let rc = Rc::new(42i8);
let rc_weak = Rc::downgrade(&rc);
```
```
0:000> dx rc
rc : 42 [Type: alloc::rc::Rc<i8>]
[<Raw View>] [Type: alloc::rc::Rc<i8>]
[Reference count] : 1 [Type: core::cell::Cell<usize>]
0:000> dx rc_weak
rc_weak : 42 [Type: alloc::rc::Weak<i8>]
[<Raw View>] [Type: alloc::rc::Weak<i8>]
```
</details>
r? ```@michaelwoerister```
cc ```@nanguye2496```
2021-07-16 10:07:59 +02:00
bors
a6470c7fa8
Auto merge of #86662 - mockersf:fix-86620-link-unknown-location, r=jyn514
...
fix dead link for method in trait of blanket impl from third party crate
fix #86620
* changes `href` method to raise the actual error it had instead of an `Option`
* set the href link correctly in case of an error
I did not manage to make a small reproducer, I think it happens in a situation where
* crate A expose a trait with a blanket impl
* crate B use the trait from crate A
* crate C use types from crate B
* building docs for crate C without dependencies
r? `@jyn514`
2021-07-16 06:44:10 +00:00
Jack Huey
f1ab6f93e6
Make GATs no longer incomplete
2021-07-16 00:22:01 -04:00
bors
057050a95b
Auto merge of #87177 - ehuss:update-cargo, r=ehuss
...
Update cargo
6 commits in 66a6737a0c9f3a974af2dd032a65d3e409c77aac..27277d966b3cfa454d6dea7f724cb961c036251c
2021-07-14 20:54:28 +0000 to 2021-07-16 00:50:39 +0000
- Flag another curl error as possibly spurious (rust-lang/cargo#9695 )
- Add `d` as an alias for `doc` (rust-lang/cargo#9680 )
- `cargo fix --edition`: extend warning when on latest edition (rust-lang/cargo#9694 )
- Update env_logger requirement from 0.8.1 to 0.9.0 (rust-lang/cargo#9688 )
- Document cargo limitation w/ workspaces & configs (rust-lang/cargo#9674 )
- Change some warnings to errors (rust-lang/cargo#9689 )
2021-07-16 04:03:12 +00:00
Deadbeef
8841a426e5
Mark const_trait_impl
as active
2021-07-16 11:54:00 +08:00
Eric Huss
7ca38eee66
Update cargo
2021-07-15 19:27:11 -07:00
bors
27e4205881
Auto merge of #86993 - jackh726:project-gat-binders, r=nikomatsakis
...
Replace associated item bound vars with placeholders when projecting
Fixes #76407
Fixes #76826
Similar, but more limited, to #85499 . This allows us to handle things like `for<'a> <T as Trait>::Assoc<'a>` but not `for<'a> <T as Trait<'a>>::Assoc`, unblocking GATs.
r? `@nikomatsakis`
2021-07-16 01:11:37 +00:00
inquisitivecrystal
7fc4fc747c
Stabilize [T; N]::map()
2021-07-15 16:27:08 -07:00
xFrednet
d38f2b0cc1
Added diagnostic items to structs and traits for Clippy
2021-07-15 23:57:02 +02:00
xFrednet
1a900042ab
Added diagnostic items to functions for Clippy
2021-07-15 23:47:03 +02:00
Cameron Steffen
1537cd4fb1
Remove refs from pat slices
2021-07-15 16:09:57 -05:00
Ralf Jung
4e28065618
tweak pointer out-of-bounds error message
2021-07-15 22:47:11 +02:00
Guillaume Gomez
868ffd03ed
Add test for sidebar display value on mobile
2021-07-15 22:21:33 +02:00
Guillaume Gomez
c3c4b9ead6
Do not hide the sidebar on mobile, move it outside of the viewport instead
2021-07-15 22:21:33 +02:00
bors
b1f8e27b74
Auto merge of #83319 - tmiasko:packed-aligned, r=jackh726
...
Layout error instead of an ICE for packed and aligned types
Fixes #83107 .
2021-07-15 19:51:17 +00:00
Ralf Jung
bd874a9d5d
make check_ptr_access_align work on function pointer allocations
2021-07-15 19:48:52 +02:00
Camille GILLOT
c2d43e1329
Simplify metadata decoding.
2021-07-15 19:31:47 +02:00
Camille GILLOT
47ea2ae933
Separate encoding paths.
...
The two paths will be modified independently in the next few commits.
2021-07-15 19:31:46 +02:00
bors
26366828a4
Auto merge of #87152 - flip1995:clippyup, r=Manishearth
...
Update Clippy
r? `@Manishearth`
2021-07-15 17:10:09 +00:00
Guillaume Gomez
25e74037e8
Add regression test for type declaration layout overflow
2021-07-15 18:19:25 +02:00
Guillaume Gomez
59103d1a25
Fix layout overflow in type declaration
2021-07-15 18:19:07 +02:00
Tomasz Miąsko
d49f977ed9
Layout error instead of an ICE for packed and aligned types
2021-07-15 18:17:27 +02:00
Ralf Jung
adbe7554d7
enable Miri to fix the bytes in an allocation (since ptr offsets have different meanings there)
2021-07-15 18:03:22 +02:00
Ralf Jung
f4b61ba509
adjustions and cleanup to make Miri build again
2021-07-15 17:14:11 +02:00
jackh726
cf001dc889
Remove failed and review comments
2021-07-15 10:58:49 -04:00
Roxane
9fe470b620
Get the right place type
2021-07-15 10:33:51 -04:00
bors
0a6c636c40
Auto merge of #87156 - JohnTitor:rollup-osuhe53, r=JohnTitor
...
Rollup of 8 pull requests
Successful merges:
- #85579 (Added Arc::try_pin)
- #86478 (Add -Zfuture-incompat-test to assist with testing future-incompat reports.)
- #86947 (Move assert_matches to an inner module)
- #87081 (Add tracking issue number to `wasi_ext`)
- #87127 (Add safety comments in private core::slice::rotate::ptr_rotate function)
- #87134 (Make SelfInTyParamDefault wording not be specific to type defaults)
- #87147 (Update cargo)
- #87154 (Fix misuse of rev attribute on <a> tag)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
2021-07-15 14:29:07 +00:00