Esteban Küber
fb3e4b349a
Account for macros in const generics
2022-12-09 15:21:12 -08:00
Matthias Krüger
4fae5891d0
Rollup merge of #102406 - mejrs:missing_copy, r=wesleywiser
...
Make `missing_copy_implementations` more cautious
- Fixes https://github.com/rust-lang/rust/issues/98348
- Also makes the lint not fire on large types and types containing raw pointers. Thoughts?
2022-12-09 22:31:54 +01:00
Maybe Waffle
84a46352ac
Don't warn about unused parens when they are used by yeet expr
2022-12-09 18:32:06 +00:00
Gary Guo
5e44a65517
Implement allow-by-default multiple_supertrait_upcastable lint
2022-12-09 02:29:51 +00:00
Matthias Krüger
3bcfa4c459
Rollup merge of #105267 - compiler-errors:issue-104613, r=oli-obk
...
Don't ICE in ExprUseVisitor on FRU for non-existent struct
Fixes #104613
Fixes #105202
2022-12-07 15:39:06 +01:00
Nicholas Nethercote
d049be30cf
Split EarlyContextAndPasses::check_id
in two.
2022-12-07 19:29:31 +11:00
Nicholas Nethercote
b08fd6e8ef
Inline some hot lint pass functions.
...
These each have a single call site, due to being called from a
"combined" lint pass.
2022-12-07 19:29:31 +11:00
Nicholas Nethercote
ec117c0ebd
Rename $passes
as $pass
in several macros.
...
Because it makes more sense that way.
2022-12-07 19:29:31 +11:00
Nicholas Nethercote
ac1e69c903
Add some useful comments.
2022-12-07 19:29:31 +11:00
Nicholas Nethercote
0c844730d3
Remove $hir
argument from late_lint_methods!
.
...
Because it's always `'tcx`.
2022-12-07 19:29:26 +11:00
bors
e491d2b24d
Auto merge of #105291 - nnethercote:remove-LintPassObjects, r=cjgillot
...
Remove `{Early,Late}LintPassObjects`.
`EarlyContextAndPass` wraps a single early lint pass. We aggregate multiple passes into that single pass by using `EarlyLintPassObjects`.
This commit removes `EarlyLintPassObjects` by changing `EarlyContextAndPass` into `EarlyContextAndPasses`. I.e. it just removes a level of indirection. This makes the code simpler and slightly faster.
The commit does likewise for late lints.
r? `@cjgillot`
2022-12-07 03:52:19 +00:00
Matthias Krüger
b29a4f9bac
Rollup merge of #105004 - TaKO8Ki:fix-104897, r=wesleywiser
...
Fix `emit_unused_delims_expr` ICE
Fixes #104897
This is also related to #104433 .
2022-12-06 16:54:53 +01:00
Matthias Krüger
db416ea195
Rollup merge of #104898 - oli-obk:group_all_the_things, r=wesleywiser
...
Put all cached values into a central struct instead of just the stable hash
cc `@nnethercote`
this allows re-use of the type for Predicate without duplicating all the logic for the non-hash cached fields
2022-12-06 16:54:52 +01:00
Nicholas Nethercote
8980d9a76d
Remove {Early,Late}LintPassObjects
.
...
`EarlyContextAndPass` wraps a single early lint pass. We aggregate
multiple passes into that single pass by using `EarlyLintPassObjects`.
This commit removes `EarlyLintPassObjects` by changing
`EarlyContextAndPass` into `EarlyContextAndPasses`. I.e. it just removes
a level of indirection. This makes the code simpler and slightly faster.
The commit does likewise for late lints.
2022-12-05 19:50:10 +11:00
Michael Goulet
26b24cd755
drive-by: move field_index to typeck results
2022-12-04 17:59:21 +00:00
bors
e960b5e774
Auto merge of #104863 - nnethercote:reduce-lint-macros, r=cjgillot
...
Reduce macro usage for lints
r? `@cjgillot`
2022-12-02 15:31:15 +00:00
Takayuki Maeda
5c7278a364
return when expr has error
...
fmt
add a comment
2022-12-02 17:01:21 +09:00
Nicholas Nethercote
406dace6f2
Inline and remove early_lint_node
.
...
It has a single call site.
2022-12-02 15:24:01 +11:00
Nicholas Nethercote
a9b02af62b
Merge builtins
into EarlyLintPassObjects
.
...
This avoids calling `early_lint_node` twice.
Note: one `early_lint_node` call had `!pre_expansion` for the second
argument and the other had `false`. The new single call just has
`!pre_expansion`. This results in a reduction of duplicate error
messages in some `ui-fulldeps` tests. The order of some `ui-fulldeps`
output also changes, but that doesn't matter.
2022-12-02 15:23:28 +11:00
Nicholas Nethercote
44cb4f70a8
Remove some unnecessary Send
bounds.
...
Required to get the parallel compiler building again.
2022-12-02 13:59:28 +11:00
Nicholas Nethercote
357aee9320
Inline and remove late_lint_pass_crate
.
...
It has a single call site.
2022-12-02 13:59:28 +11:00
Nicholas Nethercote
0e4f55d63f
Inline and remove late_lint_mod_pass
.
...
It has a single call site.
2022-12-02 13:59:28 +11:00
Nicholas Nethercote
890c5ead20
Merge builtins
into LateLintPassObjects
.
...
This avoids calling the `late_lint_{mod_pass,pass_crate}` twice.
2022-12-02 13:59:28 +11:00
Nicholas Nethercote
99e9c1ddb7
Remove six macros relating to lint definitions.
...
These were enabled by the removal of `-Zno-interleave-lints`.
2022-12-02 13:59:28 +11:00
Nicholas Nethercote
67cfe2cfbb
Remove -Zno-interleave-lints
.
...
Because it complicates lint implementation greatly.
2022-12-02 13:59:28 +11:00
Nicholas Nethercote
33faf01690
Eliminate four unnecessary lint macros.
...
The lint definitions use macros heavily. This commit merges some of them
that are split unnecessarily. I find the reduced indirection makes it
easier to imagine what the generated code will look like.
2022-12-02 13:59:28 +11:00
Vadim Petrochenkov
b32a4edb20
rustc_ast_lowering: Stop lowering imports into multiple items
...
Lower them into a single item with multiple resolutions instead.
This also allows to remove additional `NodId`s and `DefId`s related to those additional items.
2022-12-01 18:51:20 +03:00
Vadim Petrochenkov
6cd4dd3091
rustc_hir: Relax lifetime requirements on Visitor::visit_path
2022-12-01 17:04:02 +03:00
Oli Scherer
46ba1545b8
Update documentation
2022-11-30 12:17:54 +00:00
mejrs
34277fcddc
Rebase
2022-11-29 17:33:51 +01:00
mejrs
b209ff27f3
Update trait check
2022-11-29 17:33:51 +01:00
mejrs
4ced370f7c
Make missing_copy_implementations
more cautious
2022-11-29 17:33:50 +01:00
Santiago Pastorino
537488efd6
Make inferred_outlives_crate return Clause
2022-11-29 12:01:58 -03:00
Matthias Krüger
c81605ca91
Rollup merge of #104951 - Swatinem:async-kind, r=compiler-errors
...
Simplify checking for `GeneratorKind::Async`
Adds a helper method around `generator_kind` that makes matching async constructs simpler.
2022-11-29 05:24:21 +01:00
Arpad Borsos
2db0dc3297
Simplify checking for GeneratorKind::Async
...
Adds a helper method around `generator_kind` that makes matching async constructs simpler.
2022-11-28 23:12:01 +01:00
Nicholas Nethercote
a60e337c88
Rename NestedMetaItem::[Ll]iteral
as NestedMetaItem::[Ll]it
.
...
We already use a mix of `Literal` and `Lit`. The latter is better
because it is shorter without causing any ambiguity.
2022-11-28 15:18:53 +11:00
Matthias Krüger
86304f5149
Rollup merge of #104976 - WaffleLapkin:move_comments, r=cjgillot
...
Prefer doc comments over `//`-comments in compiler
Doc comments are generally nicer: they show up in the documentation, they are shown in IDEs when you hover other mentions of items, etc. Thus it makes sense to use them instead of `//`-comments.
2022-11-27 22:14:08 +01:00
bors
454784afba
Auto merge of #104048 - cjgillot:split-lifetime, r=compiler-errors
...
Separate lifetime ident from lifetime resolution in HIR
Drive-by: change how suggested generic args are computed.
Fixes https://github.com/rust-lang/rust/issues/103815
I recommend reviewing commit-by-commit.
2022-11-27 14:30:19 +00:00
Maybe Waffle
1d42936b18
Prefer doc comments over //
-comments in compiler
2022-11-27 11:19:04 +00:00
bors
df04d28163
Auto merge of #103917 - oli-obk:layout_math, r=RalfJung,lcnr
...
Various cleanups around scalar layout restrictions
Pulled out of https://github.com/rust-lang/rust/pull/103724
2022-11-27 10:35:00 +00:00
Guillaume Gomez
a2e485c25c
Rollup merge of #104786 - WaffleLapkin:amp-mut-help, r=compiler-errors
...
Use the power of adding helper function to simplify code w/ `Mutability`
r? `@compiler-errors`
2022-11-26 17:47:23 +01:00
Oli Scherer
208bb933e7
Use "must be init" instead of "must not be uninit" everywhere
2022-11-25 08:40:27 +00:00
Oli Scherer
5446a52b4b
Add a because
to errors derived from fields
2022-11-25 08:40:03 +00:00
Oli Scherer
fcb1f1874f
Don't show fields from other crates
2022-11-25 08:12:16 +00:00
Oli Scherer
98c550ecc8
Reinstate the previous compact form of "in this field" errors
2022-11-25 08:11:29 +00:00
Oli Scherer
ccaa28bf69
Don't try to compute the layout of generic types.
2022-11-25 08:10:52 +00:00
Oli Scherer
2bed079103
Compute layout instead of manually procesisng the layout restriction attributes
2022-11-25 08:10:29 +00:00
Oli Scherer
5cbf172909
Print a trace through types to show how to get to the problematic type
2022-11-25 08:09:52 +00:00
Santiago Pastorino
974e2837bb
Introduce PredicateKind::Clause
2022-11-25 00:04:54 -03:00
bors
65a6e22668
Auto merge of #104845 - matthiaskrgr:rollup-tckj956, r=matthiaskrgr
...
Rollup of 11 pull requests
Successful merges:
- #104514 (Use node_ty_opt to avoid ICE in visit_ty)
- #104704 (Allow power10-vector feature in PowerPC)
- #104747 (resolve: Don't use constructor def ids in the map for field names)
- #104773 (OpaqueCast projections are always overlapping, they can't possibly be disjoint)
- #104774 (Document split{_ascii,}_whitespace() for empty strings)
- #104780 (make `error_reported` check for delayed bugs)
- #104782 (Bump the const eval step limit)
- #104792 (rustdoc: simplify `.search-results-title` CSS)
- #104796 (lint: do not warn unused parens around higher-ranked function pointers)
- #104820 (Remove normalize_projection_type)
- #104822 (with_query_mode -> new)
Failed merges:
- #104716 (move 2 candidates into builtin candidate)
- #104841 (Assert that we don't capture escaping bound vars in `Fn` trait selection)
r? `@ghost`
`@rustbot` modify labels: rollup
2022-11-24 23:45:32 +00:00