StableMap
A wrapper for FxHashMap that allows to insert, remove, get and get_mut
but no iteration support.
StableSet
A wrapper for FxHashSet that allows to insert, remove, get and create a
sorted vector from a hashset but no iteration support.
Rollup of 14 pull requests
Successful merges:
- #64703 (Docs: slice elements are equidistant)
- #64745 (Include message on tests that should panic but do not)
- #64781 (Remove stray references to the old global tcx)
- #64794 (Remove unused DepTrackingMap)
- #64802 (Account for tail expressions when pointing at return type)
- #64809 (hir: Disallow `target_feature` on constants)
- #64815 (Fix div_duration() marked as stable by mistake)
- #64818 (update rtpSpawn's parameters type(It's prototype has been updated in libc))
- #64830 (Thou shallt not `.abort_if_errors()`)
- #64836 (Stabilize map_get_key_value feature)
- #64845 (pin.rs: fix links to primitives in documentation)
- #64847 (Upgrade env_logger to 0.7)
- #64851 (Add mailmap entry for Dustin Bensing by request)
- #64859 (check_match: improve diagnostics for `let A = 2;` with `const A: i32 = 3`)
Failed merges:
r? @ghost
check_match: improve diagnostics for `let A = 2;` with `const A: i32 = 3`
For example:
```
error[E0005]: refutable pattern in local binding: `std::i32::MIN..=1i32` and `3i32..=std::i32::MAX` not covered
--> $DIR/const-pat-non-exaustive-let-new-var.rs:2:9
|
LL | let A = 3;
| ^
| |
| interpreted as a constant pattern, not a new variable
| help: introduce a variable instead: `a_var`
...
LL | const A: i32 = 2;
| ----------------- constant defined here
```
r? @estebank
cc @matthiaskrgr @rpjohnst
Add mailmap entry for Dustin Bensing by request
This should deduplicate entries from @pythoneer between the stdarch submodule and this repo itself on thanks.rust-lang.org.
hir: Disallow `target_feature` on constants
Fixes#64768.
This PR fixes an ICE when `#[target_feature]` is applied to constants by disallowing this with the same error as when `#[target_feature]` is applied to other places it shouldn't be.
I couldn't see anything in the [RFC](https://github.com/rust-lang/rfcs/blob/master/text/2045-target-feature.md) that suggested that `#[target_feature]` should be applicable to constants or any tests that suggested it should, though I might have missed something - if this is desirable in future, it remains possible to remove this error (but for the time being, I think this error is better than an ICE).
I also added some extra cases to the test for other places where `#[target_feature]` should not be permitted.
cc @gnzlbg
Account for tail expressions when pointing at return type
When there's a type mismatch we make an effort to check if it was
caused by a function's return type. This logic now makes sure to
only point at the return type if the error happens in a tail
expression.
Turn `walk_parent_nodes` method into an iterator.
CC #39968, CC #40799.
Remove unused DepTrackingMap
Deletes some related code (MemoizationMap trait, etc.)
I believe this became unused with red/green incremental introduction, but am uncertain.
Include message on tests that should panic but do not
As per issue #60790 includes a message for tests marked `#[should_panic]` that do not panic as expected.
Fixes#60790.
Docs: slice elements are equidistant
Recently, someone asked why `[char]` and `str` are not interchangeable, and I explained that in a slice, the elements must be laid out equidistantly, whereas the chars in a `str` are stored compactly regardless their size. However I couldn't find this documented anywhere, so here's a small addition of this fact.