| Age | Commit message (Collapse) | Author | Lines |
|
Add Long error explanation for E0531
Part of #61137.
|
|
|
|
|
|
|
|
|
|
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.
|
|
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
|
|
Upgrade env_logger to 0.7
`./x.py test` passed locally.
|
|
pin.rs: fix links to primitives in documentation
|
|
Stabilize map_get_key_value feature
FCP done in https://github.com/rust-lang/rust/issues/49347#issuecomment-521728031
r? @SimonSapin
Closes #49347
|
|
Thou shallt not `.abort_if_errors()`
r? @estebank
|
|
update rtpSpawn's parameters type(It's prototype has been updated in libc)
r? @alexcrichton
|
|
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.
|
|
Remove stray references to the old global tcx
|
|
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.
|
|
|
|
|
|
|
|
|
|
where `A` is a constant, not a new variable.
|
|
|
|
This allows us to avoid changing things directly in the miri engine just
for const prop.
|
|
|
|
|
|
|
|
This can cause cycles as `ConstProp` uses `layout_of` which, for
generators, uses `optimized_mir` which runs `ConstProp`.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Rest In Peace, AST borrowck (2012-2019)
After having served us for 7 years, the AST borrow-checker is no more.
This PR starts from the commit `rm -rf librustc_ast_borrowck`, building on https://github.com/rust-lang/rust/pull/64221, and is probably best read commit by commit.
Migrate mode is not removed yet as it may be useful for NLL => polonius and it is also used for the `mutable_borrow_reservation_conflict` issue (https://github.com/rust-lang/rust/issues/59159).
r? @matthewjasper
------------------------

|
|
LLVM assumes that a thread will eventually cause side effect. This is
not true in Rust if a loop or recursion does nothing in its body,
causing undefined behavior even in common cases like `loop {}`.
Inserting llvm.sideeffect fixes the undefined behavior.
As a micro-optimization, only insert llvm.sideeffect when jumping back
in blocks or calling a function.
A patch for LLVM is expected to allow empty non-terminate code by
default and fix this issue from LLVM side.
https://github.com/rust-lang/rust/issues/28728
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|