Matthias Krüger
5197ef66b7
Rollup merge of #103908 - estebank:consider-cloning, r=compiler-errors
...
Suggest `.clone()` or `ref binding` on E0382
2022-11-24 08:42:33 +01:00
bors
872631d0f0
Auto merge of #104507 - WaffleLapkin:asderefsyou, r=wesleywiser
...
Use `as_deref` in compiler (but only where it makes sense)
This simplifies some code :3
(there are some changes that are not exacly `as_deref`, but more like "clever `Option`/`Result` method use")
2022-11-24 00:17:35 +00:00
Esteban Küber
3a471b5fd8
Account for x @ y
and suggest ref x @ ref y
2022-11-23 12:17:48 -08:00
bors
80b3c6dbde
Auto merge of #103947 - camsteffen:place-clones, r=cjgillot
...
Reduce `PlaceBuilder` cloning
Some API tweaks with an eye towards reducing clones.
2022-11-23 13:13:50 +00:00
bors
66ccf36f16
Auto merge of #104711 - Dylan-DPC:rollup-gkw1qr8, r=Dylan-DPC
...
Rollup of 6 pull requests
Successful merges:
- #104295 (Check generics parity before collecting return-position `impl Trait`s in trait)
- #104464 (Reduce exceptions overallocation on non Windows x86_64)
- #104615 (Create def_id for async fns during lowering)
- #104669 (Only declare bindings for if-let guards once per arm)
- #104701 (Remove a lifetime resolution hack from `compare_predicate_entailment`)
- #104710 (disable strict-provenance-violating doctests in Miri)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
2022-11-22 13:18:45 +00:00
Dylan DPC
d29491aba0
Rollup merge of #104669 - LeSeulArtichaut:88015-if-let-guard-bindings, r=cjgillot
...
Only declare bindings for if-let guards once per arm
Currently, each candidate for a match arm uses separate locals for the bindings in the if-let guard, causing problems (#88015 ) when those branches converge in the arm body.
Fixes #88015 (🤞 )
2022-11-22 16:36:38 +05:30
bors
b7463e8bdb
Auto merge of #103578 - petrochenkov:nofict, r=nagisa
...
Unreserve braced enum variants in value namespace
With this PR braced enum variants (`enum E { V { /*...*/ } }`) no longer take a slot in value namespace, so the special case mentioned in the note in https://github.com/rust-lang/rfcs/blob/master/text/1506-adt-kinds.md#braced-structs is removed.
Report - https://github.com/rust-lang/rust/pull/103578#issuecomment-1292594900 .
2022-11-22 10:17:09 +00:00
Oli Scherer
c2ecd8f1f6
merge self type and substs in trait_method
2022-11-21 20:41:17 +00:00
Oli Scherer
7658e0fccf
Stop passing the self-type as a separate argument.
2022-11-21 20:39:46 +00:00
Oli Scherer
4d9451b1d1
Fix an ICE that I just made worse
2022-11-21 20:36:15 +00:00
Oli Scherer
25c4760b5d
Some cleanup around trait_method lookup
2022-11-21 20:34:56 +00:00
Oli Scherer
9e4c3f41c1
Use iterators instead of slices at more sites
2022-11-21 20:34:28 +00:00
Oli Scherer
ec8d01fdcc
Allow iterators instead of requiring slices that will get turned into iterators
2022-11-21 20:33:55 +00:00
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
0c47deed9f
Reduce the amount of passed-around arguments that will get merged into one later anyway
2022-11-21 20:28:48 +00:00
Vadim Petrochenkov
7a5376d23c
Unreserve braced enum variants in value namespace
2022-11-21 22:40:06 +03:00
Léo Lanteri Thauvin
baa59d1a77
Only declare bindings for if-let guards once per arm
2022-11-21 12:45:29 +01:00
Cameron Steffen
cc8dddbac9
Factor out conservative_is_privately_uninhabited
2022-11-20 19:04:11 -06:00
Cameron Steffen
34cbe72780
Change to Ty::is_inhabited_from
2022-11-20 19:04:11 -06:00
Matthias Krüger
820a41580e
Rollup merge of #104564 - RalfJung:either, r=oli-obk
...
interpret: use Either over Result when it is not representing an error condition
r? `@oli-obk`
2022-11-20 18:21:48 +01:00
Ralf Jung
09a887cebf
review feedback
2022-11-18 14:24:48 +01:00
Ralf Jung
4101889786
interpret: use Either over Result when it is not representing an error condition
2022-11-18 10:18:32 +01:00
Deadbeef
bc51f8783c
rename to string_deref_patterns
2022-11-18 06:16:20 +00:00
Cameron Steffen
9cf6ce070d
Remove more PlaceBuilder clones
2022-11-17 19:01:05 -06:00
Cameron Steffen
105abe39c0
Replace into_place with to_place
2022-11-17 19:01:05 -06:00
Cameron Steffen
be5b7778c8
Replace try_upvars_resolved with try_to_place
2022-11-17 19:01:05 -06:00
Cameron Steffen
1c819792a7
Introduce PlaceBuilder::resolve_upvar by ref
2022-11-17 19:01:05 -06:00
Deadbeef
b2cb42d6a7
Minimal implementation of implicit deref patterns
2022-11-17 12:46:43 +00:00
bors
7c75fe4c85
Auto merge of #104170 - cjgillot:hir-def-id, r=fee1-dead
...
Record `LocalDefId` in HIR nodes instead of a side table
This is part of an attempt to remove the `HirId -> LocalDefId` table from HIR.
This attempt is a prerequisite to creation of `LocalDefId` after HIR lowering (https://github.com/rust-lang/rust/pull/96840 ), by controlling how `def_id` information is accessed.
This first part adds the information to HIR nodes themselves instead of a table.
The second part is https://github.com/rust-lang/rust/pull/103902
The third part will be to make `hir::Visitor::visit_fn` take a `LocalDefId` as last parameter.
The fourth part will be to completely remove the side table.
2022-11-17 07:42:27 +00:00
Maybe Waffle
94470f4efd
Use as_deref
in compiler (but only where it makes sense)
2022-11-16 21:58:58 +00:00
Matthias Krüger
5763fa74f0
Rollup merge of #104349 - rustaceanclub:master, r=oli-obk
...
fix some typos in comments
2022-11-14 19:26:18 +01:00
Camille GILLOT
607d0c2a14
Store a LocalDefId in hir::AnonConst.
2022-11-13 14:06:11 +00:00
Camille GILLOT
18482f7b23
Store a LocalDefId in hir::GenericParam.
2022-11-13 14:05:30 +00:00
cui fliter
442f848d74
fix some typos in comments
...
Signed-off-by: cui fliter <imcusg@gmail.com>
2022-11-13 15:26:17 +08:00
Michael Goulet
93921dd16d
Don't ICE with inline const errors during MIR build
2022-11-11 17:21:58 +00:00
Michael Goulet
0f89fb1791
Use const_error_with_guaranteed more
2022-11-10 05:39:15 +00:00
Jakob Degen
ba359d8a51
Add support for custom MIR parsing
2022-11-08 23:13:15 -08:00
Matthias Krüger
b101f3a865
Rollup merge of #103984 - V0ldek:103974-refactor-mk_const, r=BoxyUwU
...
Refactor tcx mk_const parameters.
Unroll the `ty::ConstS` parameter to `TyCtxt::mk_const` into separate `ty::ConstKind` and `Ty` parameters.
Signature change is in:
c97fd8183a/compiler/rustc_middle/src/ty/context.rs (L2234)
and
c97fd8183a/compiler/rustc_middle/src/ty/context.rs (L2572-L2575)
the rest is callsites.
Closes #103974
r? `@oli-obk`
2022-11-05 00:02:06 +01:00
Mateusz
c97fd8183a
Refactor tcx mk_const parameters.
2022-11-04 20:33:32 +00:00
Cameron Steffen
e7bae89a3c
Cleanup bind_pattern args
2022-11-03 19:33:59 -05:00
Dylan DPC
94241e7eaf
Rollup merge of #103584 - ouz-a:issue-102303, r=oli-obk
...
Remove bounds check when array is indexed by enum
As the title says, this reverts the behavior introduced with 1.64.
Fixes #102303
r? `@oli-obk`
2022-11-01 14:12:25 +05:30
Yuki Okushi
2a6a8f4d30
Rollup merge of #103749 - est31:reduce_irrefutable_let_else_span, r=cjgillot
...
Reduce span of let else irrefutable_let_patterns warning
Huge spans aren't good for IDE users as they underline constructs that are possibly multiline.
Similar PR to #90761 which did the same for the `unused_macros` lint.
2022-11-01 12:03:41 +09:00
ouz-a
a1672ad5b8
Remove bounds check with enum cast
2022-10-31 14:10:37 +03:00
est31
7b55d17a2f
Reduce span of let else irrefutable_let_patterns warning
...
Huge spans aren't good for IDE users as they underline constructs that
are possibly multiline.
2022-10-30 05:05:21 +01:00
Matthias Krüger
2bff9e2193
Rollup merge of #103726 - TaKO8Ki:avoid-&str-to-string-conversions, r=compiler-errors
...
Avoid unnecessary `&str` to `String` conversions
2022-10-30 00:09:26 +02:00
Takayuki Maeda
a3a3f4d840
avoid unnecessary &str
to String
conversions
2022-10-29 17:14:44 +09:00
Maybe Waffle
a17ccfa621
Accept TyCtxt
instead of TyCtxtAt
in Ty::is_*
functions
...
Functions in answer:
- `Ty::is_freeze`
- `Ty::is_sized`
- `Ty::is_unpin`
- `Ty::is_copy_modulo_regions`
2022-10-27 15:06:08 +04:00
Michael Goulet
6e6fe30d0f
Comment why normalization is needed for debug assertions
2022-10-23 17:23:35 +00:00
Cameron Steffen
2928e9ef2c
Introduce InhabitedPredicate
2022-10-22 13:20:06 -05:00
bors
b15e2c129e
Auto merge of #101832 - compiler-errors:dyn-star-plus, r=eholk
...
Make `dyn*` casts into a coercion, allow `dyn*` upcasting
I know that `dyn*` is likely not going to be a feature exposed to surface Rust, but this makes it slightly more ergonomic to write tests for these types anyways. ... and this was just fun to implement anyways.
1. Make `dyn*` into a coercion instead of a cast
2. Enable `dyn*` upcasting since we basically get it for free
3. Simplify some of the cast checking code since we're using the coercion path now
r? `@eholk` but feel free to reassign
cc `@nikomatsakis` and `@tmandry` who might care about making `dyn*` casts into a coercion
2022-10-15 07:36:38 +00:00