Dylan DPC
54dde8678b
Rollup merge of #98794 - compiler-errors:conflicting-param-env, r=michaelwoerister
...
Highlight conflicting param-env candidates
This could probably be further improved by noting _why_ equivalent param-env candidates (modulo regions) leads to ambiguity.
Fixes #98786
2022-07-08 18:25:51 +05:30
Dylan DPC
fe87923b54
Rollup merge of #98654 - nnethercote:pest-2.1.3-opt, r=pnkfelix
...
An optimization for `pest-2.1.3`
An easy win I found while looking at a profile of `pest-2.1.3`. It's also a small code cleanup.
r? `@pnkfelix`
2022-07-08 18:25:49 +05:30
Michael Goulet
08135254dc
Highlight conflicting param-env candidates
2022-07-08 03:51:08 +00:00
Jack Huey
ad9e1e377f
Use map_bound
2022-07-07 22:14:01 -04:00
Jack Huey
31e1a777e7
Move code from rustc_trait_selection/opaque_types to better places
2022-07-07 21:45:40 -04:00
Esteban Küber
385c79379c
Track WellFormed obligations with an appropriate cause, instead of MiscObligation
2022-07-07 12:15:18 -07:00
Guillaume Gomez
d712f67897
Rollup merge of #98519 - TaKO8Ki:add-head-span-field-to-item-and-impl-item, r=cjgillot
...
Replace some `guess_head_span` with `def_span`
This patch fixes a part of #97417 .
r? `@cjgillot`
2022-07-06 20:43:24 +02:00
Takayuki Maeda
0541b4e034
use named_span in case of tuple variant
2022-07-06 19:09:50 +09:00
Takayuki Maeda
83dea35384
replace guess_head_span with def_span
2022-07-06 19:09:47 +09:00
Dylan DPC
df1f415305
Rollup merge of #98884 - davidtwco:translation-on-lints-derive, r=oli-obk
...
macros: `LintDiagnostic` derive
- Move `LintDiagnosticBuilder` into `rustc_errors` so that a diagnostic derive can refer to it.
- Introduce a `DecorateLint` trait, which is equivalent to `SessionDiagnostic` or `AddToDiagnostic` but for lints. Necessary without making more changes to the lint infrastructure as `DecorateLint` takes a `LintDiagnosticBuilder` and re-uses all of the existing logic for determining what type of diagnostic a lint should be emitted as (e.g. error/warning).
- Various refactorings of the diagnostic derive machinery (extracting `build_field_mapping` helper and moving `sess` field out of the `DiagnosticDeriveBuilder`).
- Introduce a `LintDiagnostic` derive macro that works almost exactly like the `SessionDiagnostic` derive macro except that it derives a `DecorateLint` implementation instead. A new derive is necessary for this because `SessionDiagnostic` is intended for when the generated code creates the diagnostic. `AddToDiagnostic` could have been used but it would have required more changes to the lint machinery.
~~At time of opening this pull request, ignore all of the commits from #98624 , it's just the last few commits that are new.~~
r? `@oli-obk`
2022-07-06 14:49:10 +05:30
bors
5b8cf49c51
Auto merge of #98206 - eggyal:align-to-chalk-folding-api, r=jackh726
...
Split TypeVisitable from TypeFoldable
Impl of rust-lang/compiler-team#520 following MCP approval.
r? `@ghost`
2022-07-06 05:48:11 +00:00
Alan Egerton
4f0a64736b
Update TypeVisitor paths
2022-07-06 06:41:53 +01:00
Alan Egerton
e9e5d0685b
Relax constrained generics to TypeVisitable
2022-07-05 22:25:43 +01:00
Alan Egerton
e4b9625b87
Add #[derive(TypeVisitable)]
2022-07-05 22:25:15 +01:00
bors
41ad4d9b2d
Auto merge of #98936 - matthiaskrgr:rollup-dvr0ucm, r=matthiaskrgr
...
Rollup of 6 pull requests
Successful merges:
- #98860 (adjust dangling-int-ptr error message)
- #98888 (interpret: fix CheckedBinOp behavior when overflow checking is disabled)
- #98889 (Add regression test for #79467 )
- #98895 (bootstrap.py: Always use `.exe` for Windows)
- #98920 (adapt issue-37945 codegen test to accept any order of ops)
- #98921 (Refactor: remove a redundant mutable variable)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
2022-07-05 17:46:53 +00:00
Matthias Krüger
720eb123af
Rollup merge of #98921 - TaKO8Ki:refactor-fulfillment-context-select, r=Dylan-DPC
...
Refactor: remove a redundant mutable variable
2022-07-05 17:08:15 +02:00
David Wood
2874f09534
lint: LintDiagnosticBuilder into rustc_errors
...
Signed-off-by: David Wood <david.wood@huawei.com >
2022-07-05 16:00:20 +01:00
bors
efb171e235
Auto merge of #98584 - lcnr:region-stuff-more-beans, r=oli-obk
...
continue nll transition by removing stuff
r? `@jackh726` for now
building on #98641
2022-07-05 14:58:31 +00:00
Takayuki Maeda
c9e2aa4d7f
refactor: remove a redundant mutable variable
2022-07-05 18:28:36 +09:00
lcnr
9f95c605f8
region obligations, remove body_id
2022-07-04 14:35:20 +02:00
lcnr
a0d2d9f315
implied bounds byebye nested hir ids
2022-07-04 14:35:20 +02:00
lcnr
e78e0e2ad0
rip out RegionCtxt from hir typeck
2022-07-04 14:35:20 +02:00
lcnr
24799e3720
remove an unused DefId
2022-07-04 14:35:19 +02:00
lcnr
c2ed08715b
remove unused function argument
2022-07-04 13:58:28 +02:00
Michael Goulet
6711313f76
Move Sized check before first error is created
2022-07-01 17:38:34 +00:00
Michael Goulet
12ab6bfafd
Don't point at Self type if we can't find an infer variable in ambiguous trait predicate
2022-07-01 17:38:34 +00:00
Michael Goulet
ca0105ba4e
Show source of ambiguity in a few more places
2022-07-01 17:38:34 +00:00
Michael Goulet
f44ae98cee
Only label place where type is needed if span is meaningful
2022-07-01 17:38:34 +00:00
Oli Scherer
84fc551664
Make evaluate_obligation not succeed unconditionally if it registered new hidden types for opaque types
2022-06-30 14:23:31 +00:00
Matthias Krüger
d34c4ca9be
Rollup merge of #98668 - TaKO8Ki:avoid-many-&str-to-string-conversions, r=Dylan-DPC
...
Avoid some `&str` to `String` conversions with `MultiSpan::push_span_label`
This patch removes some`&str` to `String` conversions with `MultiSpan::push_span_label`.
2022-06-29 20:35:07 +02:00
Dylan DPC
7b9a7ef218
Rollup merge of #98499 - JulianKnodt:erase_lifetime, r=lcnr
...
Erase regions in New Abstract Consts
When an abstract const is constructed, we previously included lifetimes in the set of substitutes, so it was not able to unify two abstract consts if their lifetimes did not match but the values did, despite the values not depending on the lifetimes. This caused code that should have compiled to not compile.
Fixes #98452
r? ```@lcnr```
2022-06-29 17:59:33 +05:30
Takayuki Maeda
6212e6b339
avoid many &str to String conversions with MultiSpan::push_span_label
2022-06-29 21:16:43 +09:00
bors
66c83ffca1
Auto merge of #98558 - nnethercote:smallvec-1.8.1, r=lqd
...
Update `smallvec` to 1.8.1.
This pulls in https://github.com/servo/rust-smallvec/pull/282 , which
gives some small wins for rustc.
r? `@lqd`
2022-06-29 09:11:29 +00:00
bors
493c960a3e
Auto merge of #98656 - Dylan-DPC:rollup-hhytn0c, r=Dylan-DPC
...
Rollup of 7 pull requests
Successful merges:
- #97423 (Simplify memory ordering intrinsics)
- #97542 (Use typed indices in argument mismatch algorithm)
- #97786 (Account for `-Z simulate-remapped-rust-src-base` when resolving remapped paths)
- #98277 (Fix trait object reborrow suggestion)
- #98525 (Add regression test for #79224 )
- #98549 (interpret: do not prune requires_caller_location stack frames quite so early)
- #98603 (Some borrowck diagnostic fixes)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
2022-06-29 05:47:42 +00:00
kadmin
1e40200b35
Erase regions in new abstract consts
2022-06-29 03:44:11 +00:00
bors
116edb6800
Auto merge of #98542 - jackh726:coinductive-wf, r=oli-obk
...
Make empty bounds lower to `WellFormed` and make `WellFormed` coinductive
r? rust-lang/types
2022-06-29 03:22:47 +00:00
Nicholas Nethercote
687e391bc3
Avoid constructing an unnecessary InferCtxt.
...
Currently, `search_for_structural_match_violation` constructs an `infcx`
from a `tcx` and then only uses the `tcx` within the `infcx`. This is
wasteful because `infcx` is a big type.
This commit changes it to use the `tcx` directly. When compiling
`pest-2.1.3`, this changes the memcpy stats reported by DHAT for a `check full`
build from this:
```
433,008,916 bytes (100%, 99,787.93/Minstr) in 2,148,668 blocks (100%, 495.17/Minstr), avg size 201.52 bytes
```
to this:
```
101,422,347 bytes (99.98%, 25,243.59/Minstr) in 1,318,407 blocks (99.96%, 328.15/Minstr), avg size 76.93 bytes
```
This translates to a 4.3% reduction in instruction counts.
2022-06-29 12:16:03 +10:00
Nicholas Nethercote
9e76fcc468
Change Search::infcx to tcx.
...
Because the `infcx` isn't needed. This removes one lifetime from
`Search`.
2022-06-29 12:16:00 +10:00
Michael Goulet
862873d20b
Note concrete type being coerced into object
2022-06-28 21:56:18 +00:00
Michael Goulet
6c0a591dee
Fix trait object reborrow suggestion
2022-06-28 21:42:52 +00:00
Dylan DPC
c703d11dcc
Rollup merge of #97346 - JohnTitor:remove-back-compat-hacks, r=oli-obk
...
Remove a back-compat hack on lazy TAIT
This PR's motivation is here: https://github.com/rust-lang/rust/issues/72614#issuecomment-1134595446
~~But removing a hack doesn't seem to reject the code on the issue, there're some more hacks?~~
r? ``@oli-obk``
2022-06-28 15:30:00 +05:30
Jack Huey
bd298adcd4
Take into account trait predicate coinductiveness
2022-06-28 00:18:06 -04:00
Jack Huey
e16dbb5076
Make empty bounds lower to WellFormed and make WellFormed coinductive
2022-06-28 00:17:40 -04:00
Matthias Krüger
950934801e
Rollup merge of #98576 - lcnr:region-stuff-cool-beans, r=jackh726
...
small regions refactoring
these commits should be fairly self-contained
r? rust-lang/types
2022-06-27 22:35:09 +02:00
Matthias Krüger
6391f239c8
Rollup merge of #98506 - compiler-errors:object-safety-suggestions, r=oli-obk
...
Fix span issues in object safety suggestions
Fixes #98500
2022-06-27 22:35:07 +02:00
lcnr
4dbf9ba0ab
outside of borrowck, do not provide an implicit_region_bound
...
see comment added to the field in `VerifyBoundCx`.
2022-06-27 15:48:54 +02:00
Yuki Okushi
c24f06354a
Remove a back-compat hack on lazy TAIT
2022-06-27 20:43:44 +09:00
bors
7702ae16a2
Auto merge of #98221 - cjgillot:single-coh, r=lcnr
...
Perform coherence checking per impl.
r? `@ghost`
2022-06-27 02:56:06 +00:00
Nicholas Nethercote
7c40661ddb
Update smallvec to 1.8.1.
...
This pulls in https://github.com/servo/rust-smallvec/pull/282 , which
gives some small wins for rustc.
2022-06-27 08:48:55 +10:00
Michael Goulet
eff865ca76
Fix span issues in object safety suggestions
2022-06-25 14:59:45 -07:00