Michael Goulet
6436c348db
Remove SelectionContext::infcx() in favor of field access
2022-11-25 23:31:37 +00:00
Matthias Krüger
7fac5048c4
Rollup merge of #104835 - spastorino:use-partially_normalize_associated_types_in, r=lcnr
...
Use infcx.partially_normalize_associated_types_in
r? ``@lcnr``
2022-11-25 18:35:41 +01:00
Michael Goulet
8927135274
Assert that we don't capture escaping bound vars in Fn trait selection
2022-11-24 21:50:04 +00:00
Santiago Pastorino
3dee3aac78
Use infcx.partially_normalize_associated_types_in
2022-11-24 14:16:40 -03:00
Arpad Borsos
9f36f988ad
Avoid GenFuture shim when compiling async constructs
...
Previously, async constructs would be lowered to "normal" generators,
with an additional `from_generator` / `GenFuture` shim in between to
convert from `Generator` to `Future`.
The compiler will now special-case these generators internally so that
async constructs will *directly* implement `Future` without the need
to go through the `from_generator` / `GenFuture` shim.
The primary motivation for this change was hiding this implementation
detail in stack traces and debuginfo, but it can in theory also help
the optimizer as there is less abstractions to see through.
2022-11-24 10:04:27 +01:00
Oli Scherer
7658e0fccf
Stop passing the self-type as a separate argument.
2022-11-21 20:39:46 +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
Michael Goulet
1e2eb97c6e
Don't call own_existential_vtable_entries on unresolved trait ref
2022-10-19 17:11:40 +00:00
lcnr
647052fc04
remove the Subst trait, always use EarlyBinder
2022-09-19 11:37:27 +02:00
Michael Goulet
c005e760f5
Rework point-at-arg
2022-08-21 02:34:52 +00:00
Jack Huey
955fcad758
Add bound_impl_subject and bound_return_ty
2022-08-03 01:02:46 -04:00
Camille GILLOT
d7ea161b7e
Remove DefId from AssocItemContainer.
2022-08-01 21:38:45 +02:00
Camille GILLOT
110f0656cb
Store associated item defaultness in impl_defaultness.
2022-08-01 21:38:16 +02:00
Alan Egerton
4f0a64736b
Update TypeVisitor paths
2022-07-06 06:41:53 +01:00
ouz-a
8f1fff04a7
get_vtable returns opt instd of unwrpping
2022-06-05 16:35:02 +03:00
Jack Huey
319575ae8c
Introduce EarlyBinder
2022-05-10 22:47:18 -04:00
Camille GILLOT
bb6b433958
Add debug statements.
2022-05-04 22:46:24 +02:00
Santiago Pastorino
42e986f77b
Implement impl_subject_and_oblig instead of repeating the impls
2022-03-24 18:41:30 -03:00
Santiago Pastorino
d96faef913
Where bounds are checked on inherent impls
2022-03-24 17:47:10 -03:00
Eduard-Mihai Burtescu
02ff9e0aef
Replace &mut DiagnosticBuilder, in signatures, with &mut Diagnostic.
2022-02-23 05:38:19 +00:00
Nicholas Nethercote
f09b1facd0
Eliminate ObligationCauseData.
...
This makes `Obligation` two words bigger, but avoids allocating a lot of
the time.
I previously tried this in #73983 and it didn't help much, but local
timings look more promising now.
2021-12-20 09:29:20 +11:00
Sylvan Bowdler
dd5717a6d6
Remove in_band_lifetimes from rustc_trait_selection
2021-12-15 21:52:30 +00:00
Deadbeef
84b1d859c8
Revert "Auto merge of #91491 - spastorino:revert-91354, r=oli-obk"
...
This reverts commit ff2439b7b9 , reversing
changes made to 2a9e0831d6 .
2021-12-12 12:34:46 +08:00
Santiago Pastorino
85b723c4e6
Revert "Auto merge of #91354 - fee1-dead:const_env, r=spastorino"
...
This reverts commit 18bb8c61a9 , reversing
changes made to d9baa36190 .
2021-12-03 10:11:21 -03:00
Oli Scherer
a9a79f657c
Completely remove ConstnessAnd
2021-11-29 21:19:49 +08:00
Oli Scherer
a848c4ba3f
Avoid storing the ImplPolarity and Constness next to a TraitRef and use TraitPredicate instead
2021-11-29 21:19:49 +08:00
Esteban Kuber
6b9d910639
Point at source of trait bound obligations in more places
...
Be more thorough in using `ItemObligation` and `BindingObligation` when
evaluating obligations so that we can point at trait bounds that
introduced unfulfilled obligations. We no longer incorrectly point at
unrelated trait bounds (`substs-ppaux.verbose.stderr`).
In particular, we now point at trait bounds on method calls.
We no longer point at "obvious" obligation sources (we no longer have a
note pointing at `Trait` saying "required by a bound in `Trait`", like
in `associated-types-no-suitable-supertrait*`).
Address part of #89418 .
2021-11-20 18:54:31 +00:00
jackh726
be76bdf905
Remove ToPredicate impls that use Binder::dummy
2021-09-15 20:54:50 -04:00
Gary Guo
97214eecc5
Add query own_existential_vtable_entries
2021-09-05 18:13:32 +01:00
Gary Guo
871eb6233e
Stop allocating vtable entries for non-object-safe methods
2021-09-05 18:13:32 +01:00
Jack Huey
62a49c3bb8
Add tcx lifetime to Binder
2021-03-31 10:13:57 -04:00
Jack Huey
5e7095850c
More rebinds
2020-12-19 04:26:35 -05:00
Jonas Schievink
ee6f42ba94
Thread Constness through selection
2020-11-22 02:13:53 +01:00
Bastian Kauschke
2bf93bd852
compiler: fold by value
2020-11-16 22:34:57 +01:00
mark
9e5f7d5631
mv compiler to compiler/
2020-08-30 18:45:07 +03:00