Deadbeef
f1126f1272
Make select_* methods return Vec for TraitEngine
2021-11-08 23:35:23 +08:00
Charles Lew
8841204cc6
Erase regions within vtable_trait_first_method_offset
.
2021-11-04 00:53:54 +08:00
Santiago Pastorino
6975afd141
Add polarity to TraitPredicate
2021-10-20 12:10:41 -03:00
Jubilee
05b4cd6789
Rollup merge of #89413 - matthewjasper:spec-marker-fix, r=nikomatsakis
...
Correctly handle supertraits for min_specialization
Supertraits of specialization markers could circumvent checks for
min_specialization. Elaborating predicates prevents this.
r? ````@nikomatsakis````
2021-10-04 21:12:35 -07:00
Hirochika Matsumoto
3818981ca1
Practice diagnostic message convention
2021-10-03 16:16:28 +09:00
Matthew Jasper
c8f86cad2d
Elaborate predicates in min_specialization checks
...
Supertraits of specialization markers could circumvent checks for
min_specialization. Elaborating predicates prevents this.
2021-09-30 21:42:09 +01:00
Jubilee
ee2e97c416
Rollup merge of #89001 - jackh726:binder-cleanup, r=nikomatsakis
...
Be explicit about using Binder::dummy
This is somewhat of a late followup to the binder refactor PR. It removes `ToPredicate` and `ToPolyTraitImpls` that hide the use of `Binder::dummy`. While this does make code a bit more verbose, it allows us be more careful about where we create binders.
Another alternative here might be to add a new trait `ToBinder` or something with a `dummy()` fn. Which could still allow grepping but allows doing something like `trait_ref.dummy()` (but I also wonder if longer-term, it would be better to be even more explicit with a `bind_with_vars(ty::List::empty())` *but* that's not clear yet.
r? ``@nikomatsakis``
2021-09-24 11:40:11 -07:00
Mark Rousskov
078e3fd4ba
Add another case of fallback to () avoid breakage
...
This adds src/test/ui/never_type/fallback-closure-ret.rs as a test case which
showcases the failure mode fixed by this commit.
2021-09-17 15:34:47 -04:00
jackh726
be76bdf905
Remove ToPredicate impls that use Binder::dummy
2021-09-15 20:54:50 -04:00
Ellen
406d2ab95d
rename mir -> thir around abstract consts
2021-09-09 01:32:03 +01: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
Deadbeef
f3d96e9391
fmt
2021-08-27 08:09:00 +00:00
Deadbeef
80e1ee5aee
Add ty::BoundConstness
2021-08-27 06:49:18 +00:00
lcnr
f3996f6a88
review
2021-08-26 11:14:31 +02:00
lcnr
ab9108b70f
update TypeFlags
to deal with missing ct substs
2021-08-26 11:00:30 +02:00
Charles Lew
c22dfab215
Add assertion to ensure the query doesn't get called before type infererence is done.
2021-08-20 02:37:00 +08:00
Charles Lew
6b1c52ff25
Fold vtable_trait_upcasting_coercion_new_vptr_slot
logic into obligation processing.
2021-08-18 13:00:27 +08:00
Charles Lew
63ed625313
Implement pointer casting.
2021-08-03 01:09:37 +08:00
Charles Lew
634638782b
Switch to store Instance
directly within VtblEntry
, fix TraitVPtr
representation.
2021-07-20 22:53:02 +08:00
Charles Lew
ab171c5279
Add internal attribute and tests.
2021-07-20 22:14:43 +08:00
Charles Lew
d2dc4276fd
Refactor vtable format.
2021-07-20 22:14:42 +08:00
Aman Arora
8ef5212eff
Make type_implements_trait not a query
2021-07-06 14:38:10 -04:00
Niko Matsakis
63fbefd359
tag issues with FIXME
2021-07-04 12:50:28 -04:00
Niko Matsakis
40ee019c17
allow inference vars in type_implements_trait
2021-07-04 11:28:20 -04:00
Charles Lew
a86d3a7e45
Refactor to make interpreter and codegen backend neutral to vtable internal representation.
2021-06-15 01:59:00 +08:00
kadmin
e4e5db4e42
Add has_default to GenericParamDefKind::Const
...
This currently creates a field which is always false on GenericParamDefKind for future use when
consts are permitted to have defaults
Update const_generics:default locations
Previously just ignored them, now actually do something about them.
Fix using type check instead of value
Add parsing
This adds all the necessary changes to lower const-generics defaults from parsing.
Change P<Expr> to AnonConst
This matches the arguments passed to instantiations of const generics, and makes it specific to
just anonymous constants.
Attempt to fix lowering bugs
2021-03-23 17:16:20 +00:00
Ömer Sinan Ağacan
c4b90dfdc5
Remove an old FIXME comment and inline attribute
...
Apparently #35870 caused a problem in this code (which originally
returned an impl trait) and `#[inline]` was added as a workaround, in
ade79d7609
.
The issue is now fixed and the comment and `#[inline]` can now be
removed.
2021-02-28 20:43:58 +03:00
Santiago Pastorino
7aa602b84c
Revert "Auto merge of #79637 - spastorino:revert-trait-inheritance-self, r=Mark-Simulacrum"
...
This reverts commit b4def89d76
, reversing
changes made to 7dc1e852d4
.
2021-02-05 18:56:56 -03:00
kadmin
6a03f0350d
Add error message for private fn
...
Bless tests
Update with changes from comments
2021-01-31 20:45:13 +00:00
Jack Huey
3dea68de1d
Review changes
2021-01-16 18:56:37 -05:00
Matthias Krüger
d12a358673
use matches!() macro in more places
2020-12-24 13:35:12 +01:00
Santiago Pastorino
37354ebc97
Revert "Auto merge of #79209 - spastorino:trait-inheritance-self, r=nikomatsakis"
...
This reverts commit 349b3b324d
, reversing
changes made to b776d1c3e3
.
2020-12-02 12:19:38 -03:00
bors
349b3b324d
Auto merge of #79209 - spastorino:trait-inheritance-self, r=nikomatsakis
...
Allow Trait inheritance with cycles on associated types
Fixes #35237
r? `@nikomatsakis`
cc `@estebank`
2020-11-29 21:04:23 +00:00
Joshua Nelson
2d39c09cc2
Change comments on types to doc-comments
2020-11-27 14:17:25 -05:00
Santiago Pastorino
2ca4964db5
Allow to self reference associated types in where clauses
2020-11-27 11:23:47 -03:00
Bastian Kauschke
2bf93bd852
compiler: fold by value
2020-11-16 22:34:57 +01:00
est31
12187b7f86
Remove unused #[allow(...)] statements from compiler/
2020-09-26 01:25:55 +02:00
Bastian Kauschke
30ff1ef3d0
support const_evaluatable_checked across crate boundaries
2020-09-18 17:11:34 +02:00
Bastian Kauschke
c3a772f55f
use abstract consts when unifying ConstKind::Unevaluated
2020-09-18 17:11:34 +02:00
Bastian Kauschke
d327fa112b
initial working state
2020-09-18 16:25:25 +02:00
bors
7402a39447
Auto merge of #76244 - vandenheuvel:remove__paramenv__def_id, r=nikomatsakis
...
Removing the `def_id` field from hot `ParamEnv` to make it smaller
This PR addresses https://github.com/rust-lang/rust/issues/74865 .
2020-09-13 16:28:22 +00:00
Bram van den Heuvel
7dad29d686
Remove def_id field from ParamEnv
2020-09-09 10:14:31 +02:00
Bastian Kauschke
c81935e6df
make ConstEvaluatable
more strict
2020-09-08 16:39:12 +02:00
mark
9e5f7d5631
mv compiler to compiler/
2020-08-30 18:45:07 +03:00