Commit Graph

12909 Commits

Author SHA1 Message Date
Vin Singh
9d45e0e0b4 Revert #26494 regression 2022-03-03 18:30:27 +00:00
pierwill
c08a9a4f1d Make Ord, PartialOrd opt-out in newtype_index
Also remove `step` impl if `ORD_IMPL = off`
2022-03-03 11:52:40 -06:00
Camille GILLOT
42ffdd973e Make unknown feature error deterministic. 2022-03-03 18:50:28 +01:00
Camille GILLOT
27d8cd7db0 Cleanup feature gates. 2022-03-03 18:50:28 +01:00
Camille GILLOT
3c7947ee43 Gate stability attrs with other attributes. 2022-03-03 18:50:26 +01:00
bjorn3
2f84484aac Remove the everybody loops pass
It isn't used anymore by rustdoc
2022-03-03 18:23:09 +01:00
Camille GILLOT
71838827b6 Force ensure stability_index. 2022-03-03 18:22:31 +01:00
Camille GILLOT
6f8e9f416a Move query providers. 2022-03-03 18:22:31 +01:00
Camille GILLOT
1b4b5e066b Remove useless map. 2022-03-03 18:14:34 +01:00
Camille GILLOT
fbcf7d415b Move the set of features to the features query. 2022-03-03 18:08:30 +01:00
Takayuki Maeda
ff19c05832 remove a unnecessary .. pattern 2022-03-04 00:57:38 +09:00
bors
32cbc7630b Auto merge of #84944 - lcnr:obligation-dedup, r=jackh726
remove obligation dedup from `impl_or_trait_obligations`

Looking at the examples from #38528 they all seem to compile fine even without this and it seems like this might be unnecessary effort
2022-03-03 15:43:42 +00:00
Amanieu d'Antras
aa36237e16 Add -Z oom={panic,abort} command-line option 2022-03-03 12:58:38 +00:00
bors
4566094913 Auto merge of #94512 - RalfJung:sdiv-ub, r=oli-obk
Miri/CTFE: properly treat overflow in (signed) division/rem as UB

To my surprise, it looks like LLVM treats overflow of signed div/rem as UB. From what I can tell, MIR `Div`/`Rem` directly lowers to the corresponding LLVM operation, so to make that correct we also have to consider these overflows UB in the CTFE/Miri interpreter engine.

r? `@oli-obk`
2022-03-03 12:56:24 +00:00
cuishuang
00fffdddd2 all: fix some typos
Signed-off-by: cuishuang <imcusg@gmail.com>
2022-03-03 19:47:23 +08:00
Loïc BRANSTETT
50e61a1a66 Add support for values() with --check-cfg 2022-03-03 12:00:28 +01:00
Loïc BRANSTETT
516488484e Fix invalid lint_node_id being put on a removed stmt 2022-03-03 11:52:09 +01:00
Nicholas Nethercote
97eb1b4669 Change initial_matcher_pos() into MatcherPos::new(). 2022-03-03 21:47:02 +11:00
Nicholas Nethercote
e5f3fd6250 Use a better return type for inner_parse_loop.
Because `inner_parse_loop` has only one way to not succeed, not three.
2022-03-03 21:46:59 +11:00
Nicholas Nethercote
643ba50004 Introduce MatcherPosRepetition.
There are three `Option` fields in `MatcherPos` that are only used in
tandem. This commit combines them, making the code slightly easier to
read. (It also makes clear that the `sep` field arguably should have
been `Option<Option<Token>>`!)
2022-03-03 21:45:52 +11:00
Nicholas Nethercote
b9fabc3f9c Add a static size assertion for MatcherPos. 2022-03-03 21:45:45 +11:00
Nicholas Nethercote
11c565f14b Improve if/else formatting in macro_parser.rs.
To avoid the strange style where comments force `else` onto its own
line.

The commit also removes several else-after-return constructs, which can
be hard to read.
2022-03-03 21:45:42 +11:00
Matthias Krüger
88aa75ba8e Rollup merge of #94544 - mark-i-m:macro-comments, r=petrochenkov
Add some examples to comments in mbe code

I found these things non-obvious when re-familiarizing myself with the code.

r? `@petrochenkov`
2022-03-03 11:02:56 +01:00
Matthias Krüger
845516cd3b Rollup merge of #94522 - thinety:fix-e0284-message, r=Dylan-DPC
Remove out-of-context line at end of E0284 message

Removed the last line of E0284 message because it was out of context (probably kept by accident when changing whole error message).
2022-03-03 11:02:52 +01:00
Matthias Krüger
dbf0372b72 Rollup merge of #94484 - c410-f3r:more-let-chains, r=jackh726
8 - Make more use of `let_chains`

Continuation of #94376.

cc #53667
2022-03-03 11:02:51 +01:00
mark
88b99224c1 add some examples to comments in mbe code 2022-03-02 21:33:43 -06:00
Dylan DPC
878a4ff90e Rollup merge of #94529 - GuillaumeGomez:unused-doc-comments-blocks, r=estebank
Unused doc comments blocks

Fixes #77030.
2022-03-03 01:09:15 +01:00
Dylan DPC
3e6abf0c35 Rollup merge of #94505 - cuviper:mono-item-sort-local, r=michaelwoerister,davidtwco
Restore the local filter on mono item sorting

In `CodegenUnit::items_in_deterministic_order`, there's a comment that
only local HirIds should be taken into account, but #90408 removed the
`as_local` call that sets others to None. Restoring that check fixes the
s390x hangs seen in [RHBZ 2058803].

[RHBZ 2058803]: https://bugzilla.redhat.com/show_bug.cgi?id=2058803
2022-03-03 01:09:14 +01:00
Dylan DPC
493ed7a6af Rollup merge of #94433 - Urgau:check-cfg-allowness, r=petrochenkov
Improve allowness of the unexpected_cfgs lint

This pull-request improve the allowness (`#[allow(...)]`) of the `unexpected_cfgs` lint.

Before this PR only crate level `#![allow(unexpected_cfgs)]` worked, now with this PR it also work when put around `cfg!` or if it is in a upper level. Making it work ~for the attributes `cfg`, `cfg_attr`, ...~ for the same level is awkward as the current code is design to give "Some parent node that is close to this macro call" (cf. https://doc.rust-lang.org/nightly/nightly-rustc/rustc_expand/base/struct.ExpansionData.html) meaning that allow on the same line as an attribute won't work. I'm note even sure if this would be possible.

Found while working on https://github.com/rust-lang/rust/pull/94298.
r? ````````@petrochenkov````````
2022-03-03 01:09:12 +01:00
Dylan DPC
7537b2036a Rollup merge of #94375 - WaffleLapkin:copy-suggestion, r=estebank
Adt copy suggestions

Previously we've only suggested adding `Copy` bounds when the type being moved/copied is a type parameter (generic). With this PR we also suggest adding bounds when a type
- Can be copy
- All predicates that need to be satisfied for that are based on type params

i.e. we will suggest `T: Copy` for `Option<T>`, but won't suggest anything for `Option<String>`.

An example:
```rust
fn duplicate<T>(t: Option<T>) -> (Option<T>, Option<T>) {
    (t, t)
}
```
New error (current compiler doesn't provide `help`:):
```text
error[E0382]: use of moved value: `t`
 --> t.rs:2:9
  |
1 | fn duplicate<T>(t: Option<T>) -> (Option<T>, Option<T>) {
  |                 - move occurs because `t` has type `Option<T>`, which does not implement the `Copy` trait
2 |     (t, t)
  |      -  ^ value used here after move
  |      |
  |      value moved here
  |
help: consider restricting type parameter `T`
  |
1 | fn duplicate<T: Copy>(t: Option<T>) -> (Option<T>, Option<T>) {
  |               ++++++
```

Fixes #93623
r? ``````````@estebank``````````
``````````@rustbot`````````` label +A-diagnostics +A-suggestion-diagnostics +C-enhancement

----

I'm not at all sure if this is the right implementation for this kind of suggestion, but it seems to work :')
2022-03-03 01:09:11 +01:00
Dylan DPC
bdad4a7be7 Rollup merge of #93072 - m-ou-se:compatible-variants-suggestion-with-desugaring, r=estebank
Compatible variants suggestion with desugaring

This fixes #90553 for `for` loops and other desugarings.

r? ```@estebank```
2022-03-03 01:09:08 +01:00
Tomasz Miąsko
926bf1a371 Pass LLVM string attributes as string slices 2022-03-03 00:28:50 +01:00
Guillaume Gomez
628fbdf9b7 Fix unused_doc_comments lint errors 2022-03-02 20:06:35 +01:00
Caio
658ff942b0 8 - Make more use of let_chains 2022-03-02 16:02:37 -03:00
Mara Bos
003c892f9f Fix Ok(()) suggestion when desugaring is involved. 2022-03-02 19:26:53 +01:00
xFrednet
5275d02433 Use Vec for expectations to have a constant order (RFC-2383) 2022-03-02 18:10:07 +01:00
Guillaume Gomez
ac891ea374 Extend unused_doc_comments lint to check on blocks 2022-03-02 18:02:06 +01:00
xFrednet
defc056ccc Address review comments 2022-03-02 17:46:12 +01:00
xFrednet
4887eb7b2d Added panics for unreachable states for expectations (RFC 2383) 2022-03-02 17:46:11 +01:00
xFrednet
3414ad9551 Emit unfullfilled_lint_expectation using a HirId for performance (RFC-2383) 2022-03-02 17:46:10 +01:00
xFrednet
a14456f91f Reduced the size of LintExpectationId by 12 bytes (RFC-2383) 2022-03-02 17:46:10 +01:00
xFrednet
43dc430f52 Test expect with forbid and fix doc errors (RFC-2383)
* Add test to expect and the forbid a lint (RFC 2383)
2022-03-02 17:46:09 +01:00
xFrednet
aa2a0a83d9 Expect each lint in attribute individually (RFC-2383) 2022-03-02 17:46:09 +01:00
xFrednet
a9bf9eaef5 Add UI tests for the expect attribute (RFC-2383)
* Add UI tests with macros for the `expect` attribute (RFC-2383)
* Addressed review comments - mostly UI test updates (RFC-2383)
* Documented lint level attribute on macro not working bug (RFC-2383)
  See `rust#87391`
2022-03-02 17:46:08 +01:00
xFrednet
33a5945069 Make LintExpectationId stable between compilation sessions (RFC-2383) 2022-03-02 17:46:08 +01:00
xFrednet
44cb8fa482 Check lint expectations and emit lint if unfulfilled (RFC-2383) 2022-03-02 17:46:07 +01:00
xFrednet
2ca9037b61 Set LintExpectationId in level and collect fulfilled ones (RFC-2383)
* Collect lint expectations and set expectation ID in level (RFC-2383)
* Collect IDs of fulfilled lint expectations from diagnostics (RFC 2383)
2022-03-02 17:46:07 +01:00
xFrednet
f467a58b7b Added unfulfilled_lint_expectations lint for (RFC-2383) 2022-03-02 17:46:06 +01:00
xFrednet
9fef3d9e0a Added Expect lint level and attribute (RFC-2383)
* Also added the `LintExpectationId` which will be used in future commits
2022-03-02 17:46:05 +01:00
mark
e489a94dee rename ErrorReported -> ErrorGuaranteed 2022-03-02 09:45:25 -06:00