Commit graph

213163 commits

Author SHA1 Message Date
Oli Scherer
6f77c97b38 Assert that various types have the right amount of generic args and fix the sites that used the wrong amount 2022-11-21 20:31:59 +00:00
Oli Scherer
d9a02b0fb7 Split out the actual predicate solving code into a separate function 2022-11-21 20:31:34 +00:00
Oli Scherer
48ff6a95b5 Use ty::List instead of InternalSubsts 2022-11-21 20:31:11 +00:00
Oli Scherer
250dcf421a Check that type_implements_trait actually is passed the right amount of generic params 2022-11-21 20:30:45 +00:00
Oli Scherer
0c47deed9f Reduce the amount of passed-around arguments that will get merged into one later anyway 2022-11-21 20:28:48 +00:00
Oli Scherer
ca57832db6 Add more regression tests 2022-11-21 20:16:36 +00:00
Philipp Krones
6fce4691d5 Clippy: Don't import GenericParamDefKind 2022-11-21 21:05:06 +01:00
Philipp Krones
242280252d
Clippy: Don't import GenericParamDefKind 2022-11-21 21:05:06 +01:00
Philipp Krones
28fb084ec7 Fix declare_clippy_lint crate 2022-11-21 20:52:12 +01:00
Philipp Krones
b4c90abb5f
Fix declare_clippy_lint crate 2022-11-21 20:52:12 +01:00
Philipp Krones
d407778c75
Update Cargo.lock 2022-11-21 20:52:06 +01:00
Philipp Krones
46c5a5d234 Merge commit 'f4850f7292' into clippyup 2022-11-21 20:51:52 +01:00
Philipp Krones
ddf055ad07
Merge commit 'f4850f7292' into clippyup 2022-11-21 20:51:52 +01:00
bors
73efce9ee6 Auto merge of #9770 - sgued:missnamed-getters, r=llogiq
Add new lint  [`misnamed-getters`]

```
changelog: Add new lint  [`misnamed-getters`]
```

Closes #9769

The current lint matches all methods with a body of just one expression under the form `(&mut?)? <expr>.field` where field doesn't match the name of the method but there is a field of the same type in `<expr>` that matches the name. This allows matching nested structs, for example for newtype wrappers. This may cast the net a bit too wide and cause false positives. I'll run [clippy_lint_tester](https://github.com/mikerite/clippy_lint_tester) on the top crates to see how frequently false positives happen.

There also may be room for improvement by checking that the replacement field would work taking into account implementations of `Deref` and `DerefMut` even if the types don't exactly match but I don't know yet how this could be done.
2022-11-21 19:51:42 +00:00
Vadim Petrochenkov
ae8f75c6a3 Unreserve braced enum variants in value namespace 2022-11-21 22:40:06 +03:00
Vadim Petrochenkov
7a5376d23c Unreserve braced enum variants in value namespace 2022-11-21 22:40:06 +03:00
bors
f4850f7292 Auto merge of #9881 - flip1995:rustup, r=flip1995
Rustup

r? `@ghost`

It took >4 weeks, but I finally got to do the sync 🎉

changelog: none
2022-11-21 19:16:14 +00:00
Philipp Krones
05b914a92b
Fix custom ICE message test on windows 2022-11-21 20:15:50 +01:00
ozkanonur
5907e9155e
pass clippy sysroot env if given r=ozkanonur
Signed-off-by: ozkanonur <work@onurozkan.dev>
2022-11-21 20:02:20 +01:00
Philipp Krones
661f13ce3b
Bump nightly version -> 2022-11-21 2022-11-21 20:02:14 +01:00
Philipp Krones
25e98bf708
Bump Clippy version -> 0.1.67 2022-11-21 20:02:06 +01:00
Philipp Krones
fd5b85c957
Merge remote-tracking branch 'upstream/master' into rustup 2022-11-21 20:01:17 +01:00
bors
b7bc90fea3 Auto merge of #104120 - mejrs:diag, r=davidtwco
Match and enforce crate and slug names

Some of these were in the wrong place or had a name that didn't match.
2022-11-21 18:36:26 +00:00
Eric Holk
ff38c3528a Coercions work now 2022-11-21 10:20:12 -08:00
Alex Macleod
637139d2ff Add clippy_utils::msrv::Msrv to keep track of the current MSRV 2022-11-21 18:16:40 +00:00
Eric Holk
1a913a6347 Add a test case for async dyn* traits 2022-11-21 10:13:57 -08:00
bjorn3
a449d0d143 Rustfmt 2022-11-21 17:00:28 +00:00
Oli Scherer
c16a90f5e3 Test generalization during coherence 2022-11-21 16:47:29 +00:00
Oli Scherer
11adf03790 Add some more assertions for type relations not used during coherence 2022-11-21 16:38:49 +00:00
Oli Scherer
7301cd7844 Type generalization should not look at opaque type in coherence 2022-11-21 16:38:23 +00:00
Oli Scherer
11ae334f07 Remove a function that doesn't actually do anything 2022-11-21 16:37:57 +00:00
Oli Scherer
f42e490d6f Register obligations from type relation 2022-11-21 16:37:53 +00:00
Oli Scherer
9a8e1eea7a Move a field around 2022-11-21 16:35:23 +00:00
Oli Scherer
9cd44f8142 nit treat different opaque types 2022-11-21 16:35:10 +00:00
Oli Scherer
386d0a5c67 Add an always-ambiguous predicate to make sure that we don't accidentlally allow trait resolution to prove false things during coherence 2022-11-21 16:35:04 +00:00
Oli Scherer
ae80c764d4 Add an always-ambiguous predicate to make sure that we don't accidentlally allow trait resolution to prove false things during coherence 2022-11-21 16:35:04 +00:00
bjorn3
cf923724cc Fix discriminant handling 2022-11-21 16:29:09 +00:00
Michael Howell
709e9dea91 rustdoc: add test case for pointer cursor 2022-11-21 09:16:54 -07:00
Oli Scherer
94fe30ff2f Treat different opaque types of the same def id as equal during coherence 2022-11-21 16:06:07 +00:00
Oli Scherer
2752e328c9 Allow opaque types in trait impl headers and rely on coherence to reject unsound cases 2022-11-21 16:00:31 +00:00
bors
1cbc45942d Auto merge of #104673 - matthiaskrgr:rollup-85f65ov, r=matthiaskrgr
Rollup of 9 pull requests

Successful merges:

 - #104420 (Fix doc example for `wrapping_abs`)
 - #104499 (rustdoc JSON: Use `Function` everywhere and remove `Method`)
 - #104500 (`rustc_ast`: remove `ref` patterns)
 - #104511 (Mark functions created for `raw-dylib` on x86 with DllImport storage class)
 - #104595 (Add `PolyExistentialPredicate` type alias)
 - #104605 (deduplicate constant evaluation in cranelift backend)
 - #104628 (Revert "Update CI to use Android NDK r25b")
 - #104662 (Streamline deriving on packed structs.)
 - #104667 (Revert formatting changes of a test)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-11-21 15:22:54 +00:00
Ralf Jung
1a6966602a dont attempt strict provenance in SGX 2022-11-21 16:10:56 +01:00
Santiago Pastorino
16c9e39021
negative_impl_exists should take an InferCtxt 2022-11-21 11:26:23 -03:00
mejrs
f47abd8987 Fix make test 2022-11-21 15:24:51 +01:00
mejrs
e8e47e0873 Improve slug name error 2022-11-21 15:24:51 +01:00
mejrs
d494502f64 Fix tests 2022-11-21 15:24:51 +01:00
mejrs
fe212eca76 Match crate and slug names 2022-11-21 15:24:50 +01:00
Santiago Pastorino
2faad3b699
negative_impl should take a TyCtxt 2022-11-21 11:09:53 -03:00
Matthias Krüger
9326261279
Rollup merge of #104667 - WaffleLapkin:unfmttest, r=Dylan-DPC
Revert formatting changes of a test

See https://github.com/rust-lang/rust/pull/99935/files#r1027259119
cc ``@CAD97``
2022-11-21 14:11:13 +01:00
Matthias Krüger
439a8e6cef
Rollup merge of #104662 - nnethercote:tweak-deriving-for-packed-non-copy, r=jackh726
Streamline deriving on packed structs.

The current approach to field accesses in derived code:
- Normal case: `&self.0`
- In a packed struct that derives `Copy`: `&{self.0}`
- In a packed struct that doesn't derive `Copy`: `let Self(ref x) = *self`

The `let` pattern used in the third case is equivalent to the simpler field access in the first case. This commit changes the third case to use a field access.

The commit also combines two boolean arguments (`is_packed` and `always_copy`) into a single field (`copy_fields`) earlier, to save passing both around.

r? ``@jackh726``
2022-11-21 14:11:13 +01:00