Matthias Krüger
c89bff29e5
Rollup merge of #104199 - SarthakSingh31:issue-97417-1, r=cjgillot
...
Keep track of the start of the argument block of a closure
This removes a call to `tcx.sess.source_map()` from [compiler/rustc_trait_selection/src/traits/error_reporting/mod.rs](https://github.com/rust-lang/rust/compare/master...SarthakSingh31:issue-97417-1?expand=1#diff-8406bbc0d0b43d84c91b1933305df896ecdba0d1f9269e6744f13d87a2ab268a ) as required by #97417 .
VsCode automatically applied `rustfmt` to the files I edited under `src/tools`. I can undo that if its a problem.
r? `@cjgillot`
2022-12-03 17:37:41 +01:00
Yuki Okushi
8f368666b5
Rollup merge of #105181 - bhbs:skip-note, r=estebank
...
Don't add a note for implementing a trait if its inner type is erroneous
Fix #105138
2022-12-03 12:51:29 +09:00
Yuki Okushi
52e886279a
Rollup merge of #104903 - spastorino:consolidate-normalize-in-report_projection_error, r=lcnr
...
Use ocx.normalize in report_projection_error
r? `@lcnr`
cc `@compiler-errors`
2022-12-03 12:51:27 +09:00
bhbs
715d4a8949
Don't add a note for implementing a trait if its inner type is erroneous
2022-12-03 09:06:47 +09:00
Santiago Pastorino
89047430f1
Define values and err as non mutable
2022-12-02 17:31:45 -03:00
Santiago Pastorino
4dacf4f469
Use ocx.normalize in report_projection_error
2022-12-02 17:31:40 -03:00
Michael Goulet
02b64c5d26
Document normalization methods on At
2022-12-01 19:00:09 +00:00
bors
24606deaf4
Auto merge of #104905 - compiler-errors:normalization-changes, r=spastorino
...
Some initial normalization method changes
1. Rename `AtExt::normalize` to `QueryNormalizeExt::query_normalize` (using the `QueryNormalizer`)
2. Introduce `NormalizeExt::normalize` to replace `partially_normalize_associated_types_in` (using the `AssocTypeNormalizer`)
3. Rename `FnCtxt::normalize_associated_types_in` to `FnCtxt::normalize`
4. Remove some unused other normalization fns in `Inherited` and `FnCtxt`
Also includes one drive-by where we're no longer creating a `FnCtxt` inside of `check_fn`, but passing it in. This means we don't need such weird `FnCtxt` construction logic.
Stacked on top of #104835 for convenience.
r? types
2022-11-30 11:13:09 +00:00
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
Michael Goulet
1e236acd05
Make ObligationCtxt::normalize take cause by borrow
2022-11-28 17:35:40 +00:00
Michael Goulet
ce409b5200
Make normalize and normalize_to pub(crate)
2022-11-28 17:35:39 +00:00
Michael Goulet
fc710832ea
partially_normalize_... -> At::normalize
2022-11-28 17:35:39 +00:00
Michael Goulet
f12e772b83
Rename At::normalize to At::query_normalize
2022-11-28 17:32:35 +00: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
Sarthak Singh
8f705e2425
Keep track of the start of the argument block of a closure
2022-11-28 14:09:00 +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