kadmin
f9750c1554
Add empty ConstKind::Abstract
...
Initial pass at expr/abstract const/s
Address comments
Switch to using a list instead of &[ty::Const], rm `AbstractConst`
Remove try_unify_abstract_consts
Update comments
Add edits
Recurse more
More edits
Prevent equating associated consts
Move failing test to ui
Changes this test from incremental to ui, and mark it as failing and a known bug.
Does not cause the compiler to ICE, so should be ok.
2022-11-25 09:28:43 +00:00
Santiago Pastorino
974e2837bb
Introduce PredicateKind::Clause
2022-11-25 00:04:54 -03:00
Oli Scherer
08afabddac
get rid of to_poly_trait_predicate
2022-11-25 00:04:52 -03:00
Santiago Pastorino
5b3a06a3c2
Call fully_solve_obligations instead of repeating code
2022-11-23 09:36:00 -03:00
Santiago Pastorino
ad094cdceb
Use ObligationCtxt intead of dyn TraitEngine
2022-11-23 09:24:42 -03:00
Oli Scherer
7658e0fccf
Stop passing the self-type as a separate argument.
2022-11-21 20:39:46 +00:00
Oli Scherer
a9f3c2209c
For lcnr
2022-11-21 20:35:50 +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
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