Michael Goulet
cec7835d7a
Move late-bound arg type checks to resolve_bound_vars
2023-02-18 03:28:54 +00:00
bors
a9842c73bc
Auto merge of #108112 - nnethercote:clarify-iterator-interners, r=oli-obk,compiler-errors
...
Clarify iterator interners
I found the iterator interners very confusing. This PR clarifies things.
r? `@compiler-errors`
2023-02-18 00:20:52 +00:00
Nicholas Nethercote
107f14d2ca
Replace more mk_foo calls with infer_foo.
2023-02-17 22:24:34 +11:00
Nicholas Nethercote
2017aeff88
Use IntoIterator for mk_fn_sig.
...
This makes a lot of call sites nicer.
2023-02-17 22:24:34 +11:00
Boxy
e919d7e348
Add Clause::ConstArgHasType variant
2023-02-17 09:30:33 +00:00
bors
9556b56dbd
Auto merge of #107753 - kylematsuda:type-of, r=BoxyUwU
...
Switch to `EarlyBinder` for `type_of` query
Part of the work to finish #105779 and implement https://github.com/rust-lang/types-team/issues/78 .
Several queries `X` have a `bound_X` variant that wraps the output in `EarlyBinder`. This adds `EarlyBinder` to the return type of the `type_of` query and removes `bound_type_of`.
r? `@lcnr`
2023-02-17 04:45:15 +00:00
Kyle Matsuda
8e92849cbb
changes from review
2023-02-16 17:05:59 -07:00
Kyle Matsuda
c183110cc2
remove bound_type_of query; make type_of return EarlyBinder; change type_of in metadata
2023-02-16 17:05:56 -07:00
Kyle Matsuda
d822b97a27
change usages of type_of to bound_type_of
2023-02-16 17:01:52 -07:00
Matthias Krüger
089e8c03bc
Rollup merge of #107489 - compiler-errors:non_lifetime_binders, r=cjgillot
...
Implement partial support for non-lifetime binders
This implements support for non-lifetime binders. It's pretty useless currently, but I wanted to put this up so the implementation can be discussed.
Specifically, this piggybacks off of the late-bound lifetime collection code in `rustc_hir_typeck::collect::lifetimes`. This seems like a necessary step given the fact we don't resolve late-bound regions until this point, and binders are sometimes merged.
Q: I'm not sure if I should go along this route, or try to modify the earlier nameres code to compute the right bound var indices for type and const binders eagerly... If so, I'll need to rename all these queries to something more appropriate (I've done this for `resolve_lifetime::Region` -> `resolve_lifetime::ResolvedArg`)
cc rust-lang/types-team#81
r? `@ghost`
2023-02-17 00:19:34 +01:00
bors
c5d1b3ea96
Auto merge of #108020 - nnethercote:opt-mk_region, r=compiler-errors
...
Optimize `mk_region`
PR #107869 avoiding some interning under `mk_ty` by special-casing `Ty` variants with simple (integer) bodies. This PR does something similar for regions.
r? `@compiler-errors`
2023-02-16 16:11:54 +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
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
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
Michael Goulet
eb286dd070
Make can_eq and can_sub return booleans
2023-02-13 19:29:02 +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
30cf7a3f51
Introduce ReError
...
CC #69314
2023-02-09 10:26:49 +00:00
Michael Goulet
0b5941aa11
Make const/fn return params more suggestable
2023-02-03 21:37:41 +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
Matthias Krüger
28188d17ba
Rollup merge of #107100 - compiler-errors:issue-107087, r=lcnr
...
Use proper `InferCtxt` when probing for associated types in astconv
Fixes #107087
2023-01-28 05:20:16 +01:00
Kyle Matsuda
c2414dfaa4
change fn_sig query to use EarlyBinder; remove bound_fn_sig query; add EarlyBinder to fn_sig in metadata
2023-01-26 20:28:25 -07:00
Michael Goulet
da3ecb09d8
Use proper InferCtxt when probing for associated types in astconv
2023-01-23 16:53:23 +00:00
Maybe Waffle
70f9d52079
Add and use expect methods to hir.
2023-01-20 17:40:50 +00:00
bors
56ee85274e
Auto merge of #106090 - WaffleLapkin:dereffffffffff, r=Nilstrieb
...
Remove some `ref` patterns from the compiler
Previous PR: https://github.com/rust-lang/rust/pull/105368
r? `@Nilstrieb`
2023-01-20 04:52:28 +00:00
Michael Goulet
200f466d1a
Encode whether foreign opaques are TAITs or not
2023-01-19 15:45:49 +00:00
Matthias Krüger
68f12338af
Rollup merge of #104505 - WaffleLapkin:no-double-spaces-in-comments, r=jackh726
...
Remove double spaces after dots in comments
Most of the comments do not have double spaces, so I assume these are typos.
2023-01-17 20:21:25 +01:00
Maybe Waffle
6a28fb42a8
Remove double spaces after dots in comments
2023-01-17 08:09:33 +00:00
Maybe Waffle
c21b1f742e
Self review suggestions
...
- add back accidentally removed new lines
- try to deref in patterns, rather than in expressions
(maybe this was the reason of perf regression?...)
2023-01-17 07:48:20 +00:00
Maybe Waffle
09485eaae1
rustc_hir_analysis: remove ref patterns
2023-01-17 07:48:19 +00:00
Matthias Krüger
d7fcd01f67
Rollup merge of #106072 - eopb:dyn-derive, r=estebank
...
fix: misleading "add dyn keyword before derive macro" suggestion
Fixes #106071
2023-01-15 01:01:36 +01:00
Ethan Brierley
1caec6fa1d
fix: misleading add dyn to derive macro suggestion
2023-01-14 12:14:06 +00:00
Kyle Matsuda
6e969ea85e
fix various subst_identity vs skip_binder
2023-01-14 00:30:03 -07:00
Kyle Matsuda
f29a334c90
change impl_trait_ref query to return EarlyBinder; remove bound_impl_trait_ref query; add EarlyBinder to impl_trait_ref in metadata
2023-01-14 00:29:56 -07:00
Kyle Matsuda
be130b57d4
change usages of impl_trait_ref to bound_impl_trait_ref
2023-01-14 00:23:32 -07:00
Kyle Matsuda
ef58baf8b8
change const_param_default query to return EarlyBinder; remove bound_const_param_default query; add EarlyBinder to const_param_default in metadata
2023-01-14 00:13:07 -07:00
Matthias Krüger
c6e3a47843
Rollup merge of #106585 - estebank:issue-46585, r=compiler-errors
...
When suggesting writing a fully qualified path probe for appropriate types
Address the more common part of #46585 .
2023-01-13 19:16:42 +01:00
Esteban Küber
c6f322bf30
review comments: account for generics
2023-01-11 21:30:32 +00:00
Esteban Küber
147c9bf4d5
review comments
2023-01-11 21:30:10 +00:00
Esteban Küber
12ddf77811
When suggesting writing a fully qualified path probe for appropriate types
...
Fix #46585 .
2023-01-11 21:30:10 +00:00
Maybe Waffle
d642781708
Make selfless dyn AstConv methods into toplevel functions
2023-01-11 19:07:03 +00:00
Maybe Waffle
89f1555824
Add AstConv::astconv method to remove <dyn AstConv>:: calls
2023-01-11 18:58:44 +00:00
bors
af58fc8699
Auto merge of #101947 - aliemjay:astconv-normalize, r=lcnr
...
Don't normalize in AstConv
See individual commits.
Fixes #101350
Fixes #54940
2023-01-09 15:29:59 +00:00
bors
fa51fc01ca
Auto merge of #106235 - compiler-errors:rework-bounds-collection, r=davidtwco
...
Rework `Bounds` collection
I think it's weird for the `Bounds` struct in astconv to store its predicates *almost* converted into real predicates... so we do this eagerly, instead of lazily.
2023-01-08 14:40:52 +00:00