Maybe Waffle
8751fa1a9a
if $c:expr { Some($r:expr) } else { None }
=>> $c.then(|| $r)
2023-02-16 15:26:00 +00:00
Dylan DPC
bb1e9846b2
Rollup merge of #108103 - matthiaskrgr:lice, r=compiler-errors
...
be nice and don't slice
These are already slices, no need to slice them again
2023-02-16 11:40:22 +05:30
Michael Goulet
95f35fe443
Deny some late-bound ty/ct in some positions, add tests
2023-02-16 03:39:59 +00:00
Michael Goulet
915703ca7a
A bit more work on late-bound consts
2023-02-16 03:39:59 +00:00
Michael Goulet
52f82354dc
Make things actually work
2023-02-16 03:39:59 +00:00
Michael Goulet
eff2cb7760
Rename some region-specific stuff
2023-02-16 03:39:59 +00:00
Matthias Krüger
e17cd0c019
be nice and don't slice
...
These are already slices, no need to slice them again
2023-02-16 00:06:51 +01:00
Matthias Krüger
8f65e25aec
Rollup merge of #108010 - compiler-errors:can_eq-returns-bool, r=lcnr
...
Make `InferCtxt::can_eq` and `InferCtxt::can_sub` return booleans
Nobody matches on the result, nor does the result return anything useful...
2023-02-15 21:30:56 +01:00
Maybe Waffle
a32d392741
Copy ty::AssocItem
all other the place
2023-02-15 20:22:41 +00:00
bors
2d14db321b
Auto merge of #108006 - cjgillot:def-impl, r=oli-obk
...
Avoid accessing HIR when it can be avoided
Experiment to see if it helps some incremental cases.
Will be rebased once https://github.com/rust-lang/rust/pull/107942 gets merged.
r? `@ghost`
2023-02-15 16:14:10 +00:00
Nicholas Nethercote
cef9004f5a
Add specialized variants of mk_region
.
...
Much like there are specialized variants of `mk_ty`. This will enable
some optimization in the next commit.
Also rename the existing `re_error*` functions as `mk_re_error*`, for
consistency.
2023-02-15 09:02:44 +11:00
bors
0416b1a6f6
Auto merge of #108056 - matthiaskrgr:rollup-oa6bxvh, r=matthiaskrgr
...
Rollup of 9 pull requests
Successful merges:
- #107573 (Update the minimum external LLVM to 14)
- #107626 (Fix `x fix` on the standard library itself)
- #107673 (update ICU4X to 1.1.0)
- #107733 (Store metrics from `metrics.json` to CI PGO timer)
- #108007 (Use `is_str` instead of string kind comparison)
- #108033 (add an unstable `#[rustc_coinductive]` attribute)
- #108039 (Refactor refcounted structural_impls via functors)
- #108040 (Use derive attributes for uninteresting traversals)
- #108044 (interpret: rename Pointer::from_addr → from_addr_invalid)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
2023-02-14 21:07:04 +00:00
Camille GILLOT
065f0b222d
Move query out of path.
2023-02-14 20:27:38 +00:00
Camille GILLOT
40cb4d1bc7
Even less HIR.
2023-02-14 20:27:38 +00:00
Camille GILLOT
facecf6e1b
Fetch less HIR in signature check.
2023-02-14 20:26:03 +00:00
Camille GILLOT
2a51e73ac9
Do not fetch HIR for inherent impls.
2023-02-14 19:55:45 +00:00
Camille GILLOT
03dff82d59
Add of_trait
to DefKind::Impl.
2023-02-14 19:55:44 +00:00
lcnr
646e667200
add a #[rustc_coinductive]
attribute
2023-02-14 11:53:22 +01:00
Oli Scherer
936bf29d4c
s/eval_usize/eval_target_usize/ for clarity
2023-02-14 08:51:19 +00:00
Matthias Krüger
5f3d360844
Rollup merge of #107942 - compiler-errors:tighter-inherent-impl-bad-spans, r=Nilstrieb
...
Tighter spans for bad inherent `impl` self types
Self-explanatory
2023-02-13 23:25:12 +01:00
Michael Goulet
eb286dd070
Make can_eq and can_sub return booleans
2023-02-13 19:29:02 +00:00
Michael Goulet
e20f6ff1dc
Tighter spans for bad inherent impl types
2023-02-13 18:41:18 +00:00
Alan Egerton
63ad5d0522
Rename folder traits' tcx
method to interner
2023-02-13 10:24:51 +00:00
Alan Egerton
9783fcc13b
Make folding traits generic over the Interner
2023-02-13 10:24:49 +00:00
Alan Egerton
dea342d861
Make visiting traits generic over the Interner
2023-02-13 10:24:49 +00:00
Alan Egerton
b409329c62
Workaround issue #107747
...
Only required until fix #107803 is merged into stage0 compiler, expected
when beta 1.69.0 is released on 2023-03-09, then this commit can be
reverted.
2023-02-13 10:24:47 +00:00
Alan Egerton
ba55a453eb
Alias folding/visiting traits instead of re-export
2023-02-13 10:24:46 +00:00
Nicholas Nethercote
7a72560154
Reduce direct mk_ty
usage.
...
We use more specific `mk_*` functions in most places, might as well use
them as much as possible.
2023-02-13 09:32:48 +11:00
bors
1623ab0246
Auto merge of #107507 - BoxyUwU:deferred_projection_equality, r=lcnr
...
Implement `deferred_projection_equality` for erica solver
Somewhat of a revival of #96912 . When relating projections now emit an `AliasEq` obligation instead of attempting to determine equality of projections that may not be as normalized as possible (i.e. because of lazy norm, or just containing inference variables that prevent us from resolving an impl). Only do this when the new solver is enabled
2023-02-11 05:46:24 +00:00
Boxy
23ab2464be
add AliasEq
to PredicateKind
2023-02-10 13:44:46 +00:00
Esteban Küber
3689295a6b
Use ErrorGuaranteed
more in ReError
2023-02-09 10:38:45 +00:00
Esteban Küber
861f451235
Change to ReError(ErrorGuaranteed)
2023-02-09 10:26:49 +00:00
Esteban Küber
ffaf2a5c27
review comments
2023-02-09 10:26:49 +00:00
Esteban Küber
30cf7a3f51
Introduce ReError
...
CC #69314
2023-02-09 10:26:49 +00:00
bors
c40919b7a7
Auto merge of #106938 - GuillaumeGomez:normalize-projection-field-ty, r=oli-obk
...
Add missing normalization for union fields types
Overshadows https://github.com/rust-lang/rust/pull/106808 .
From the experiment https://github.com/rust-lang/rust/pull/103985 .
In short, it allows to use projections as a type for union's fields.
cc `@compiler-errors`
r? `@oli-obk`
2023-02-09 07:08:19 +00:00
Michael Goulet
03a8a4ff3e
Replacing bound vars is actually instantiating a binder
2023-02-07 23:13:54 +00:00
Edward Shen
af5a37e844
Modify existing bounds if they exist
2023-02-06 11:26:36 -08:00
Michael Goulet
0b5941aa11
Make const/fn return params more suggestable
2023-02-03 21:37:41 +00:00
David Tolnay
4501d3abe1
Autotrait bounds on dyn-safe trait methods
2023-02-03 08:33:40 -08:00
David Tolnay
9e1c600f74
Disallow impl autotrait for trait object
2023-02-03 08:33:40 -08:00
Guillaume Gomez
d36bdf2d30
Rollup merge of #107486 - compiler-errors:bound-ty-keep-name, r=oli-obk
...
Track bound types like bound regions
When we instantiate bound types into placeholder types, we throw away the names for some reason. These names are particularly useful for error reporting once we have `for<T>` binders.
r? types
2023-01-31 23:38:52 +01:00
Guillaume Gomez
53bb6322db
Rollup merge of #107467 - WaffleLapkin:uneq, r=oli-obk
...
Improve enum checks
Some light refactoring.
2023-01-31 23:38:52 +01:00
bors
f361413cbf
Auto merge of #106399 - estebank:type-err-span-label, r=nagisa
...
Modify primary span label for E0308
Looking at the reactions to https://hachyderm.io/ `@ekuber/109622160673605438,` a lot of people seem to have trouble understanding the current output, where the primary span label on type errors talks about the specific types that diverged, but these can be deeply nested type parameters. Because of that we could see "expected i32, found u32" in the label while the note said "expected Vec<i32>, found Vec<u32>". This understandably confuses people. I believe that once people learn to read these errors it starts to make more sense, but this PR changes the output to be more in line with what people might expect, without sacrificing terseness.
Fix #68220 .
2023-01-31 13:53:40 +00:00
Michael Goulet
0e98a162c8
Track bound types like bound regions
2023-01-30 22:18:20 +00:00
Esteban Küber
3fa95b847b
review comments
2023-01-30 20:12:21 +00:00
Esteban Küber
62ba3e70a1
Modify primary span label for E0308
...
The previous output was unintuitive to users.
2023-01-30 20:12:19 +00:00
Matthias Krüger
4ac1796267
Rollup merge of #107125 - WaffleLapkin:expect_an_item_in_your_hir_by_the_next_morning, r=Nilstrieb
...
Add and use expect methods to hir.
[The future has come](https://github.com/rust-lang/rust/pull/106090/files#r1070062462 ).
r? `@Nilstrieb`
tbh I'm not even sure if it's worth it
2023-01-30 17:50:08 +01:00
Maybe Waffle
fd649a3cc5
Replace enum ==
s with match
es where it makes sense
2023-01-30 12:26:26 +00:00
Maybe Waffle
b2ef837b6c
Use expect_{use,fn}
in a couple of places
2023-01-30 05:50:37 +00:00
bors
d117135f5a
Auto merge of #106253 - nbdd0121:upcast, r=compiler-errors
...
Skip possible where_clause_object_safety lints when checking `multiple_supertrait_upcastable`
Fix #106247
To achieve this, I lifted the `WhereClauseReferencesSelf` out from `object_safety_violations` and move it into `is_object_safe` (which is changed to a new query).
cc `@dtolnay`
r? `@compiler-errors`
2023-01-29 10:20:25 +00:00