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
Oli Scherer
d9a02b0fb7
Split out the actual predicate solving code into a separate function
2022-11-21 20:31:34 +00:00
Oli Scherer
4f11f3b257
Convert predicates into Predicate in the Obligation constructor
2022-11-16 09:25:19 +00:00
Dylan DPC
c23068c8c6
Rollup merge of #104094 - lcnr:on_unimplemented-move, r=wesleywiser
...
fully move `on_unimplemented` to `error_reporting`
the `traits` module has a few too many submodules in my opinion.
2022-11-08 11:23:53 +05:30
Dylan DPC
77a44ab568
Rollup merge of #103865 - compiler-errors:fallback-has-occurred-tracking, r=eholk
...
Move `fallback_has_occurred` state tracking to `FnCtxt`
Removes a ton of callsites that defaulted to `false`
2022-11-08 11:23:51 +05:30
lcnr
80e4e72fcd
fully move on_unimplemented
to error reporting
2022-11-07 08:10:25 +01:00
bors
1e1e5b8d98
Auto merge of #103861 - compiler-errors:codegen-select-in-vtable-slot, r=nagisa
...
Use `codegen_select` in `vtable_trait_upcasting_coercion_new_vptr_slot`
A super tiny clean up
2022-11-06 14:03:59 +00:00
Michael Goulet
bc345d7bd0
Move fallback_has_occurred to FnCtxt
2022-11-06 02:40:25 +00:00
Oli Scherer
44d1936d00
Some tracing and comment cleanups
2022-11-04 17:10:07 +00:00
Michael Goulet
a9881f5213
Use ObligationCtxt in fully_normalize
2022-11-02 00:48:58 +00:00
Michael Goulet
20bb56ebfd
Use codegen_select in vtable_trait_upcasting_coercion_new_vptr_slot
2022-11-02 00:39:08 +00:00
Michael Goulet
1e2eb97c6e
Don't call own_existential_vtable_entries
on unresolved trait ref
2022-10-19 17:11:40 +00:00
Cameron Steffen
283abbf0e7
Change InferCtxtBuilder from enter to build
2022-10-07 07:10:40 -05:00
Cameron Steffen
349415d1c6
Remove TypeckResults from InferCtxt
2022-10-07 07:06:19 -05:00
Cameron Steffen
4a68373217
Introduce TypeErrCtxt
...
TypeErrCtxt optionally has a TypeckResults so that InferCtxt doesn't
need to.
2022-10-07 07:06:16 -05:00
Oli Scherer
c7b6ebdf7c
It's not about types or consts, but the lack of regions
2022-10-04 14:10:44 +00:00
bors
7a8636c843
Auto merge of #100982 - fee1-dead-contrib:const-impl-requires-const-trait, r=oli-obk
...
Require `#[const_trait]` on `Trait` for `impl const Trait`
r? `@oli-obk`
2022-09-22 04:22:24 +00:00
lcnr
647052fc04
remove the Subst
trait, always use EarlyBinder
2022-09-19 11:37:27 +02:00
Deadbeef
77b0c47b82
Normalize param_env for trait assoc consts in typeck
2022-09-16 11:48:43 +08:00
lcnr
c63020a7c3
rename codegen_fulfill_obligation
2022-09-09 13:36:27 +02:00
Gabriel Bustamante
8e82200277
Porting 'compiler/rustc_trait_selection' to translatable diagnostics - Part 1
2022-09-01 12:54:50 -05:00
bors
983f4daddf
Auto merge of #100705 - compiler-errors:issue-100620, r=oli-obk
...
Avoid reporting overflow in `is_impossible_method`
Fixes #100620
We're evaluating a new predicate in a different param-env than it was checked during typeck, so be more careful about handling overflow errors. Instead of using `FulfillmentCtxt`, using `InferCtxt::evaluate_obligation` by itself will give us back the overflow error, so we can throw it away properly.
This may give us more false-positives, but it doesn't regress the `<HashMap as Iterator>::rev` example that originally motivated adding `is_impossible_method` in the first place.
2022-08-26 06:05:06 +00:00
Matthias Krüger
0fcabec620
Rollup merge of #100888 - spastorino:coherence-negative-impls-implied-bounds, r=lcnr
...
Coherence negative impls implied bounds
Fixes #93875
This PR is rebased on top of #100789 and it would need to include that one which is already r+ed.
r? ``@nikomatsakis``
cc ``@lcnr`` (which I've talked about 3222f420d9
, I guess after you finish your reordering of modules and work with OutlivesEnvironmentEnv this commit can just be reverted).
2022-08-24 18:20:11 +02:00
Santiago Pastorino
5ff45dc89e
Move InferCtxtExt to rustc_trait_selection
2022-08-23 08:55:43 -03:00
yukang
f466a7563d
remove hack fix since we don't have no overflow diagnostic
2022-08-22 22:22:15 +08:00
Michael Goulet
c005e760f5
Rework point-at-arg
2022-08-21 02:34:52 +00:00
Michael Goulet
c4a5b14211
Avoid overflow in is_impossible_method
2022-08-18 01:12:46 +00:00
Dylan DPC
d910e5376b
Rollup merge of #100221 - compiler-errors:impossible-trait-items, r=lcnr,notriddle,camelid
...
Don't document impossible to call default trait items on impls
Closes #100176
This only skips documenting _default_ trait items on impls, not ones that are written inside the impl block. This is a conservative approach, since I think we should document all items written in an impl block (I guess unless hidden or whatever), but the existence of this new query I added makes this easy to extend to other rustdoc cases.
2022-08-09 17:34:54 +05:30
Michael Goulet
b3b23aada9
Don't document impossible to call default trait items on impls
2022-08-07 23:44:05 +00:00
Michael Goulet
f5af266b6d
Address nits
2022-08-04 13:59:25 +00:00
Michael Goulet
fe894756f8
Add traits::fully_solve_obligation
that acts like traits::fully_normalize
...
It spawns up a trait engine, registers the single obligation, then fully
solves it
2022-08-04 13:50:56 +00:00
Michael Goulet
3e48434cc7
Use ObligationCtxt in impossible_predicates
2022-08-04 13:42:13 +00:00
Michael Goulet
37d412cff7
Remove FulfillmentContext param from fully_normalize
2022-08-04 13:42:13 +00:00
Matthias Krüger
0de7f756f0
Rollup merge of #99746 - compiler-errors:more-trait-engine, r=jackh726
...
Use `TraitEngine` in more places that don't specifically need `FulfillmentContext::new_in_snapshot`
Not sure if this change is worthwhile, but couldn't hurt re: chalkification
r? types
2022-08-03 22:29:27 +02:00
Michael Goulet
58f107ab56
Use TraitEngine in more places that don't specifically need FulfillmentCtxt::new_in_snapshot
2022-07-26 04:55:06 +00:00
Michael Goulet
10b69ab0d2
Remove non-descriptive boolean from search_for_structural_match_violation
2022-07-25 03:39:23 +00:00
Michael Goulet
c1f54c30bb
Get rid of redundant NonStructuralMatchTyKind
2022-07-25 03:39:22 +00:00
lcnr
608625dae9
move considering_regions
to the infcx
2022-07-21 13:08:56 +02:00
lcnr
5bd8c960f5
provide generic_param_scope
for region errors
2022-07-15 16:53:20 +02:00
lcnr
4b56fd9341
try to avoid FnCtxt
during wf
2022-07-15 16:53:18 +02:00
kadmin
20fb8aba8f
Fix overlapping impls
2022-07-14 09:01:17 +00:00
kadmin
e612e2603c
Move abstract const to rustc_middle::ty
2022-07-12 02:21:31 +00:00
Alan Egerton
4f0a64736b
Update TypeVisitor paths
2022-07-06 06:41:53 +01:00
lcnr
24799e3720
remove an unused DefId
2022-07-04 14:35:19 +02:00
Jack Huey
d716245aa6
Remove RegionckMode in favor of calling new skip_region_resolution
2022-06-13 01:15:04 -04:00
Michael Goulet
34e05812e0
Fix TyKind lint, make consts no longer fn, etc
2022-05-28 11:38:22 -07:00
Michael Goulet
a056a953f0
Initial fixes on top of type interner commit
2022-05-28 11:38:22 -07:00
b-naber
e2e425e8d2
give correct error message on structural match violation
2022-05-24 13:01:34 +02:00
Camille GILLOT
69e5b2fde0
Do not report overflow error.
2022-05-07 18:18:03 +02:00