]> git.lizzy.rs Git - rust.git/log
rust.git
18 months agoAuto merge of #105285 - compiler-errors:conflicting-param-env-2, r=estebank
bors [Thu, 15 Dec 2022 11:11:49 +0000 (11:11 +0000)]
Auto merge of #105285 - compiler-errors:conflicting-param-env-2, r=estebank

Highlight conflicting param-env candidates, again

Un-reverts #98794 (i.e. reverts #99290).

The previous time I attempted to land this PR, it was because of an incremental issue (#99233). The repro instructions in the issue is no longer manifest the ICE -- I think it's because this ambiguity code was refactored (I think by `@lcnr)` to no longer store the ambiguities in the fulfillment error, but instead recompute them on the fly.

The main motivation for trying to re-land this is that it fixes #105131 by highlighting the root-cause of the issue, which is conflicting param-env candidates:

```
error[E0283]: type annotations needed: cannot satisfy `Self: Gen<'source>`
   |
note: multiple `impl`s or `where` clauses satisfying `Self: Gen<'source>` found
  --> $DIR/conflicting-bounds.rs:3:1
   |
LL | pub trait Gen<'source> {
   | ^^^^^^^^^^^^^^^^^^^^^^
...
LL |         Self: for<'s> Gen<'s, Output = T>;
   |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: aborting due to previous error

For more information about this error, try `rustc --explain E0283`.
```

Fixes #105131.
Fixes (again) #98786

18 months agoAuto merge of #105713 - bjorn3:sync_cg_clif-2022-12-14, r=bjorn3
bors [Thu, 15 Dec 2022 07:23:38 +0000 (07:23 +0000)]
Auto merge of #105713 - bjorn3:sync_cg_clif-2022-12-14, r=bjorn3

Sync rustc_codegen_cranelift

This time there are a bunch of bugfixes, some new llvm intrinsic implementations and refactorings to the build system in preparation for running cg_clif tests as part of `./x.py test`.

r? `@ghost`

`@rustbot` label +A-codegen +A-cranelift +T-compiler

18 months agoAuto merge of #105657 - oli-obk:mk_projection_ty, r=lcnr
bors [Thu, 15 Dec 2022 04:21:25 +0000 (04:21 +0000)]
Auto merge of #105657 - oli-obk:mk_projection_ty, r=lcnr

Guard ProjectionTy creation against passing the wrong number of substs

r? `@lcnr`

18 months agoAuto merge of #104765 - chenyukang:yukang-fix-104639-lifetime-check, r=oli-obk
bors [Thu, 15 Dec 2022 01:28:16 +0000 (01:28 +0000)]
Auto merge of #104765 - chenyukang:yukang-fix-104639-lifetime-check, r=oli-obk

Find the right lower bound region in the scenario of partial order relations

Fixes #104639

18 months agoAuto merge of #105704 - weihanglo:update-cargo, r=weihanglo
bors [Wed, 14 Dec 2022 22:24:31 +0000 (22:24 +0000)]
Auto merge of #105704 - weihanglo:update-cargo, r=weihanglo

Update cargo

8 commits in 70898e522116f6c23971e2a554b2dc85fd4c84cd..cc0a320879c17207bbfb96b5d778e28a2c62030d 2022-12-05 19:43:44 +0000 to 2022-12-14 14:46:57 +0000
- artifact deps should works when target field specified coexists with `optional = true` (rust-lang/cargo#11434)
- Add `home` crate to cargo crates (rust-lang/cargo#11359)
- Use proper git URL for GitHub repos (rust-lang/cargo#11475)
- Fixes flock(fd, LOCK_UN) emulation on Solaris. (rust-lang/cargo#11474)
- Allow Check targets needed for optional doc-scraping to fail without killing the build (rust-lang/cargo#11450)
- fix: gleaning rustdocflags from `target.cfg(…)` is not supported (rust-lang/cargo#11323)
- Fix typo (rust-lang/cargo#11470)
- resolver.md: Fix naming in example (rust-lang/cargo#11469)

r? `@ghost`

18 months agoAuto merge of #105703 - matthiaskrgr:rollup-tfpeam2, r=matthiaskrgr
bors [Wed, 14 Dec 2022 19:14:39 +0000 (19:14 +0000)]
Auto merge of #105703 - matthiaskrgr:rollup-tfpeam2, r=matthiaskrgr

Rollup of 7 pull requests

Successful merges:

 - #105399 (Use more LFS functions.)
 - #105578 (Fix transmutes between pointers in different address spaces (e.g. fn ptrs on AVR))
 - #105598 (explain mem::forget(env_lock) in fork/exec)
 - #105624 (Fix unsoundness in bootstrap cache code)
 - #105630 (Add a test for #92481)
 - #105684 (Improve rustdoc markdown variable naming)
 - #105697 (Remove fee1-dead from reviewers)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

18 months agoFix rustdoc
Oli Scherer [Wed, 14 Dec 2022 18:55:55 +0000 (18:55 +0000)]
Fix rustdoc

18 months agoAdd tidy exceptions
bjorn3 [Wed, 14 Dec 2022 18:47:46 +0000 (19:47 +0100)]
Add tidy exceptions

18 months agoAdd test
Michael Goulet [Mon, 5 Dec 2022 04:38:58 +0000 (04:38 +0000)]
Add test

18 months agoHighlight conflicting param-env candidates, again
Michael Goulet [Tue, 15 Nov 2022 23:11:11 +0000 (23:11 +0000)]
Highlight conflicting param-env candidates, again

18 months agoMerge commit '2bb3996244cf1b89878da9e39841e9f6bf061602' into sync_cg_clif-2022-12-14
bjorn3 [Wed, 14 Dec 2022 18:30:46 +0000 (19:30 +0100)]
Merge commit '2bb3996244cf1b89878da9e39841e9f6bf061602' into sync_cg_clif-2022-12-14

18 months agoUpdate cargo
Weihang Lo [Wed, 14 Dec 2022 16:20:45 +0000 (16:20 +0000)]
Update cargo

8 commits in 70898e522116f6c23971e2a554b2dc85fd4c84cd..cc0a320879c17207bbfb96b5d778e28a2c62030d
2022-12-05 19:43:44 +0000 to 2022-12-14 14:46:57 +0000
- artifact deps should works when target field specified coexists with `optional = true` (rust-lang/cargo#11434)
- Add `home` crate to cargo crates (rust-lang/cargo#11359)
- Use proper git URL for GitHub repos (rust-lang/cargo#11475)
- Fixes flock(fd, LOCK_UN) emulation on Solaris. (rust-lang/cargo#11474)
- Allow Check targets needed for optional doc-scraping to fail without killing the build (rust-lang/cargo#11450)
- fix: gleaning rustdocflags from `target.cfg(…)` is not supported (rust-lang/cargo#11323)
- Fix typo (rust-lang/cargo#11470)
- resolver.md: Fix naming in example (rust-lang/cargo#11469)

18 months agoRollup merge of #105697 - fee1-dead-contrib:rm-fee1-dead, r=Mark-Simulacrum
Matthias Krüger [Wed, 14 Dec 2022 16:17:59 +0000 (17:17 +0100)]
Rollup merge of #105697 - fee1-dead-contrib:rm-fee1-dead, r=Mark-Simulacrum

Remove fee1-dead from reviewers

.. for now. I have been burned out a bit from reviews and I think I should take a break.

18 months agoRollup merge of #105684 - GuillaumeGomez:improve-rustdoc-var-name, r=notriddle
Matthias Krüger [Wed, 14 Dec 2022 16:17:59 +0000 (17:17 +0100)]
Rollup merge of #105684 - GuillaumeGomez:improve-rustdoc-var-name, r=notriddle

Improve rustdoc markdown variable naming

Opened on the right repository this time. :laughing:

r? `@notriddle`

18 months agoRollup merge of #105630 - albertlarsan68:test-92481, r=TaKO8Ki
Matthias Krüger [Wed, 14 Dec 2022 16:17:58 +0000 (17:17 +0100)]
Rollup merge of #105630 - albertlarsan68:test-92481, r=TaKO8Ki

Add a test for #92481

The test was copied ad-hoc from #92481, but I can't get the test to pass, because of needing to get twice the same error on the last line of the source.

Closes #92481

18 months agoRollup merge of #105624 - compiler-errors:cache-unsound, r=jyn514
Matthias Krüger [Wed, 14 Dec 2022 16:17:58 +0000 (17:17 +0100)]
Rollup merge of #105624 - compiler-errors:cache-unsound, r=jyn514

Fix unsoundness in bootstrap cache code

Discovered via #105575, which showed that rustc was failing to build during a perf run.

18 months agoRollup merge of #105598 - RalfJung:more-comments, r=the8472
Matthias Krüger [Wed, 14 Dec 2022 16:17:57 +0000 (17:17 +0100)]
Rollup merge of #105598 - RalfJung:more-comments, r=the8472

explain mem::forget(env_lock) in fork/exec

I stumbled upon this while doing triage for https://github.com/rust-lang/rust/issues/64718.

18 months agoRollup merge of #105578 - erikdesjardins:addrspacecast, r=bjorn3
Matthias Krüger [Wed, 14 Dec 2022 16:17:57 +0000 (17:17 +0100)]
Rollup merge of #105578 - erikdesjardins:addrspacecast, r=bjorn3

Fix transmutes between pointers in different address spaces (e.g. fn ptrs on AVR)

Currently, this causes a verifier error (https://godbolt.org/z/YYohed4bj), since it uses `bitcast`, which can't convert between address spaces.

Uncovered due to https://github.com/rust-lang/rust/pull/105545#discussion_r1045269309

r? `@bjorn3`

18 months agoRollup merge of #105399 - mikebenfield:lfs, r=thomcc
Matthias Krüger [Wed, 14 Dec 2022 16:17:56 +0000 (17:17 +0100)]
Rollup merge of #105399 - mikebenfield:lfs, r=thomcc

Use more LFS functions.

On Linux, use mmap64, open64, openat64, and sendfile64 in place of their non-LFS counterparts.

This is relevant to #94173.

With these changes (together with rust-lang/backtrace-rs#501), the simple binaries I produce with rustc seem to have no non-LFS functions, so maybe #94173 is fixed. But I can't be sure if I've missed something and maybe some non-LFS functions could sneak in somehow.

18 months agoAuto merge of #105233 - mejrs:always_eager, r=estebank
bors [Wed, 14 Dec 2022 16:16:50 +0000 (16:16 +0000)]
Auto merge of #105233 - mejrs:always_eager, r=estebank

Always evaluate vecs of subdiagnostics eagerly

See https://rust-lang.zulipchat.com/#narrow/stream/336883-i18n/topic/.23100717.20lists!/near/310186705 for context

18 months agoDebug assertions hate this trick
Oli Scherer [Wed, 14 Dec 2022 15:37:47 +0000 (15:37 +0000)]
Debug assertions hate this trick

18 months agoFix some comments and only get the generics in debug mode
Oli Scherer [Wed, 14 Dec 2022 14:37:16 +0000 (14:37 +0000)]
Fix some comments and only get the generics in debug mode

18 months agoFix a freshly detected wrong TraitRef
Oli Scherer [Tue, 13 Dec 2022 11:59:15 +0000 (11:59 +0000)]
Fix a freshly detected wrong TraitRef

18 months agoRemove TraitRef::new
Oli Scherer [Tue, 13 Dec 2022 11:25:31 +0000 (11:25 +0000)]
Remove TraitRef::new

18 months agoPrevent the creation of `TraitRef` without dedicated methods
Oli Scherer [Tue, 13 Dec 2022 11:18:58 +0000 (11:18 +0000)]
Prevent the creation of `TraitRef` without dedicated methods

18 months agoEnsure no one constructs `AliasTy`s themselves
Oli Scherer [Tue, 13 Dec 2022 11:07:42 +0000 (11:07 +0000)]
Ensure no one constructs `AliasTy`s themselves

18 months agoRemove one more usage of `mk_substs_trait`
Oli Scherer [Tue, 13 Dec 2022 10:49:30 +0000 (10:49 +0000)]
Remove one more usage of `mk_substs_trait`

18 months agoRemove many more cases of `mk_substs_trait` that can now use the iterator scheme`
Oli Scherer [Tue, 13 Dec 2022 10:44:35 +0000 (10:44 +0000)]
Remove many more cases of `mk_substs_trait` that can now use the iterator scheme`

18 months agoLet `mk_fn_def` take an iterator instead to simplify some call sites
Oli Scherer [Tue, 13 Dec 2022 10:37:19 +0000 (10:37 +0000)]
Let `mk_fn_def` take an iterator instead to simplify some call sites

18 months agoRename to match similar methods
Oli Scherer [Tue, 13 Dec 2022 10:26:11 +0000 (10:26 +0000)]
Rename to match similar methods

18 months agoGuard `AliasTy` creation against passing the wrong number of substs
Oli Scherer [Tue, 13 Dec 2022 10:25:21 +0000 (10:25 +0000)]
Guard `AliasTy` creation against passing the wrong number of substs

18 months agoRemove unnecessary git init
bjorn3 [Wed, 14 Dec 2022 15:23:24 +0000 (15:23 +0000)]
Remove unnecessary git init

18 months agoExplicitly provide dummy git author name and email
bjorn3 [Wed, 14 Dec 2022 15:21:18 +0000 (15:21 +0000)]
Explicitly provide dummy git author name and email

This avoids the need to tell git beforehand about your name and email

18 months agoAuto merge of #105690 - matthiaskrgr:rollup-khtq97k, r=matthiaskrgr
bors [Wed, 14 Dec 2022 12:46:08 +0000 (12:46 +0000)]
Auto merge of #105690 - matthiaskrgr:rollup-khtq97k, r=matthiaskrgr

Rollup of 6 pull requests

Successful merges:

 - #105642 (Minor grammar nit.)
 - #105658 (Remove ..X from RELEASES.md)
 - #105663 (Adjust log line in `fuchsia-test-runner.py`)
 - #105664 (rustdoc: apply `pre-wrap` CSS to code-wrapped links)
 - #105665 (rustdoc: simplify popover CSS)
 - #105676 (rustdoc: add CSS margin between `impl` docblock and its items)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

18 months agoRemove fee1-dead from reviewers
Deadbeef [Wed, 14 Dec 2022 12:41:11 +0000 (12:41 +0000)]
Remove fee1-dead from reviewers

.. for now. I have been burned out a bit from reviews
and I think I should take a break.

18 months agoBless test
Albert Larsan [Wed, 14 Dec 2022 12:40:34 +0000 (13:40 +0100)]
Bless test

18 months agoRemove a couple of module.isa() calls
bjorn3 [Wed, 14 Dec 2022 12:25:53 +0000 (12:25 +0000)]
Remove a couple of module.isa() calls

18 months agoAdd a test for #92481
Albert Larsan [Mon, 12 Dec 2022 19:53:13 +0000 (20:53 +0100)]
Add a test for #92481

18 months agoRollup merge of #105676 - notriddle:notriddle/impl-docblock, r=GuillaumeGomez
Matthias Krüger [Wed, 14 Dec 2022 09:58:49 +0000 (10:58 +0100)]
Rollup merge of #105676 - notriddle:notriddle/impl-docblock, r=GuillaumeGomez

rustdoc: add CSS margin between `impl` docblock and its items

## Before

![image](https://user-images.githubusercontent.com/1593513/207471025-c27c298b-4d48-461b-918b-a965b09db4f1.png)

## After

![image](https://user-images.githubusercontent.com/1593513/207471759-1bbabf71-0932-441c-b044-ad0e392ba552.png)

18 months agoRollup merge of #105665 - notriddle:notriddle/popover-css-merge, r=GuillaumeGomez
Matthias Krüger [Wed, 14 Dec 2022 09:58:48 +0000 (10:58 +0100)]
Rollup merge of #105665 - notriddle:notriddle/popover-css-merge, r=GuillaumeGomez

rustdoc: simplify popover CSS

* Merge the color-changing block into the regular rules, which was probably written that way because it used to be in the theme files, but has no reason to be written this way now that it's in rustdoc.css

* Get rid of redundant `display: block`, since `position: absolute` blockifies the layout anyway.

18 months agoRollup merge of #105664 - notriddle:notriddle/linkwrap, r=GuillaumeGomez
Matthias Krüger [Wed, 14 Dec 2022 09:58:48 +0000 (10:58 +0100)]
Rollup merge of #105664 - notriddle:notriddle/linkwrap, r=GuillaumeGomez

rustdoc: apply `pre-wrap` CSS to code-wrapped links

This is common syntax used for intra-doc links, so fixing it should help with doc formatting.

18 months agoRollup merge of #105663 - andrewpollack:patch-1, r=tmandry
Matthias Krüger [Wed, 14 Dec 2022 09:58:47 +0000 (10:58 +0100)]
Rollup merge of #105663 - andrewpollack:patch-1, r=tmandry

Adjust log line in `fuchsia-test-runner.py`

* Adjusting log line in `fuchsia-test-runner.py` to refer to self

r? ``@tmandry``

18 months agoRollup merge of #105658 - tronta:patch-2, r=Mark-Simulacrum
Matthias Krüger [Wed, 14 Dec 2022 09:58:47 +0000 (10:58 +0100)]
Rollup merge of #105658 - tronta:patch-2, r=Mark-Simulacrum

Remove ..X from RELEASES.md

this is not yet supported:
..X => https://github.com/rust-lang/rust/issues/37854 is still open

18 months agoRollup merge of #105642 - uberFoo:master, r=Dylan-DPC
Matthias Krüger [Wed, 14 Dec 2022 09:58:46 +0000 (10:58 +0100)]
Rollup merge of #105642 - uberFoo:master, r=Dylan-DPC

Minor grammar nit.

I was browsing the documentation and noticed that this should be an adverb.

18 months agoAuto merge of #105686 - matthiaskrgr:rollup-bedfk3j, r=matthiaskrgr
bors [Wed, 14 Dec 2022 09:33:57 +0000 (09:33 +0000)]
Auto merge of #105686 - matthiaskrgr:rollup-bedfk3j, r=matthiaskrgr

Rollup of 7 pull requests

Successful merges:

 - #103644 (Add docs for question mark operator for Option)
 - #105161 (Refine when invalid prefix case error arises)
 - #105491 (Illegal sized bounds: only suggest mutability change if needed)
 - #105502 (Suggest impl in the scenario of typo with fn)
 - #105523 (Suggest `collect`ing into `Vec<_>`)
 - #105595 (Suggest dereferencing receiver arguments properly)
 - #105611 (fold instead of obliterating args)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

18 months agoRollup merge of #105611 - BoxyUwU:more_granular_placeholderification, r=wesleywiser
Matthias Krüger [Wed, 14 Dec 2022 09:31:08 +0000 (10:31 +0100)]
Rollup merge of #105611 - BoxyUwU:more_granular_placeholderification, r=wesleywiser

fold instead of obliterating args

Fixes #105608

we call `const_eval_resolve` on the following constant:
```
def: playground::{impl#0}::and::{constant#0},
substs: [
  ConstKind::Unevaluated {
    def: playground::{impl#0}::and::{constant#0},
    substs: [
      ConstKind::Value(0x0),
      _,
    ]
  }
  _,
],
```
when expanded out to `ConstKind::Expr` there are no infer vars so we attempt to evaluate it after replacing infer vars with garbage, however the current logic for replacing with garbage replaces _the whole arg containing the infer var_ rather than just the infer var. This means that after garbage replacement has occured we attempt to evaluate:
```
def: playground::{impl#0}::and::{constant#0},
substs: [
  PLACEHOLDER,
  PLACEHOLDER,
],
```
Which then leads to ctfe being unable to evaluate the const. With this PR we attempt to evaluate:
```
def: playground::{impl#0}::and::{constant#0},
substs: [
  ConstKind::Unevaluated {
    def: playground::{impl#0}::and::{constant#0},
    substs: [
      ConstKind::Value(0x0),
      PLACEHOLDER,
    ]
  }
  PLACEHOLDER,
],
```
which ctfe _can_ handle.

I am not entirely sure why this function is supposed to replace params with placeholders rather than just inference vars :thinking:

18 months agoRollup merge of #105595 - TaKO8Ki:suggest-dereferencing-receiver-argument, r=compiler...
Matthias Krüger [Wed, 14 Dec 2022 09:31:07 +0000 (10:31 +0100)]
Rollup merge of #105595 - TaKO8Ki:suggest-dereferencing-receiver-argument, r=compiler-errors

Suggest dereferencing receiver arguments properly

Fixes #105429

18 months agoRollup merge of #105523 - estebank:suggest-collect-vec, r=compiler-errors
Matthias Krüger [Wed, 14 Dec 2022 09:31:07 +0000 (10:31 +0100)]
Rollup merge of #105523 - estebank:suggest-collect-vec, r=compiler-errors

Suggest `collect`ing into `Vec<_>`

Fix #105510.

18 months agoRollup merge of #105502 - chenyukang:yukang/fix-105366-impl, r=estebank
Matthias Krüger [Wed, 14 Dec 2022 09:31:06 +0000 (10:31 +0100)]
Rollup merge of #105502 - chenyukang:yukang/fix-105366-impl, r=estebank

Suggest impl in the scenario of typo with fn

Fixes #105366

18 months agoRollup merge of #105491 - sulami:master, r=compiler-errors
Matthias Krüger [Wed, 14 Dec 2022 09:31:05 +0000 (10:31 +0100)]
Rollup merge of #105491 - sulami:master, r=compiler-errors

Illegal sized bounds: only suggest mutability change if needed

In a scenario like

```rust
struct Type;

pub trait Trait {
    fn function(&mut self)
    where
        Self: Sized;
}

impl Trait for Type {
    fn function(&mut self) {}
}

fn main() {
    (&mut Type as &mut dyn Trait).function();
}
```

the problem is Sized, not the mutability of self. Thus don't emit the "you need &T instead of &mut T" note, or the other way around, as all it does is just invert the mutability of whatever was supplied.

Fixes #103622.

18 months agoRollup merge of #105161 - cassaundra:numeric-literal-error, r=nnethercote
Matthias Krüger [Wed, 14 Dec 2022 09:31:05 +0000 (10:31 +0100)]
Rollup merge of #105161 - cassaundra:numeric-literal-error, r=nnethercote

Refine when invalid prefix case error arises

Fix cases where the "invalid base prefix for number literal" error arises with suffixes that look erroneously capitalized but which are actually invalid.

18 months agoRollup merge of #103644 - catlee:catlee/option-question-mark-docs, r=workingjubilee
Matthias Krüger [Wed, 14 Dec 2022 09:31:04 +0000 (10:31 +0100)]
Rollup merge of #103644 - catlee:catlee/option-question-mark-docs, r=workingjubilee

Add docs for question mark operator for Option

As a beginner learning rust, it took me a while to figure out what `?` was doing with Options. I think the documentation of this could be improved.

I've used the question mark documentation from the `Result` type as a template here, and tried to come up with a simple example as well.

18 months agoAuto merge of #105221 - alex:fat-archive-cleanup, r=bjorn3
bors [Wed, 14 Dec 2022 06:51:50 +0000 (06:51 +0000)]
Auto merge of #105221 - alex:fat-archive-cleanup, r=bjorn3

Avoid a temporary file when processing macOS fat archives

r? `@bjorn3`

18 months agoAuto merge of #104875 - chenyukang:yukang/fix-104867-inc, r=estebank
bors [Wed, 14 Dec 2022 04:00:05 +0000 (04:00 +0000)]
Auto merge of #104875 - chenyukang:yukang/fix-104867-inc, r=estebank

Properly handle postfix inc/dec in standalone and subexpr scenarios

Fixes #104867
r? `@estebank`

18 months agoAuto merge of #104986 - compiler-errors:opaques, r=oli-obk
bors [Wed, 14 Dec 2022 01:19:24 +0000 (01:19 +0000)]
Auto merge of #104986 - compiler-errors:opaques, r=oli-obk

Combine `ty::Projection` and `ty::Opaque` into `ty::Alias`

Implements https://github.com/rust-lang/types-team/issues/79.

This PR consolidates `ty::Projection` and `ty::Opaque` into a single `ty::Alias`, with an `AliasKind` and `AliasTy` type (renamed from `ty::ProjectionTy`, which is the inner data of `ty::Projection`) defined as so:

```
enum AliasKind {
  Projection,
  Opaque,
}

struct AliasTy<'tcx> {
  def_id: DefId,
  substs: SubstsRef<'tcx>,
}
```

Since we don't have access to `TyCtxt` in type flags computation, and because repeatedly calling `DefKind` on the def-id is expensive, these two types are distinguished with `ty::AliasKind`, conveniently glob-imported into `ty::{Projection, Opaque}`. For example:

```diff
  match ty.kind() {
-   ty::Opaque(..) =>
+   ty::Alias(ty::Opaque, ..) => {}
    _ => {}
  }
```

This PR also consolidates match arms that treated `ty::Opaque` and `ty::Projection` identically.

r? `@ghost`

18 months agorustdoc: add CSS margin between `impl` docblock and its items
Michael Howell [Tue, 13 Dec 2022 23:55:45 +0000 (16:55 -0700)]
rustdoc: add CSS margin between `impl` docblock and its items

18 months agoAuto merge of #105667 - matthiaskrgr:rollup-fexlc0b, r=matthiaskrgr
bors [Tue, 13 Dec 2022 22:05:28 +0000 (22:05 +0000)]
Auto merge of #105667 - matthiaskrgr:rollup-fexlc0b, r=matthiaskrgr

Rollup of 7 pull requests

Successful merges:

 - #105147 (Allow unsafe through inline const)
 - #105438 (Move some codegen-y methods from `rustc_hir_analysis::collect` -> `rustc_codegen_ssa`)
 - #105464 (Support #[track_caller] on async closures)
 - #105476 (Change pattern borrowing suggestions to be verbose and remove invalid suggestion)
 - #105500 (Make some diagnostics not depend on the source of what they reference being available)
 - #105628 (Small doc fixes)
 - #105659 (Don't require owned data in `MaybeStorageLive`)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

18 months agorename argument
Esteban Küber [Tue, 13 Dec 2022 21:23:19 +0000 (13:23 -0800)]
rename argument

18 months agoImprove wording for Option and Result
Chris AtLee [Tue, 13 Dec 2022 19:49:10 +0000 (14:49 -0500)]
Improve wording for Option and Result

18 months agoAdd docs for question mark operator for Option
Chris AtLee [Thu, 27 Oct 2022 16:52:29 +0000 (12:52 -0400)]
Add docs for question mark operator for Option

18 months agoreview comments
Esteban Küber [Tue, 13 Dec 2022 19:36:43 +0000 (11:36 -0800)]
review comments

18 months agoRollup merge of #105659 - JakobDegen:storage-live-borrow, r=davidtwco
Matthias Krüger [Tue, 13 Dec 2022 18:57:12 +0000 (19:57 +0100)]
Rollup merge of #105659 - JakobDegen:storage-live-borrow, r=davidtwco

Don't require owned data in `MaybeStorageLive`

Small improvement that avoids a clone. I don't expect this to have any noticeable perf effects, but better to have it than not to.

r? ``@tmiasko``

18 months agoRollup merge of #105628 - spastorino:small-doc-fixes, r=compiler-errors
Matthias Krüger [Tue, 13 Dec 2022 18:57:12 +0000 (19:57 +0100)]
Rollup merge of #105628 - spastorino:small-doc-fixes, r=compiler-errors

Small doc fixes

r? `@compiler-errors`

18 months agoRollup merge of #105500 - oli-obk:unhide_unknown_spans, r=estebank
Matthias Krüger [Tue, 13 Dec 2022 18:57:11 +0000 (19:57 +0100)]
Rollup merge of #105500 - oli-obk:unhide_unknown_spans, r=estebank

Make some diagnostics not depend on the source of what they reference being available

r? `@estebank`

follow up to https://github.com/rust-lang/rust/pull/104449

18 months agoRollup merge of #105476 - estebank:moves-n-borrows, r=compiler-errors
Matthias Krüger [Tue, 13 Dec 2022 18:57:11 +0000 (19:57 +0100)]
Rollup merge of #105476 - estebank:moves-n-borrows, r=compiler-errors

Change pattern borrowing suggestions to be verbose and remove invalid suggestion

Synthesize a more accurate span and use verbose suggestion output to
make the message clearer.

Do not suggest borrowing binding in pattern in let else. Fix #104838.

18 months agoRollup merge of #105464 - nbdd0121:hir, r=compiler-errors
Matthias Krüger [Tue, 13 Dec 2022 18:57:10 +0000 (19:57 +0100)]
Rollup merge of #105464 - nbdd0121:hir, r=compiler-errors

Support #[track_caller] on async closures

Follow up on #105180

r? ```@compiler-errors```
cc ```@cjgillot```

18 months agoRollup merge of #105438 - compiler-errors:move-methods, r=estebank
Matthias Krüger [Tue, 13 Dec 2022 18:57:10 +0000 (19:57 +0100)]
Rollup merge of #105438 - compiler-errors:move-methods, r=estebank

Move some codegen-y methods from `rustc_hir_analysis::collect` -> `rustc_codegen_ssa`

Unclear if they should live here, but they seem codegen-y enough, and `rustc_hir_analysis::collect` is extremely long, so it should probably lose some methods.

18 months agoRollup merge of #105147 - nbdd0121:inline_const_unsafe, r=oli-obk
Matthias Krüger [Tue, 13 Dec 2022 18:57:09 +0000 (19:57 +0100)]
Rollup merge of #105147 - nbdd0121:inline_const_unsafe, r=oli-obk

Allow unsafe through inline const

Handle similar to closures.

Address https://github.com/rust-lang/rust/pull/104087#issuecomment-1324173328

Note that this PR does not fix the issue for `unsafe { [0; function_requiring_unsafe()] }`. This is fundamentally unfixable for MIR unsafeck IMO.

This PR also does not fix unsafety checking for inline const in pattern position. It actually breaks it, allowing unsafe functions to be used in inline const in pattern position without unsafe blocks. Inline const in pattern position is not visible in MIR so ignored by MIR unsafety checking (currently it is also not checked by borrow checker, which is the reason why it's considered an incomplete feature).

`@rustbot` label: +T-lang +F-inline_const

18 months agosuggest dereferencing receiver arguments properly
Takayuki Maeda [Tue, 13 Dec 2022 18:18:02 +0000 (03:18 +0900)]
suggest dereferencing receiver arguments properly

fix a stderr

18 months agoAuto merge of #102813 - Akida31:issue-64915/simpler_diagnostic_when_passing_arg_to_cl...
bors [Tue, 13 Dec 2022 18:46:35 +0000 (18:46 +0000)]
Auto merge of #102813 - Akida31:issue-64915/simpler_diagnostic_when_passing_arg_to_closure_and_missing_borrow, r=estebank

Simpler diagnostic when passing arg to closure and missing borrow

fixes #64915

I followed roughly the instructions and the older PR #76362.
The number of references for the expected and the found types will be compared and depending on which has more the diagnostic will be emitted.

I'm not quite sure if my approach with the many `span_bug!`s is good, it could lead to some ICEs. Would it be better if  those errors are ignored?

As far as I know the following code works similarly but in a different context. Is this probably reusable since it looks like it would emit better diagnostics?
https://github.com/rust-lang/rust/blob/a688a0305fad9219505a8f2576446510601bafe8/compiler/rustc_hir_analysis/src/check/demand.rs#L713-L1061

When running the tests locally, a codegen test failed. Is there something I can/ should do about that?

If you have some improvements/ corrections please say so and I will happily include them.

r? `@estebank` (as you added the mentoring instructions to the issue)

18 months agoSuggest `: Type` instead of `: _`
Esteban Küber [Sun, 11 Dec 2022 02:40:04 +0000 (18:40 -0800)]
Suggest `: Type` instead of `: _`

18 months agoMention implementations that satisfy the trait
Esteban Küber [Sun, 11 Dec 2022 01:39:00 +0000 (17:39 -0800)]
Mention implementations that satisfy the trait

18 months agoRemove unnecessary code and account for turbofish suggestion
Esteban Küber [Sat, 10 Dec 2022 20:19:29 +0000 (12:19 -0800)]
Remove unnecessary code and account for turbofish suggestion

Remove previously existing fallback that tried to give a good turbofish
suggestion, `need_type_info` is already good enough.

Special case `::<Vec<_>` suggestion for `Iterator::collect`.

18 months agoSuggest `collect`ing into `Vec<_>`
Esteban Küber [Sat, 10 Dec 2022 06:31:16 +0000 (22:31 -0800)]
Suggest `collect`ing into `Vec<_>`

18 months agoAccount for dereference expressions
Esteban Küber [Fri, 9 Dec 2022 21:01:41 +0000 (13:01 -0800)]
Account for dereference expressions

18 months agoFix span for `&mut ` removal suggestion
Esteban Küber [Fri, 9 Dec 2022 05:09:56 +0000 (21:09 -0800)]
Fix span for `&mut ` removal suggestion

18 months agoSuggest `ref` for some patterns as a fallback
Esteban Küber [Fri, 9 Dec 2022 01:14:56 +0000 (17:14 -0800)]
Suggest `ref` for some patterns as a fallback

18 months agoDo not suggest borrowing binding in pattern in let else
Esteban Küber [Thu, 8 Dec 2022 17:31:57 +0000 (09:31 -0800)]
Do not suggest borrowing binding in pattern in let else

Fix #104838.

18 months agoChange pattern borrowing suggestions to be verbose
Esteban Küber [Thu, 8 Dec 2022 17:02:54 +0000 (09:02 -0800)]
Change pattern borrowing suggestions to be verbose

Synthesize a more accurate span and use verbose suggestion output to
make the message clearer.

18 months agorustdoc: simplify popover CSS
Michael Howell [Tue, 13 Dec 2022 18:00:34 +0000 (11:00 -0700)]
rustdoc: simplify popover CSS

* Merge the color-changing block into the regular rules, which was
  probably written that way because it used to be in the theme files,
  but has no reason to be written this way now that it's in rustdoc.css

* Get rid of redundant `display: block`, since `position: absolute`
  blockifies the layout anyway.

18 months agoAddress a few more nits
Michael Goulet [Tue, 13 Dec 2022 17:54:52 +0000 (17:54 +0000)]
Address a few more nits

18 months agoAddress nits
Michael Goulet [Tue, 13 Dec 2022 17:50:52 +0000 (09:50 -0800)]
Address nits

Co-authored-by: Oli Scherer <github35764891676564198441@oli-obk.de>
18 months agoRemove chalk lowering for AliasTy
Michael Goulet [Tue, 6 Dec 2022 03:35:47 +0000 (03:35 +0000)]
Remove chalk lowering for AliasTy

18 months agonit: docs
Michael Goulet [Tue, 6 Dec 2022 03:30:58 +0000 (03:30 +0000)]
nit: docs

18 months agoCombine OfOpaque and OfProjection
Michael Goulet [Tue, 6 Dec 2022 02:49:06 +0000 (02:49 +0000)]
Combine OfOpaque and OfProjection

18 months agoCombine identical alias arms
Michael Goulet [Sun, 27 Nov 2022 17:52:17 +0000 (17:52 +0000)]
Combine identical alias arms

18 months agoCombine projection and opaque into alias
Michael Goulet [Sat, 26 Nov 2022 21:51:55 +0000 (21:51 +0000)]
Combine projection and opaque into alias

18 months agorustdoc: apply `pre-wrap` CSS to code-wrapped links
Michael Howell [Tue, 13 Dec 2022 17:46:27 +0000 (10:46 -0700)]
rustdoc: apply `pre-wrap` CSS to code-wrapped links

This is common syntax used for intra-doc links, so fixing it should help
with doc formatting.

18 months agosquash OpaqueTy and ProjectionTy into AliasTy
Michael Goulet [Sat, 26 Nov 2022 21:32:01 +0000 (21:32 +0000)]
squash OpaqueTy and ProjectionTy into AliasTy

18 months agoProjectionTy.item_def_id -> ProjectionTy.def_id
Michael Goulet [Sat, 26 Nov 2022 21:21:20 +0000 (21:21 +0000)]
ProjectionTy.item_def_id -> ProjectionTy.def_id

18 months agoUse ty::OpaqueTy everywhere
Michael Goulet [Sat, 26 Nov 2022 21:09:39 +0000 (21:09 +0000)]
Use ty::OpaqueTy everywhere

18 months agomake Opaque have one field: OpaqueTy
Michael Goulet [Sat, 26 Nov 2022 20:43:31 +0000 (20:43 +0000)]
make Opaque have one field: OpaqueTy

18 months agoAdjust log line in `fuchsia-test-runner.py`
Andrew Pollack [Tue, 13 Dec 2022 17:26:12 +0000 (09:26 -0800)]
Adjust log line in `fuchsia-test-runner.py`

* Adjusting log line in `fuchsia-test-runner.py` to refer to self

18 months agofix tests
akida31 [Tue, 13 Dec 2022 17:24:18 +0000 (18:24 +0100)]
fix tests

18 months agoRustup to rustc 1.68.0-nightly (37d7de337 2022-12-12)
bjorn3 [Tue, 13 Dec 2022 17:23:52 +0000 (18:23 +0100)]
Rustup to rustc 1.68.0-nightly (37d7de337 2022-12-12)

18 months agoSync from rust ed620cf9690fdafed65845bf35c455db992fbba1
bjorn3 [Tue, 13 Dec 2022 17:18:47 +0000 (18:18 +0100)]
Sync from rust ed620cf9690fdafed65845bf35c455db992fbba1

18 months agoAuto merge of #105646 - lqd:revert-thinlto, r=Mark-Simulacrum
bors [Tue, 13 Dec 2022 15:50:16 +0000 (15:50 +0000)]
Auto merge of #105646 - lqd:revert-thinlto, r=Mark-Simulacrum

Revert "enable ThinLTO for rustc on x86_64-apple-darwin dist builds"

Apparently ThinLTO on x64 mac can regress some of the ICEs' output. This reverts #103647 to allow for investigation, and helps with #105637 in the meantime.

18 months agotidy: ignore filelength
akida31 [Sun, 27 Nov 2022 19:58:01 +0000 (20:58 +0100)]
tidy: ignore filelength

18 months agoreduce to single suggestion for all arguments
akida31 [Sun, 13 Nov 2022 21:40:54 +0000 (22:40 +0100)]
reduce to single suggestion for all arguments

18 months agoremove manual `fn_decl` extraction
akida31 [Tue, 11 Oct 2022 15:48:46 +0000 (17:48 +0200)]
remove manual `fn_decl` extraction