119546 Commits

Author SHA1 Message Date
bors
d13ffbe3fe Auto merge of #5522 - CrazyRoka:match_vec_item, r=phansch
New  lint `match_vec_item`

Added new lint to warn a match on index item which can panic. It's always better to use `get(..)` instead.
Closes #5500
changelog: New lint `match_on_vec_items`
2020-04-27 06:02:05 +00:00
bors
ef71df106b Auto merge of #71600 - Dylan-DPC:rollup-7tvzi9n, r=Dylan-DPC
Rollup of 6 pull requests

Successful merges:

 - #68716 (Stabilize `Span::mixed_site`)
 - #71263 (Remove unused abs_path method from rustc_span::source_map::FileLoader)
 - #71409 (Point at the return type on `.into()` failure caused by `?`)
 - #71419 (add message for resolution failure because wrong namespace)
 - #71438 (Tweak some suggestions in `rustc_resolve`)
 - #71589 (remove Unique::from for shared pointer types)

Failed merges:

r? @ghost
2020-04-27 02:38:50 +00:00
bors
5d8a3e8724 Auto merge of #5506 - ebroto:mismatched_target_os, r=flip1995
Implement mismatched_target_os lint

I've extended the check suggested in the issue to all the currently supported operating systems instead of limiting it to `linux` and `macos`, let me know if we want to do this.

Also, I've restored the text `There are over XXX lints ...` in the README as it was matched against by `cargo dev new_lint`.

changelog: Added `mismatched_target_os` lint to warn when an operating system is used in target family position in a #[cfg] attribute

Closes #3949
2020-04-27 02:29:49 +00:00
Dylan DPC
cddbed0003
Rollup merge of #71589 - RalfJung:unique-no-shr, r=SimonSapin
remove Unique::from for shared pointer types

r? @SimonSapin
2020-04-27 03:26:18 +02:00
Dylan DPC
ac62dcef05
Rollup merge of #71438 - estebank:resolve-sugg-tiny, r=petrochenkov
Tweak some suggestions in `rustc_resolve`
2020-04-27 03:26:17 +02:00
Dylan DPC
94ac0ac59f
Rollup merge of #71419 - contrun:wrong-namespace-rustc-resolve, r=petrochenkov
add message for resolution failure because wrong namespace

closes https://github.com/rust-lang/rust/issues/71406
2020-04-27 03:26:15 +02:00
Dylan DPC
c95bcbc9d5
Rollup merge of #71409 - estebank:point-at-ret-question-mark-op, r=petrochenkov
Point at the return type on `.into()` failure caused by `?`

Fix #35946.
2020-04-27 03:26:13 +02:00
Dylan DPC
89aff5f33e
Rollup merge of #71263 - shlevy:FileLoader-remove-abs_path, r=Xanewok
Remove unused abs_path method from rustc_span::source_map::FileLoader
2020-04-27 03:26:11 +02:00
Dylan DPC
9d0025263a
Rollup merge of #68716 - petrochenkov:stabmixed, r=dtolnay
Stabilize `Span::mixed_site`

Closes https://github.com/rust-lang/rust/issues/65049.
cc https://github.com/rust-lang/rust/issues/54727#issuecomment-580647446

Pre-requisite for https://github.com/rust-lang/rust/pull/68717 ("Stabilize fn-like proc macros in expression, pattern and statement positions").

Stabilization report: https://github.com/rust-lang/rust/pull/68716#issuecomment-581076337.
2020-04-27 03:26:05 +02:00
Steven Fackler
b00afb5782 fix wasm build 2020-04-26 16:34:14 -07:00
bors
5794e779a6 Auto merge of #71468 - matthiaskrgr:submodule_upd, r=Dylan-DPC
submodules: update clippy from 891e1a85 to d01a4981

Changes:
````
`predecessors_for` will be removed soon
Rustup "Remove `BodyAndCache`"
span_lint_and_note now takes an Option<Span> for the note_span instead of just a span
Make lint also capture blocks and closures, adjust language to mention other mutex types
don't test the code in the lint docs
Switch to matching against full paths instead of just the last element of the path
Lint for holding locks across await points
fix crash on issue-69020-assoc-const-arith-overflow.rs
update stderr file
util/fetch_prs_between.sh: Add Markdown formatted Link
factor ifs into function, add differing mutex test
Update the changelog update documentation
Apply suggestions from PR review
update span_lint_and_help call to six args
test for mutex eq, add another test case
use if chain
cargo dev fmt
fix map import to rustc_middle
dev update_lints
fix internal clippy warnings
change visitor name to OppVisitor
use Visitor api to find Mutex::lock calls
add note about update-all-refs script, revert redundant pat to master
move closures to seperate fns, remove known problems
use span_lint_and_help, cargo dev fmt
creating suggestion
progress work on suggestion for auto fix
Implement unsafe_derive_deserialize lint
Update empty_enum.stderr
Formatting and naming
Formatting and naming
Cleanup: `node_id` -> `hir_id`
Fix issue #2907.
Don't trigger toplevel_ref_arg for `for` loops
Cleanup: future_not_send: use `return_ty` method
Remove badge FIXME from Cargo.toml
Change note_span argument for span_lint_and_note.
Add an Option<Span> argument to span_lint_and_help.
Fixes internal lint warning in code base.
Implement collapsible_span_lint_calls lint.
````

Fixes #71453

r? @Dylan-DPC
2020-04-26 23:31:54 +00:00
Vadim Petrochenkov
45dc4350c3 unstable-book: Document -Z tls-model 2020-04-26 23:36:00 +03:00
Vadim Petrochenkov
feeb75e263 rustc_target: Stop using "string typing" for TLS models
Introduce `enum TlsModel` instead.
2020-04-26 23:36:00 +03:00
LeSeulArtichaut
efb6d6c027
Fix broken link in QPath documentation 2020-04-26 22:32:14 +02:00
bors
e83f756349 Auto merge of #71593 - Dylan-DPC:rollup-ms7j94u, r=Dylan-DPC
Rollup of 5 pull requests

Successful merges:

 - #71421 (Add a function to turn Box<T> into Box<[T]>)
 - #71537 (Remove support for self-opening)
 - #71551 (Minor refactoring around IndexVec usage in generator transformation)
 - #71569 ([miri] Throw UB if target size and data size don't match)
 - #71576 (check that `AsRef` and `AsMut` are inlined)

Failed merges:

 - #71558 (Cleanup and document `-Z tls-model` )

r? @ghost
2020-04-26 20:12:48 +00:00
Eduardo Broto
303e7d1af8 Split tests in unix/non-unix 2020-04-26 21:27:29 +02:00
Eduardo Broto
4a405c9977 Remove some OSes from the test to comply with stderr line limit 2020-04-26 21:27:29 +02:00
Eduardo Broto
ce50e42ed6 Use the span of the attribute for the error message 2020-04-26 21:27:29 +02:00
Eduardo Broto
d24a106395 Apply suggestions from PR review
- Show just one error message with multiple suggestions in case of
  using multiple times an OS in target family position
- Only suggest #[cfg(unix)] when the OS is in the Unix family
- Test all the operating systems
2020-04-26 21:27:29 +02:00
Eduardo Broto
149f6d6046 Implement mismatched_target_os lint 2020-04-26 21:27:29 +02:00
Dylan DPC
962cae070f
Rollup merge of #71576 - lcnr:inline-as_mut, r=oli-obk
check that `AsRef` and `AsMut` are inlined

Adds a regression test for #58867

r? @Dylan-DPC
2020-04-26 21:02:40 +02:00
Dylan DPC
b2a8a8a0f8
Rollup merge of #71569 - samrat:miri-ub-on-size-mismatch, r=RalfJung
[miri] Throw UB if target size and data size don't match

Issue: https://github.com/rust-lang/miri/issues/1355

If an extern C function is defined as

```
extern "C" {
    fn malloc(size: u32) -> *mut std::ffi::c_void;
}
```

on a 64-bit machine(ie. pointer sizes don't match), return undefined behaviour from Miri when [converting the argument into machine_usize](https://github.com/rust-lang/miri/blob/master/src/shims/foreign_items.rs#L200)
2020-04-26 21:02:39 +02:00
Dylan DPC
d1287746cd
Rollup merge of #71551 - gizmondo:gen-index-vec, r=jonas-schievink
Minor refactoring around IndexVec usage in generator transformation

Replace hash map with IndexVec for liveness data.
Utilize IndexVec::push return value to avoid redundant object creation.

r? @eddyb
2020-04-26 21:02:36 +02:00
Dylan DPC
4199ef14d7
Rollup merge of #71537 - Mark-Simulacrum:no-self-open, r=davidtwco
Remove support for self-opening

This was only used for linkage test cases, which is already covered by
the [run-make-fulldeps/symbol-visibility test](https://github.com/rust-lang/rust/blob/master/src/test/run-make-fulldeps/symbol-visibility/Makefile) -- which fairly extensively makes
sure we're correctly exporting the right symbols at the right visibility (for
various Rust crate types).

This fixes #10379 and resolves #10356 by removing the test case (and underlying support in the compiler). AFAICT, the better way to test visibility is via nm, like the symbol visibility test. It seems like that's sufficient; I suspect that given that we don't use this we should just drop it (android is tier 2 anyway). But happy to hear otherwise.
2020-04-26 21:02:35 +02:00
Dylan DPC
398d3eeca1
Rollup merge of #71421 - elichai:2020-04-boxed-slice, r=sfackler
Add a function to turn Box<T> into Box<[T]>

Hi,
I think this is very useful, as currently it's not possible in safe rust to do this without re-allocating.
an alternative implementation of the same function can be:
```rust
pub fn into_boxed_slice<T>(boxed: Box<T>) -> Box<[T]> {
    unsafe {
        let slice = slice::from_raw_parts_mut(Box::into_raw(boxed), 1);
        Box::from_raw(slice)
    }
}
```

The only thing that makes me a little uncomfortable is this line :
> The alignment of array types is greater or equal to the alignment of its element type

from https://rust-lang.github.io/unsafe-code-guidelines/layout/arrays-and-slices.html

But then I see:
> The alignment of &T, &mut T, *const T and *mut T are the same, and are at least the word size.
> The alignment of &[T] is the word size.

from https://rust-lang.github.io/unsafe-code-guidelines/layout/pointers.html#representation

So I do believe this is valid(FWIW it also passes in miri https://play.rust-lang.org/?gist=c002b99364ee6b29862aeb3565a91c19)
2020-04-26 21:02:32 +02:00
Esteban Küber
be90f90810 Point at the return type on .into() failure caused by ?
Fix #35946.
2020-04-26 11:50:58 -07:00
Esteban Küber
6e3ba6f40f Tweak some suggestions in rustc_resolve 2020-04-26 11:43:43 -07:00
Ralf Jung
5163f094ff fmt 2020-04-26 19:33:16 +02:00
Ralf Jung
7aebdb639a remove Unique::from for shared pointer types 2020-04-26 19:00:57 +02:00
Ralf Jung
96cfb20be9 organize Debug/Display impls a bit more; avoid sign-ignorant decimal display 2020-04-26 18:59:20 +02:00
Ralf Jung
c8d8c42d1c
Adjust style 2020-04-26 18:44:38 +02:00
Ralf Jung
19eb9345df print pointers more compactly when they are too big 2020-04-26 18:14:19 +02:00
bors
7f3b3df9e2 Auto merge of #71579 - Dylan-DPC:rollup-h9om2g3, r=Dylan-DPC
Rollup of 5 pull requests

Successful merges:

 - #71490 (Cleanup and document `-C relocation-model`)
 - #71562 (fix more clippy warnings)
 - #71571 (Fix since attribute for nonzero_bitor impl's)
 - #71574 (proc_macro: Fix since attributes for new Span methods)
 - #71575 (Fix stable(since) attribute for BTreeMap::remove_entry)

Failed merges:

r? @ghost
2020-04-26 15:48:58 +00:00
Vadim Petrochenkov
f5223a3435 Stabilize Span::mixed_site 2020-04-26 18:21:53 +03:00
CrazyRoka
b574941dcb Updated lint info in lib.rs 2020-04-26 18:11:21 +03:00
CrazyRoka
940c662654 Small lint update
- Changed lint category to `correctness`
- Moved main function to bottom in test file
- Added `FIXME` comment to `span_lint_and_sugg` to improve later
2020-04-26 18:00:51 +03:00
bors
87a6f3fc2c Auto merge of #5534 - phansch:remove-util-dev, r=flip1995
Remove util/dev script

`cargo dev` has been the replacement for a while, so I think we can
remove it now.

cc #5394

changelog: none
2020-04-26 14:44:08 +00:00
Samrat Man Singh
b8af409a51 Rename ArgumentSizeMismatch to ScalarSizeMismatch 2020-04-26 20:13:59 +05:30
Ralf Jung
c427438d24 sync alloc dump and pointer printing 2020-04-26 15:58:53 +02:00
Tshepang Lekhonkhobe
e82056aedc remove obsolete comment 2020-04-26 15:57:38 +02:00
Elichai Turkel
0228ca0c7d
Add success and fail tests for into_boxed_slice 2020-04-26 15:42:43 +03:00
Elichai Turkel
6f31f05aaf
Add a function to turn Box<T> into Box<[T]> (into_boxed_slice) 2020-04-26 15:42:39 +03:00
Matthias Krüger
3d514f4418 submodules: update clippy from 891e1a85 to b7c802b5
Changes:
````
rustup to https://github.com/rust-lang/rust/pull/70043
map_clone: avoid suggesting `copied()` for &mut
fix redundant_pattern_matching lint
Add tests for #1654
Don't trigger while_let_on_iterator when the iterator is recreated every iteration
Update issue_2356.stderr reference file
Update while_let_on_iterator tests
Fix while_let_on_iterator suggestion and make it MachineApplicable
Add lifetime test case for `new_ret_no_self`
rustup https://github.com/rust-lang/rust/pull/71215/
Downgrade match_bool to pedantic
Run fetch before testing if master contains beta
The beta branch update should not require a force push
Add a note to the beta sections of release.md
Remove apt-get upgrade again
Always use the deploy script and templates of the master branch
README: fix lit count line
clippy_dev: make it fatal when the regex for updating lint count does not match
`predecessors_for` will be removed soon
Rustup "Remove `BodyAndCache`"
Only run (late) internal lints, when they are warn/deny/forbid
Only run cargo lints, when they are warn/deny/forbid
span_lint_and_note now takes an Option<Span> for the note_span instead of just a span
Make lint also capture blocks and closures, adjust language to mention other mutex types
don't test the code in the lint docs
Switch to matching against full paths instead of just the last element of the path
Lint for holding locks across await points
Also mention `--fix` for nightly users
fix crash on issue-69020-assoc-const-arith-overflow.rs
Address review comments
remark fixes
Update CHANGELOG.md for Rust 1.43 and 1.44
update stderr file
util/fetch_prs_between.sh: Add Markdown formatted Link
factor ifs into function, add differing mutex test
Update the changelog update documentation
Apply suggestions from PR review
update span_lint_and_help call to six args
test for mutex eq, add another test case
use if chain
cargo dev fmt
fix map import to rustc_middle
dev update_lints
fix internal clippy warnings
change visitor name to OppVisitor
use Visitor api to find Mutex::lock calls
add note about update-all-refs script, revert redundant pat to master
move closures to seperate fns, remove known problems
use span_lint_and_help, cargo dev fmt
creating suggestion
progress work on suggestion for auto fix
Implement unsafe_derive_deserialize lint
Update empty_enum.stderr
Formatting and naming
Formatting and naming
Cleanup: `node_id` -> `hir_id`
Fix issue #2907.
Don't trigger toplevel_ref_arg for `for` loops
Cleanup: future_not_send: use `return_ty` method
Remove badge FIXME from Cargo.toml
Change note_span argument for span_lint_and_note.
Add an Option<Span> argument to span_lint_and_help.
Fixes internal lint warning in code base.
Implement collapsible_span_lint_calls lint.
````

Fixes #71453
2020-04-26 14:33:38 +02:00
bors
5c12f2b286 Auto merge of #5509 - phansch:more-diagnostic-items2, r=matthiaskrgr
Use more diagnostic items

In particular for:

* `VecDeque`
* `String`
* `Mutex`
* `HashMap`
* `HashSet`

cc rust-lang/rust#71414 #5393

---

changelog: none
2020-04-26 12:30:52 +00:00
Philipp Hansch
eda73fe707
Fix cargo crash 2020-04-26 14:11:58 +02:00
Philipp Hansch
8d596ea01c
Remove util/dev script
`cargo dev` has been the replacement for a while, so I think we can
remove it now.

cc #5394
2020-04-26 14:00:03 +02:00
Steven Fackler
5d8fe1c4e6 Suppress file length check temporarily
Will clean up in a separate PR
2020-04-26 04:48:51 -07:00
Philipp Hansch
0a49935270
cargo dev fmt 2020-04-26 13:44:08 +02:00
Philipp Hansch
0480ff861a
More diagnostic items
In particular for:

* `VecDeque`
* `String`
* `Mutex`
* `HashMap`
* `HashSet`

cc https://github.com/rust-lang/rust/pull/71414 https://github.com/rust-lang/rust-clippy/issues/5393
2020-04-26 13:44:08 +02:00
Dylan DPC
aa9dc69522
Rollup merge of #71575 - jplatte:patch-4, r=Mark-Simulacrum
Fix stable(since) attribute for BTreeMap::remove_entry

Stabilized in #70712.

Maybe checking that the since attributes are added correctly should be automated through tidy? This is the third PR I'm opening that fixes a stable(since) attribute for something meant to be stabilized in 1.43 / 1.44 initially but then only stabilized in 1.45. (the other two are #71571, #71574)
2020-04-26 13:42:35 +02:00