Commit Graph

108279 Commits

Author SHA1 Message Date
Manish Goregaokar 5414eae452 Rollup merge of #74324 - flip1995:clippyup, r=Manishearth
Update Clippy

~~I'm not sure, if we can/should land this before beta is branched.~~ (Nvm, beta is already branched) The last Clippy update was 3 weeks ago: #73660

This includes, besides other minor things:

- New lints
- One lint deprecation
- One lint was moved to pedantic
- Some FP fixes
- I think an ICE fix?

cc @Mark-Simulacrum

r? @Manishearth

---

We probably should also think of some process when and how often we should sync Clippy to the rust repo, so that we don't end up with those huge updates. Maybe every 2 weeks? Or even every week? cc @rust-lang/clippy
2020-07-14 07:39:19 -07:00
Manish Goregaokar 2fb307aca5 Rollup merge of #74316 - yoshuawuyts:no-wake-type-hints, r=Mark-Simulacrum
Remove unnecessary type hints from Wake internals

While working on https://github.com/rust-lang/rust/pull/74304 I noticed we were writing out the type signature twice in some internal `Wake` impl methods; this streamlines that. Thanks!
2020-07-14 07:39:17 -07:00
Manish Goregaokar 99c0b9764a Rollup merge of #74310 - nnethercote:use-ArrayVec-in-SparseBitSet, r=eddyb
Use `ArrayVec` in `SparseBitSet`.

Instead of `SmallVec`, because the maximum size is known.

r? @eddyb
2020-07-14 07:39:15 -07:00
Manish Goregaokar e8703e88fc Rollup merge of #74296 - Lynoure:rfind-doc-improvement, r=hanna-kruppe
Clarify the description for rfind

Changes the wording in rfind description to be clearer and the example code to illustrate the difference between
find and rfind
2020-07-14 07:39:13 -07:00
Manish Goregaokar 1114f2231a Rollup merge of #74270 - davidtwco:issue-74086-more-placeholder-type-error, r=estebank
typeck: report placeholder type error w/out span

Fixes #74086.

This PR fixes a regression introduced in rust-lang/rust#70369 which meant that an error was not being emitted for invalid placeholder types when there wasn't a span available.

r? @estebank
2020-07-14 07:39:11 -07:00
Manish Goregaokar 6513578584 Rollup merge of #74257 - alex:patch-1, r=joshtriplett
don't mark linux kernel module targets as a unix environment

refs #74247

r?@joshtriplett

cc: @ehuss
2020-07-14 07:39:10 -07:00
Manish Goregaokar aa9dc703c2 Rollup merge of #74239 - AdrianCX:master, r=cuviper
Update llvm-project to latest origin/rustc/10.0-2020-05-05 commit

which includes LVI segfault fix when building https://github.com/fortanix/rust-sgx/issues/267
And a few earlier commits.
2020-07-14 07:39:08 -07:00
Manish Goregaokar 98ceb90279 Rollup merge of #74227 - erikdesjardins:layun, r=estebank
Remove an unwrap in layout computation

A tiny improvement.
2020-07-14 07:39:06 -07:00
Manish Goregaokar 063bbc485e Rollup merge of #74220 - lzutao:windows-path-com, r=LukasKalbertodt
Refactor Windows `parse_prefix`

These changes make me feel more readable.
See the commit messages for more details.
2020-07-14 07:39:04 -07:00
Manish Goregaokar b9a0f5803e Rollup merge of #74173 - estebank:struct-pat-as-enum, r=petrochenkov
Detect tuple struct incorrectly used as struct pat

Subpart of #74005.

r? @petrochenkov
2020-07-14 07:39:02 -07:00
Manish Goregaokar 79894dfbac Rollup merge of #73986 - RalfJung:raw-slice-as-ptr, r=sfackler
add (unchecked) indexing methods to raw (and NonNull) slices

This complements the existing (unstable) `len` method. Unfortunately, for non-null slices, we cannot call this method `as_ptr` as that overlaps with the existing method of the same name.

If this looks reasonable to accept, I propose to reuse the https://github.com/rust-lang/rust/issues/71146 tracking issue and rename the feature get to `slice_ptr_methods` or so.

Cc @SimonSapin
Fixes https://github.com/rust-lang/rust/issues/60639
2020-07-14 07:39:00 -07:00
Manish Goregaokar 6a4faa2da1 Rollup merge of #73965 - davidtwco:issue-73886-non-primitive-slice-cast, r=estebank
typeck: check for infer before type impls trait

Fixes #73886.

This PR checks that the target type of the cast (an error related to which is being reported) does not have types to be inferred before checking if it implements the `From` trait.

r? @estebank
2020-07-14 07:38:58 -07:00
Manish Goregaokar 905c4e05e1 Rollup merge of #73866 - Goirad:fix-entry-improper-ctypes, r=davidtwco
Obviate #[allow(improper_ctypes_definitions)]

Modifies the return type for `fn entry` so that allowing
improper_ctypes_definitions is no longer necessary. This change is
derived from a similar pattern in `libstd/sys/sgx/abi/usercalls/raw.rs`
with `UsercallReturn`.

cc @jethrogb
2020-07-14 07:38:56 -07:00
Manish Goregaokar 5e61827dd3 Rollup merge of #73720 - GuillaumeGomez:cleanup-e0704, r=Dylan-DPC
Clean up E0704 error explanation

r? @Dylan-DPC
2020-07-14 07:38:53 -07:00
Manish Goregaokar 03f565cdbf Rollup merge of #71237 - Cldfire:rustdoc-ayu-theme, r=GuilliaumeGomez
Add Ayu theme to rustdoc

This is a port of a theme I maintain (https://github.com/Cldfire/ayu-rs) to the native rustdoc theme system. [Ayu](https://github.com/dempfi/ayu) (dark) is a richly-colored dark theme that many people enjoy using across a wide variety of environments.

Corresponds to the Ayu theme in [mdBook](https://github.com/rust-lang/mdBook).

Some screenshots:

![image](https://user-images.githubusercontent.com/13814214/79547087-6c935780-8061-11ea-8a33-38e9472e9fec.png)

![image](https://user-images.githubusercontent.com/13814214/79547150-8339ae80-8061-11ea-97be-9e13a8b275d7.png)

![image](https://user-images.githubusercontent.com/13814214/79547221-98164200-8061-11ea-9649-9b11ccbb33e3.png)

![image](https://user-images.githubusercontent.com/13814214/79547310-b419e380-8061-11ea-9965-d4f90b2280ab.png)

![image](https://user-images.githubusercontent.com/13814214/79547443-e7f50900-8061-11ea-8872-06d74010691e.png)

Note that this pull request also makes some small code changes to allow for disabling theme stylesheets, preventing the rules from all the different themes from conflicting with one another. The only stylesheet that is not disabled is `light.css`; the theming system (quite hackily) switches themes by changing the href on this stylesheet and so permanently disabling all the others works perfectly fine.
2020-07-14 07:38:50 -07:00
flip1995 f82ac4d448 Merge commit '2ca58e7dda4a9eb142599638c59dc04d15961175' into clippyup 2020-07-14 14:59:59 +02:00
Yoshua Wuyts 0e9a20f311 Remove unnecessary type hints from the Wake impl 2020-07-14 11:59:11 +02:00
bors 12df6384b9 Auto merge of #5773 - giraffate:repeat_once, r=flip1995
Add a lint for `.repeat(1)`

changelog: New lint `repeat_once`

fix #3028.
2020-07-14 09:13:58 +00:00
bors c724b67e1b Auto merge of #73490 - CAD97:range-unchecked-stepping, r=Amanieu
Use step_unchecked more liberally in range iter impls

Without these `_unchecked`, these operations on iterators of `char` fail to optimize out the unreachable panicking condition on overflow.

cc @cuviper https://github.com/rayon-rs/rayon/pull/771 where this was discovered.
2020-07-14 08:56:06 +00:00
Manish Goregaokar 9a1df31d55 Rollup merge of #74286 - PankajChaudhary5:E0688, r=GuillaumeGomez
Added detailed error code explanation for issue E0688 in Rust compiler.

Added proper error explanation for issue E0688 in the Rust compiler.
Error Code E0688

Sub Part of Issue #61137

r? @GuillaumeGomez
2020-07-13 22:23:15 -07:00
Manish Goregaokar fa4ada1a86 Rollup merge of #74285 - wangtheo:issue-71669, r=lcnr
#71669: add ui, codegen tests for volatile + nearby int intrinsics

Added some tests for intrinsics. See https://github.com/rust-lang/rust/issues/71669.
2020-07-13 22:23:13 -07:00
Manish Goregaokar e4a9b36126 Rollup merge of #74147 - dennis-hamester:fix/issue-74134, r=jyn514
rustdoc: Allow linking from private items to private types

Fixes #74134

After PR #72771 this would trigger an intra_doc_link_resolution_failure warning
when rustdoc is invoked without --document-private-items. Links from private
items to private types are however never actually generated in that case and
thus shouldn't produce a warning. These links are in fact a very useful tool to
document crate internals.

Tests are added for all 4 combinations of public/private items and link
targets. Test 1 is the case mentioned above and fails without this commit. Tests
2 - 4 passed before already but are added nonetheless to prevent regressions.
2020-07-13 22:23:11 -07:00
Manish Goregaokar 549aa03d86 Rollup merge of #74123 - GuillaumeGomez:cleanup-e0718, r=pickfire
clean up E0718 explanation

r? @Dylan-DPC
2020-07-13 22:23:10 -07:00
Manish Goregaokar e5532436a1 Rollup merge of #74046 - ehuss:deny-warnings-caching, r=Mark-Simulacrum
Fix caching issue when building tools.

This fixes a problem with tool builds not being cached properly.

#73297 changed it so that Clippy will participate in the "deny warnings" setting. Unfortunately this causes a problem because Clippy shares the build directory with other tools which do not participate in "deny warnings".  Because Cargo does not independently cache artifacts based on different RUSTFLAGS settings, it causes all the shared dependencies to get rebuilt if Clippy ever gets built.

The solution here is to stop using RUSTFLAGS, and just sneak the settings in through the rustc wrapper. Cargo won't know about the different settings, so it will not bust the cache. This should be safe since lint settings on dependencies are ignored. This is how things used to work in the past before #64316.

Alternate solutions:
* Treat Clippy as a "submodule" and don't enforce warnings on it. This was the behavior before #73297. The consequence is that if a warning sneaks into clippy, that the clippy maintainers will need to fix it when they sync clippy back to the clippy repo.
* Just deny warnings on all tools (removing the in-tree/submodule distinction). This is tempting, but with some issues (cc #52336):
  * Adding or changing warnings in rustc can be difficult to land because tools have to be updated if they trip the warning. In practice, this isn't too bad.  Cargo (and rustfmt) already runs with `deny(warnings)`, so this has been the de-facto standard already (although they do not use the extra lints like `unused_lifetimes`).
* Teach Cargo to add flags to the workspace members, but not dependencies.
* Teach Cargo to add flags without fingerprinting them?
* Teach Cargo to independently cache different RUSTFLAGS artifacts (this was [reverted](https://github.com/rust-lang/cargo/pull/7417) due to complications). This would also unnecessarily rebuild dependencies, but would avoid cache thrashing.
* Teach Cargo about lint settings.

Closes #74016
2020-07-13 22:23:08 -07:00
Manish Goregaokar d9614dbe47 Rollup merge of #73867 - poliorcetics:union-keyword, r=joshtriplett
Document the union keyword

Partial fix of #34601.

This documents the `union` keyword by presenting three cases: simply using a union, matching on a union and referencing the fields of a union.

@rustbot modify labels: T-doc,C-enhancement
2020-07-13 22:23:03 -07:00
Manish Goregaokar eb7fdb2e07 Rollup merge of #73852 - euclio:rustdoc-attr-newlines, r=GuillaumeGomez
rustdoc: insert newlines between attributes

Fixes #73205.
2020-07-13 22:23:00 -07:00
Nicholas Nethercote c492ca40a2 Use ArrayVec in SparseBitSet.
Instead of `SmallVec`, because the maximum size is known.
2020-07-14 10:31:54 +10:00
Lynoure Braakman d27e7d04a1 Clarify the description for rfind
Changes the example code to illustrate the difference between
find and rfind
2020-07-13 17:41:27 +02:00
Philipp Krones 019e281d15 Rollup merge of #5752 - chrisduerr:pedantic_ranges, r=flip1995
Move range_minus_one to pedantic

This moves the range_minus_one lint to the pedantic category, so there
will not be any warnings emitted by default. This should work around
problems where the suggestion is impossible to resolve due to the range
consumer only accepting a specific range implementation, rather than the
`RangeBounds` trait (see #3307).

While it is possible to work around this by extracting the boundary into
a variable, I don't think clippy should encourage people to disable or
work around lints, but instead the lints should be fixable. So hopefully
this will help until a proper implementation checks what the range is
used for.

*Please keep the line below*
changelog: move [`range_minus_one`] to pedantic
2020-07-13 15:59:42 +02:00
wangtheo 8df79fcc76 Remove trailing whitespace 2020-07-13 09:44:48 -04:00
Pankaj Chaudhary bc2b37aad7 Merge branch 'master' into E0688 2020-07-13 14:57:22 +05:30
PankajChaudhary5 e3ae4c7345 Added proper explanation of ErrorCode-E0688 2020-07-13 14:05:48 +05:30
Teddy_Wang eac809244e Removed trailing whitespace 2020-07-13 01:52:10 -04:00
Teddy_Wang 5ff7e1ad2c Added ui tests for volatile and nearby intrinsics 2020-07-13 00:47:09 -04:00
Teddy_Wang 9a3a31a153 Added tests for volatile and nearbyint intrinsics 2020-07-12 22:38:37 -04:00
Adrian Cruceru ed587f83cf Update llvm-project to latest origin/rustc/10.0-2020-05-05 commit which includes LVI segfault fix 2020-07-12 18:49:14 +00:00
Jarek Samic 8c45cf8e60 Add Ayu theme to rustdoc 2020-07-12 14:48:13 -04:00
Jarek Samic 0e89f50f6e Clean up handling of style files in rustdoc
Disable all themes other than `light.css` to prevent rule conflicts
2020-07-12 14:37:22 -04:00
Esteban Küber 5daedea3db Detect tuple struct incorrectly used as struct pat 2020-07-12 10:34:48 -07:00
David Wood 5afbc5201c typeck: report placeholder type error w/out span
This commit fixes a regression introduced in rust-lang/rust#70369 which
meant that an error was not being emitted for invalid placeholder types
when there wasn't a span available.

Signed-off-by: David Wood <david@davidtw.co>
2020-07-12 16:40:22 +01:00
Lzu Tao e31898b024 Reduce unsafe scope 2020-07-12 14:51:04 +00:00
Lzu Tao 0281a05f66 Prefer empty OsStr over unsafe cast from [u8] 2020-07-12 14:51:04 +00:00
Lzu Tao b1d6798899 Rewrite parse_two_comps 2020-07-12 14:51:04 +00:00
Lzu Tao 27a966a149 Make use of slice::strip_prefix and slice pattern 2020-07-12 14:51:04 +00:00
Lzu Tao 90a7d2470a Make is_valid_drive_letter function 2020-07-12 14:51:04 +00:00
Lzu Tao 0ff820cb62 Move constants to top file 2020-07-12 14:51:04 +00:00
Lzu Tao 1e05e09fe9 Remove the useless indentation 2020-07-12 14:51:04 +00:00
Ralf Jung ff5e1078fc assign tracking issue 2020-07-12 12:48:43 +02:00
Lzu Tao 9a8b516de0 Sorting feature attributes in std 2020-07-12 09:40:12 +00:00
Alex Gaynor 905b5ad80a don't mark linux kernel module targets as a unix environment 2020-07-11 17:20:33 -04:00