Commit Graph

110981 Commits

Author SHA1 Message Date
marmeladema
6e930f72d0 Accept LocalDefId as key for mir_borrowck query 2020-04-27 21:50:18 +01:00
marmeladema
82823c0229 Return a FxHashSet<LocalDefId> from mir_keys query 2020-04-27 21:50:17 +01:00
marmeladema
82cc530431 Accept LocalDefId as keyt for names_imported_by_glob_use
and `maybe_unused_trait_import` queries
2020-04-27 21:50:17 +01:00
marmeladema
da975c318d Use LocalDefId for type_param_predicates query 2020-04-27 21:50:17 +01:00
marmeladema
f2f0478de7 Use LocalDefId in mir_built query 2020-04-27 21:50:17 +01:00
marmeladema
abd31ad6e8 Use LocalDefId in unsafety_check_result query 2020-04-27 21:50:17 +01:00
marmeladema
de7c9e753d Use LocalDefId in typeck_tables_of and used_trait_imports queries 2020-04-27 21:50:17 +01:00
Dylan DPC
c890912da1
Rollup merge of #71605 - GuillaumeGomez:remove-e0750-from-whitelist, r=Dylan-DPC
No need to whitelist E0750 anymore

Since #71304 has been fixed, no need to whitelist it anymore.

r? @Dylan-DPC
2020-04-27 22:15:11 +02:00
Dylan DPC
efed49b79d
Rollup merge of #71604 - RalfJung:unleash-recursive-zst, r=oli-obk
make recursive-zst test unleashed

Make sure we find this issue even without const qualification.

r? @oli-obk @ecstatic-morse
2020-04-27 22:15:09 +02:00
Dylan DPC
c1c46c751c
Rollup merge of #71596 - LeSeulArtichaut:patch-1, r=Dylan-DPC
Fix broken link in `QPath` documentation

r? @Dylan-DPC
2020-04-27 22:15:07 +02:00
Dylan DPC
f4e0431da0
Rollup merge of #71578 - ryzokuken:linkchecker, r=Dylan-DPC
linkchecker: fix typo in main.rs

Came across this while reading the file.
2020-04-27 22:15:06 +02:00
Dylan DPC
f81a41a86a
Rollup merge of #71558 - petrochenkov:tlsm, r=Amanieu
Cleanup and document `-Z tls-model`

r? @Amanieu
2020-04-27 22:15:04 +02:00
Dylan DPC
e2976c1371
Rollup merge of #71524 - ldm0:ptrparam, r=matthewjasper
Minimize parameter of coerce_borrowed_pointer()

Change last parameter of `coerce_borrowed_pointer()` from `TypeAndMut` to `Mutability` (similar to `coerce_unsafe_ptr()`), since the `TypeAndMut::ty` is never used directly in this function.
2020-04-27 22:15:01 +02:00
Dylan DPC
c4d9f42f6d
Rollup merge of #67841 - sfackler:can-vector, r=Amaneiu
Add Read/Write::can_read/write_vectored

When working with an arbitrary reader or writer, code that uses vectored
operations may end up being slower than code that copies into a single
buffer when the underlying reader or writer doesn't actually support
vectored operations. These new methods allow you to ask the reader or
witer up front if vectored operations are efficiently supported.

Currently, you have to use some heuristics to guess by e.g. checking if
the read or write only accessed the first buffer. Hyper is one concrete
example of a library that has to do this dynamically:
0eaf304644/src/proto/h1/io.rs (L582-L594)
2020-04-27 22:14:55 +02:00
bors
2d03399f53 Auto merge of #71200 - oli-obk:mir_bless, r=eddyb
Emit basic block info for stmts and terminators in MIR dumps only with -Zverbose

r? @eddyb

as per https://github.com/rust-lang/rust/pull/70755#discussion_r403419476
2020-04-27 19:36:46 +00:00
Samrat Man Singh
1f0a864570 Suggest into instead of try_into if possible with int types
If it is possible to convert an integer type into another using
`into`, don't suggest `try_into`. This commit changes the suggested
method to convert from one integer type to another for the following
cases:

- u{n} -> i{m} where n < m
- u8 -> isize
- i{n} -> isize where n <= 16
- u{n} -> usize where n <= 16
2020-04-28 00:43:20 +05:30
Esteban Kuber
432ab343f8
fix typo
Co-Authored-By: varkor <github@varkor.com>
2020-04-27 10:59:44 -07:00
Ralf Jung
fad64db578 share some common code for compile-time miri instances 2020-04-27 19:02:10 +02:00
Santiago Pastorino
3fe280451b
Add test for delay_span_bug and -Ztrear-err-as-bug 2020-04-27 13:05:11 -03:00
Ralf Jung
b12faeb027 keep 'pointer' terminology around 2020-04-27 17:54:17 +02:00
Oliver Scherer
a2fdc94686 Emit basic block ids for statements and terminators in MIR only in -Zverbose mode 2020-04-27 15:16:12 +02:00
Santiago Pastorino
230e40644b
Fix off by one error for delay_span_bug
delay_span_bug bumps error_count after checking treat_err_as_bug
2020-04-27 09:14:30 -03:00
Igor Matuszewski
f4ac42fb72 Update RLS to unbreak toolstate
Breakage caused by https://github.com/rust-lang/rust/pull/71263.
2020-04-27 14:14:18 +02:00
Steven Fackler
c68f23ff6d fix wasi 2020-04-27 04:50:03 -07:00
Ralf Jung
3bce639fc0 make recursive-zst test unleashed 2020-04-27 13:40:26 +02:00
Guillaume Gomez
116dca5d85 No need to whitelist E0750 anymore 2020-04-27 13:36:45 +02:00
bors
46ec74e60f Auto merge of #71268 - estebank:devectorize, r=eddyb
Remove some `Vec` allocations to improve performance

This claws back most of the performance lost in https://github.com/rust-lang/rust/pull/69745.
r? @eddyb
2020-04-27 10:00:05 +00:00
bors
d81f5597ac Auto merge of #70073 - wesleywiser:mir_opt_level_0, r=oli-obk
Don't run various MIR optimizations at mir-opt-level=0

Add missing checks for mir-opt-level to non-essential MIR passes.

I verified that this can still bootstrap even with these passes disabled.

r? @oli-obk cc @RalfJung
2020-04-27 07:04:46 +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
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
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