Matthias Krüger
08a6c939a5
Rollup merge of #105066 - lcnr:mv-candidate_from_obligation, r=compiler-errors
...
move `candidate_from_obligation` out of assembly
it doesn't belong there as it also does winnowing
r? `@compiler-errors`
2022-11-29 22:43:22 +01:00
lcnr
bb982df771
move candidate_from_obligation
out of assembly
...
it doesn't belong there as it also does winnowing
2022-11-29 20:32:48 +00:00
Michael Goulet
9512446a00
Explain why rematch_impl fails to be infallible
2022-11-29 19:02:40 +00:00
bors
e0098a5cc3
Auto merge of #105012 - WaffleLapkin:into, r=oli-obk
...
Make `tcx.mk_const` more permissive wrt `kind` argument (`impl Into`)
r? `@oli-obk` you've asked for this >:)
2022-11-29 13:28:44 +00:00
Matthias Krüger
e674b34d56
Rollup merge of #104959 - compiler-errors:revert-104269, r=lcnr
...
Revert #104269 (to avoid spurious hang/test failure in CI)
Causes hangs/memory overflows in the test suite apparently 😢
Reopens #104225
Fixes #104957
r? ``@lcnr``
2022-11-29 05:24:21 +01:00
Arpad Borsos
2db0dc3297
Simplify checking for GeneratorKind::Async
...
Adds a helper method around `generator_kind` that makes matching async constructs simpler.
2022-11-28 23:12:01 +01:00
Maybe Waffle
f4d00fe785
Remove Const::from_value
...
...it's just `mk_const` but without the sparcles
2022-11-28 17:28:30 +00:00
Maybe Waffle
26b87bf8ff
Simplify calls to tcx.mk_const
...
`mk_const(ty::ConstKind::X(...), ty)` can now be simplified to
`mk_cosnt(..., ty)`.
I searched with the following regex: \mk_const\([\n\s]*(ty::)?ConstKind\
I've left `ty::ConstKind::{Bound, Error}` as-is, they seem clearer this
way.
2022-11-28 17:27:20 +00:00
Dylan DPC
9178bc059f
Rollup merge of #104907 - compiler-errors:selcx-infcx, r=oli-obk
...
Remove `SelectionContext::infcx()` in favor of field access
Encapsulation doesn't seem particularly important here, and having two choices is always more confusing than having one.
r? types
2022-11-28 15:42:11 +05:30
Dylan DPC
f90484df8a
Rollup merge of #104732 - WaffleLapkin:from_def_idn't, r=compiler-errors
...
Refactor `ty::ClosureKind` related stuff
I've tried to fix all duplication and weirdness, but if I missed something do tell :p
r? `@compiler-errors`
2022-11-28 15:42:10 +05:30
Matthias Krüger
86304f5149
Rollup merge of #104976 - WaffleLapkin:move_comments, r=cjgillot
...
Prefer doc comments over `//`-comments in compiler
Doc comments are generally nicer: they show up in the documentation, they are shown in IDEs when you hover other mentions of items, etc. Thus it makes sense to use them instead of `//`-comments.
2022-11-27 22:14:08 +01:00
Matthias Krüger
6e6c42c61c
Rollup merge of #104931 - Swatinem:async-pretty, r=eholk
...
Pretty-print generators with their `generator_kind`
After removing `GenFuture`, I special-cased async generators to pretty-print as `impl Future<Output = X>` mainly to avoid too much diagnostics changes originally.
This now reverses that change so that async fn/blocks are pretty-printed as `[$async-type@$source-position]` in various diagnostics, and updates the tests that this touches.
2022-11-27 16:03:08 +01:00
Maybe Waffle
1d42936b18
Prefer doc comments over //
-comments in compiler
2022-11-27 11:19:04 +00:00
Maybe Waffle
5ba0056346
Use TyCtxt::is_fn_trait
is a couple more places
2022-11-27 07:20:28 +00:00
Maybe Waffle
4b6e1d1c5f
Add TyCtxt::is_fn_trait
2022-11-27 07:19:29 +00:00
Maybe Waffle
d0c7ed3bea
Remove ty::ClosureKind::from_def_id
...
…in favour of `TyCtxt::fn_trait_kind_from_def_id`
2022-11-27 07:18:36 +00:00
Maybe Waffle
881862ecb7
Rename fn_trait_kind_from_{from_lang=>def_id}
to better convey meaning
2022-11-27 07:14:49 +00:00
Michael Goulet
4149923ff0
Revert "Do not need to account for overflow in predicate_can_apply"
...
This reverts commit cbe9328018
.
2022-11-26 22:15:51 +00:00
Michael Goulet
c285218f43
Revert "Drive-by: Don't manually call evaluate_obligation_no_overflow"
...
This reverts commit a884a9e634
.
2022-11-26 22:15:43 +00:00
Arpad Borsos
c96d888bdf
Pretty-print generators with their generator_kind
...
After removing `GenFuture`, I special-cased async generators to pretty-print as `impl Future<Output = X>` mainly to avoid too much diagnostics changes originally.
This now reverses that change so that async fn/blocks are pretty-printed as `[$movability `async` $something@$source-position]` in various diagnostics, and updates the tests that this touches.
2022-11-26 20:42:50 +01:00
Guillaume Gomez
a2e485c25c
Rollup merge of #104786 - WaffleLapkin:amp-mut-help, r=compiler-errors
...
Use the power of adding helper function to simplify code w/ `Mutability`
r? `@compiler-errors`
2022-11-26 17:47:23 +01:00
Michael Goulet
6436c348db
Remove SelectionContext::infcx() in favor of field access
2022-11-25 23:31:37 +00:00
bors
aff003becd
Auto merge of #99798 - JulianKnodt:ac1, r=BoxyUwU
...
Add `ConstKind::Expr`
Starting to implement `ty::ConstKind::Abstract`, most of the match cases are stubbed out, some I was unsure what to add, others I didn't want to add until a more complete implementation was ready.
r? `@lcnr`
2022-11-25 22:56:59 +00:00
bors
8681d4cffc
Auto merge of #104902 - matthiaskrgr:rollup-oo27a4u, r=matthiaskrgr
...
Rollup of 8 pull requests
Successful merges:
- #104716 (move 2 candidates into builtin candidate)
- #104760 (Clarify `SyntaxExtensionKind::LegacyDerive`.)
- #104797 (rustc_codegen_ssa: write `.dwp` in a streaming fashion)
- #104835 (Use infcx.partially_normalize_associated_types_in)
- #104853 (Fix typo in miri sysroot)
- #104879 (jsondoclint: Recognise Typedef as valid kind for Type::ResolvedPath)
- #104887 (rustbuild: Don't build doc::SharedAssets when building JSON docs.)
- #104896 (rustdoc: fix broken tooltip CSS)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
2022-11-25 19:09:30 +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
Matthias Krüger
9c7dc3e30b
Rollup merge of #104716 - lcnr:selection-candidate, r=jackh726
...
move 2 candidates into builtin candidate
having separate candidates for these isn't too helpful i think
r? types
2022-11-25 18:35:39 +01:00
bors
051cab2b84
Auto merge of #104846 - spastorino:santa-clauses-make-goals-early-christmas- 🎄 , r=oli-obk
...
Branch Clause from Predicate
r? `@oli-obk`
This is part of what's proposed in https://github.com/rust-lang/compiler-team/issues/531
2022-11-25 15:59:31 +00:00
lcnr
31431ccda9
move 2 candidates into builtin candidate
2022-11-25 11:59:08 +01:00
Matthias Krüger
34f1de8395
Rollup merge of #104841 - compiler-errors:fishy-bound-var, r=jackh726
...
Assert that we don't capture escaping bound vars in `Fn` trait selection
Fixes #104825
2022-11-25 10:44:39 +01:00
Boxy
677bdcb8a9
only emit "enable gce" error if it would fix compile error
2022-11-25 09:28:44 +00:00
Boxy
2ac5d91d63
Make expand_abstract_consts
infallible
2022-11-25 09:28:44 +00:00
Boxy
430f7d16e6
add FIXME's
2022-11-25 09:28:44 +00:00
Boxy
5a496aab03
dont skip const evalautable of non unevaluateds
2022-11-25 09:28:44 +00:00
Boxy
e58b932daf
add FIXME for things that I couldn't find ways to trigger
2022-11-25 09:28:44 +00:00
Boxy
4833ce8673
fmt
2022-11-25 09:28:43 +00:00
Boxy
fd271ffe28
also handle it in evaluate
2022-11-25 09:28:43 +00:00
Boxy
0ae3c5c609
handle assoc consts in fulfill ConstEquate
2022-11-25 09:28:43 +00:00
Boxy
d75cd5c051
fmt
2022-11-25 09:28:43 +00:00
Boxy
8c729bd0f3
handle nested obligations in satisfied_from_param_env
2022-11-25 09:28:43 +00:00
kadmin
5bb1a9febc
Add expand_abstract_const
...
Adds the ability to directly expand a const to an expr without having to deal with intermediate
steps.
2022-11-25 09:28:43 +00:00
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
42cc8e8f4e
Simplify a bunch of trait ref obligation creations
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
Michael Goulet
d945967779
Remove comment, simplify since we asserted fn ptr Self type has no bound vars
2022-11-24 21:50:04 +00:00
Michael Goulet
c7330c9fe8
Also check that fn pointer candidates don't have escaping bound vars
2022-11-24 21:50:04 +00: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
Matthias Krüger
1048a85dbe
Rollup merge of #104822 - spastorino:selctx-new-instead-of-with_query_mode, r=lcnr
...
with_query_mode -> new
r? ```@lcnr```
2022-11-24 21:34:57 +01:00
Matthias Krüger
73f01ffd46
Rollup merge of #104820 - spastorino:remove-normalize_projection_type, r=jackh726
...
Remove normalize_projection_type
r? ``@lcnr``
2022-11-24 21:34:56 +01:00
Santiago Pastorino
3dee3aac78
Use infcx.partially_normalize_associated_types_in
2022-11-24 14:16:40 -03:00