Commit graph

124511 commits

Author SHA1 Message Date
Manish Goregaokar
172b3a713a
Rollup merge of #74835 - GuillaumeGomez:cleanup-e0734, r=jyn514
Clean up E0734 explanation

r? @Dylan-DPC
2020-07-30 13:04:32 -07:00
Manish Goregaokar
46379687ac
Rollup merge of #74782 - vorner:weak-into-raw-cnt-doc, r=dtolnay
Don't use "weak count" around Weak::from_raw_ptr

As `Rc/Arc::weak_count` returns 0 when having no strong counts, this
could be confusing and it's better to avoid using that completely.

Closes #73840.
2020-07-30 13:04:29 -07:00
Manish Goregaokar
7e86c8eccb
Rollup merge of #74751 - GuillaumeGomez:cleanup-e0730, r=jyn514
Clean up E0730 explanation

r? @Dylan-DPC
2020-07-30 13:04:23 -07:00
Dylan MacKenzie
fc2c1f8ddc Make Option::unwrap unstably const
`Result::unwrap` is not eligible becuase it formats the contents of the
`Err` variant. `unwrap_or`, `unwrap_or_else` and friends are not
eligible because they drop things or invoke closures.
2020-07-30 12:30:58 -07:00
Rich Kadel
34b26d6a77 Rust function-level coverage now works on external crates
Fixed a known issue in the coverage map where some regions had
nonsensical source code locations. External crate functions are already
included in their own coverage maps, per library, and don't need to also
be added to the importing crate's coverage map. (In fact, their source
start and end byte positions are not relevant to the importing crate's
SourceMap.)

The fix was to simply skip trying to add imported coverage info to the
coverage map if the instrumented function is not "local".

The injected counters are still relevant, however, and the LLVM
`instrprof.increment` intrinsic call parameters will map those counters
to the external crates' coverage maps, when generating runtime coverage
data.
2020-07-30 12:25:39 -07:00
Joseph Ryan
48c6f05662
Update driver to add json backend 2020-07-30 14:13:51 -05:00
Mark Rousskov
19d191bb02 Update release notes
(cherry picked from commit 32166ab1ebec2e5e5454221f0d3238c21382de9f)
2020-07-30 11:36:33 -07:00
Mark Rousskov
e1e01f72a5 1.45.1 release
(cherry picked from commit 9e5fb40807f97fe47d2eaca99daeb1f1f6ff07a7)
2020-07-30 11:36:14 -07:00
bors
438c59f010 Auto merge of #74908 - RalfJung:miri, r=RalfJung
update Miri

Fixes https://github.com/rust-lang/rust/issues/74580
Cc @rust-lang/miri r? @ghost
2020-07-30 18:29:08 +00:00
Ding Xiang Fei
3b2642ffa7
Add comments to explain the test case and the special treatment 2020-07-31 02:16:42 +08:00
Manish Goregaokar
c17eb566c2 Fix uitests 2020-07-30 10:40:17 -07:00
Manish Goregaokar
e25a67fa6c Rename the lint again 2020-07-30 10:39:31 -07:00
Manish Goregaokar
8fe438e632 intra_doc_resolution_failures -> broken_intra_doc_links 2020-07-30 10:38:55 -07:00
Manish Goregaokar
bcb2813e01 Update uitest expectations 2020-07-30 10:22:57 -07:00
Ralf Jung
1a2208afc5 update Miri 2020-07-30 19:05:21 +02:00
Alex Crichton
cd8bdb5eb9 rustc: Ignore fs::canonicalize errors in metadata
This commit updates the metadata location logic to ignore errors when
calling `fs::canonicalize`. Canonicalization was added historically so
multiple `-L` paths to the same directory don't print errors about
multiple candidates (since rustc can deduplicate same-named paths), but
canonicalization doesn't work on all filesystems. Cargo, for example,
always uses this sort of fallback where it will opportunitistically try
to canonicalize but fall back to using the input path if it otherwise
doesn't work.

If rustc is run on a filesystem that doesn't support canonicalization
then the effect of this change will be that `-L` paths which logically
point to the same directory will cause errors, but that's a rare enough
occurrence it shouldn't cause much issue in practice. Otherwise rustc
doesn't work at all today on those sorts of filesystem where
canonicalization isn't supported!
2020-07-30 08:21:10 -07:00
Manish Goregaokar
522ef2e981 Remove deny for intra doc link failures from library code, it's no longer necessary 2020-07-30 08:14:27 -07:00
Manish Goregaokar
7b7b5a7a12 Rename in library 2020-07-30 08:14:27 -07:00
Manish Goregaokar
4df76f0f90 Rename to intra_doc_resolution_failures 2020-07-30 08:14:27 -07:00
bors
6b09c37ddc Auto merge of #73990 - jumbatm:clashing-extern-decl, r=nagisa
Fix incorrect clashing_extern_declarations warnings.

Fixes #73735, fixes #73872.

Fix clashing_extern_declarations warning for `#[repr(transparent)]` structs and safely-FFI-convertible enums, and not warning for clashes of struct members of different types, but the same size.

r? @nagisa
2020-07-30 14:36:41 +00:00
Ding Xiang Fei
ddbe69a5b2
Special treatment for dereferencing a borrow to a static definition 2020-07-30 22:17:56 +08:00
bors
21867225a7 Auto merge of #74930 - ecstatic-morse:const-size-align-of-val, r=oli-obk
Make `mem::size_of_val` and `mem::align_of_val` unstably const

Implements #46571 but does not stabilize it. I wanted this while working on something today.

The only reason not to immediately stabilize are concerns around [custom DSTs](https://github.com/rust-lang/rust/issues/46571#issuecomment-387669352). That proposal has made zero progress in the last two years and const eval is rich enough to support pretty much any user-defined `len` function as long as nightly features are allowed (`raw_ptr_deref`).

Currently, this raises a `const_err` lint when passed an `extern type`.

r? @oli-obk

cc @rust-lang/wg-const-eval
2020-07-30 12:52:41 +00:00
jumbatm
0bd292dea1 Fix missed same-sized member clash in ClashingExternDeclarations. 2020-07-30 21:59:02 +10:00
jumbatm
30a6f57308 Handle structs with zst members. 2020-07-30 21:59:02 +10:00
jumbatm
060666d0a4 Address code review comments.
- Make `is_repr_nullable_ptr` freestanding again to avoid usage of
ImproperCTypesVisitor in ClashingExternDeclarations (and don't
accidentally revert the ParamEnv::reveal_all() fix from a week earlier)
- Revise match condition for 1 Adt, 1 primitive
- Generalise check for non-null type so that it would also work for
ranges which exclude any single value (all bits set, for example)
- Make is_repr_nullable_ptr return the representable type instead of
just a boolean, to avoid adding an additional, independent "source of
truth" about the FFI-compatibility of Option-like enums. Also, rename to
`repr_nullable_ptr`.
2020-07-30 21:59:02 +10:00
jumbatm
5e52edca52 Apply suggested wording changes from code review.
Co-authored-by: Teymour Aldridge <42674621+teymour-aldridge@users.noreply.github.com>
2020-07-30 21:59:02 +10:00
jumbatm
3eaead7d51 Don't emit clashing decl lint for FFI-safe enums.
An example of an FFI-safe enum conversion is when converting
Option<NonZeroUsize> to usize. Because the Some value must be non-zero,
rustc can use 0 to represent the None variant, making this conversion is
safe. Furthermore, it can be relied on (and removing this optimisation
already would be a breaking change).
2020-07-30 21:59:01 +10:00
jumbatm
4da72f5387 Add additional clashing_extern_decl cases. 2020-07-30 21:59:01 +10:00
Guillaume Gomez
89e4fe3313 Improve E0730 explanation 2020-07-30 13:51:22 +02:00
bors
1ce0cf070e Auto merge of #74105 - npmccallum:naked, r=matthewjasper
Suppress debuginfo on naked function arguments

A function that has no prologue cannot be reasonably expected to support
debuginfo. In fact, the existing code (before this patch) would generate
invalid instructions that caused crashes. We can solve this easily by
just not emitting the debuginfo in this case.

Fixes https://github.com/rust-lang/rust/issues/42779
cc https://github.com/rust-lang/rust/issues/32408
2020-07-30 10:58:59 +00:00
Bastian Kauschke
95fa63e63f liballoc export ArrayChunks 2020-07-30 10:50:35 +02:00
Bastian Kauschke
d27007fd6d add tests for array_chunks 2020-07-30 10:50:34 +02:00
Bastian Kauschke
d405347f09 adds slice::array_chunks 2020-07-30 10:50:34 +02:00
Bastian Kauschke
870b7cbb11 improve chunks + windows err on size 0 2020-07-30 10:50:34 +02:00
Gary Guo
4e963d58c7 Fix ui tests 2020-07-30 06:34:16 +01:00
Gary Guo
8046fea622 Improve diagnostics when constant pattern is too generic 2020-07-30 06:17:18 +01:00
bors
1799d31847 Auto merge of #74876 - oli-obk:lumberjack_disable, r=RalfJung
Replace all uses of `log::log_enabled` with `Debug` printers

cc @RalfJung this touches a bunch of logging in the miri engine. There are some visual changes, mainly that in several cases we stop prepending lines with the module path and just have a newline.
2020-07-30 03:54:05 +00:00
Dylan MacKenzie
88fd4943a6 Test {align,size}_of_val in a const context 2020-07-29 19:41:35 -07:00
bors
6e50a225fd Auto merge of #74923 - ehuss:update-cargo, r=Mark-Simulacrum
Update cargo

14 commits in aa6872140ab0fa10f641ab0b981d5330d419e927..974eb438da8ced6e3becda2bbf63d9b643eacdeb
2020-07-23 13:46:27 +0000 to 2020-07-29 16:15:05 +0000
- Fix O0 build scripts by default without `[profile.release]` (rust-lang/cargo#8560)
- Emphasize git dependency version locking behavior. (rust-lang/cargo#8561)
- Update lock file encodings on changes (rust-lang/cargo#8554)
- Fix sporadic lto test failures. (rust-lang/cargo#8559)
- build-std: Fix libraries paths following upstream (rust-lang/cargo#8558)
- Flag git http errors as maybe spurious (rust-lang/cargo#8553)
- Display builtin aliases with `cargo --list` (rust-lang/cargo#8542)
- Check manifest for requiring nonexistent features (rust-lang/cargo#7950)
- Clarify test name filter usage (rust-lang/cargo#8552)
- Revert Cargo Book changes for default edition (rust-lang/cargo#8551)
- Prepare for not defaulting to master branch for git deps (rust-lang/cargo#8522)
- Include `+` for crates.io feature requirements in the Cargo Book section on features (rust-lang/cargo#8547)
- Update termcolor and fwdansi versions (rust-lang/cargo#8540)
- Cargo book nitpick in Manifest section (rust-lang/cargo#8543)
2020-07-30 02:05:48 +00:00
bors
fb0b1237b1 Auto merge of #74929 - Manishearth:rollup-z2vflrp, r=Manishearth
Rollup of 10 pull requests

Successful merges:

 - #74742 (Remove links to rejected errata 4406 for RFC 4291)
 - #74819 (Point towards `format_spec`; it is in other direction)
 - #74852 (Explain why inlining default ToString impl)
 - #74869 (Make closures and generators a must use types)
 - #74873 (symbol mangling: use ty::print::Print for consts)
 - #74902 (Remove deprecated unstable `{Box,Rc,Arc}::into_raw_non_null` functions)
 - #74904 (Fix some typos in src/librustdoc/clean/auto_trait.rs)
 - #74910 (fence docs: fix example Mutex)
 - #74912 (Fix broken link in unstable book `plugin`)
 - #74927 (Change the target data layout to specify more values)

Failed merges:

r? @ghost
2020-07-30 00:17:51 +00:00
Dylan MacKenzie
9caf0b5222 Make {align,size}_of_val const 2020-07-29 16:50:15 -07:00
Manish Goregaokar
f4f77d756d
Rollup merge of #74927 - Lokathor:Lokathor-patch-1, r=jonas-schievink
Change the target data layout to specify more values

This does not actually alter the previously specified important parts, but apparently `rustc` cares about more layout components than `cargo-xbuild` ever did. This extends the data layout to be a fully specified layout, as given in the error from issue #74767

* Closes https://github.com/rust-lang/rust/issues/74767
2020-07-29 16:38:34 -07:00
Manish Goregaokar
cae4d4d1d0
Rollup merge of #74912 - giraffate:fix_broken_link_in_unstable_plugin_book, r=jonas-schievink
Fix broken link in unstable book `plugin`

There is broken link in https://doc.rust-lang.org/unstable-book/language-features/plugin.html#lint-plugins.
2020-07-29 16:38:33 -07:00
Manish Goregaokar
2050128302
Rollup merge of #74910 - RalfJung:fence, r=Mark-Simulacrum
fence docs: fix example Mutex

Fixes https://github.com/rust-lang/rust/issues/74808

Cc @pca006132
2020-07-29 16:38:31 -07:00
Manish Goregaokar
1d53340e04
Rollup merge of #74904 - joshtriplett:typo-fix, r=jonas-schievink
Fix some typos in src/librustdoc/clean/auto_trait.rs
2020-07-29 16:38:29 -07:00
Manish Goregaokar
0f9b7bd80f
Rollup merge of #74902 - rust-lang:into_raw_non_null, r=dtolnay
Remove deprecated unstable `{Box,Rc,Arc}::into_raw_non_null` functions

FCP: https://github.com/rust-lang/rust/issues/47336#issuecomment-619369613
2020-07-29 16:38:28 -07:00
Manish Goregaokar
e6b0376e7b
Rollup merge of #74873 - lcnr:const-print, r=eddyb
symbol mangling: use ty::print::Print for consts

r? @eddyb
2020-07-29 16:38:26 -07:00
Manish Goregaokar
4230f96bbe
Rollup merge of #74869 - tmiasko:must-use-closures, r=ecstatic-morse
Make closures and generators a must use types

Warn about unused expressions with closure or generator type. This follows
existing precedence of must use annotations present on `FnOnce`, `FnMut`, `Fn`
traits, which already indirectly apply to closures in some cases, e.g.,:

```rust
fn f() -> impl FnOnce() {
    || {}
}

fn main() {
    // an existing warning: unused implementer of `std::ops::FnOnce` that must be used:
    f();

    // a new warning: unused closure that must be used:
    || {};
}
```

Closes #74691.
2020-07-29 16:38:24 -07:00
Manish Goregaokar
c07998e0e7
Rollup merge of #74852 - lzutao:inline-rm-tostring, r=nnethercote
Explain why inlining default ToString impl

Trying to remove inline attribute from default ToString impl causes regression.
Perf result at <https://github.com/rust-lang/rust/pull/74852#issuecomment-664812994>.
2020-07-29 16:38:22 -07:00
Manish Goregaokar
35226766c9
Rollup merge of #74819 - tmiasko:format-spec, r=joshtriplett
Point towards `format_spec`; it is in other direction
2020-07-29 16:38:20 -07:00