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
Oli Scherer
721ffd14c3
Add constness to ParamEnv
...
This now causes a lot of queries to be executed twice, as reveal_all forces NotConst
2021-11-29 21:19:46 +08:00
Jacob Pratt
7b103e7dd2
Use derive_default_enum
in the compiler
2021-11-22 20:17:53 -05:00
Nilstrieb
24acf86029
Fix span for non-satisfied trivial trait bounds
...
The spans for "trait bound not satisfied" errors in trivial trait bounds referenced the entire item (fn, impl, struct) before.
Now they only reference the obligation itself (`String: Copy`)
Address #90869
2021-11-14 11:38:52 +01:00
Deadbeef
f1126f1272
Make select_* methods return Vec for TraitEngine
2021-11-08 23:35:23 +08:00
pierwill
521b1ee974
Improve terminology around "after typeck"
2021-11-06 20:59:38 -05: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