]> git.lizzy.rs Git - rust.git/log
rust.git
2 years agoInline `const_eval_select`
Tomasz Miąsko [Mon, 13 Jun 2022 00:00:00 +0000 (00:00 +0000)]
Inline `const_eval_select`

To avoid circular link time dependency between core and compiler
builtins when building with `-Zshare-generics`.

2 years agoAuto merge of #98038 - TaKO8Ki:remove-unnecessary-space-in-doc, r=compiler-errors
bors [Mon, 13 Jun 2022 04:26:05 +0000 (04:26 +0000)]
Auto merge of #98038 - TaKO8Ki:remove-unnecessary-space-in-doc, r=compiler-errors

Remove an unnecessary space in doc

2 years agoAuto merge of #98037 - compiler-errors:rollup-fbvy456, r=compiler-errors
bors [Mon, 13 Jun 2022 01:45:16 +0000 (01:45 +0000)]
Auto merge of #98037 - compiler-errors:rollup-fbvy456, r=compiler-errors

Rollup of 3 pull requests

Successful merges:

 - #97920 (Fix some test annotations)
 - #97950 (Clarify `#[derive(PartialEq)]` on enums)
 - #98011 (Add documentation for error E0208)

Failed merges:

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

2 years agoremove an unnecessary space in doc
Takayuki Maeda [Mon, 13 Jun 2022 00:51:13 +0000 (09:51 +0900)]
remove an unnecessary space in doc

2 years agoRollup merge of #98011 - onlineSoftwareDevOK:long-error-explanation-e0208, r=Guillaum...
Michael Goulet [Mon, 13 Jun 2022 00:35:42 +0000 (17:35 -0700)]
Rollup merge of #98011 - onlineSoftwareDevOK:long-error-explanation-e0208, r=GuillaumeGomez

Add documentation for error E0208

Related to https://github.com/rust-lang/rust/issues/61137

2 years agoRollup merge of #97950 - eggyal:issue-97945, r=Dylan-DPC
Michael Goulet [Mon, 13 Jun 2022 00:35:41 +0000 (17:35 -0700)]
Rollup merge of #97950 - eggyal:issue-97945, r=Dylan-DPC

Clarify `#[derive(PartialEq)]` on enums

Fixes #97945

2 years agoRollup merge of #97920 - bjorn3:test_annotation_fixes, r=Dylan-DPC
Michael Goulet [Mon, 13 Jun 2022 00:35:40 +0000 (17:35 -0700)]
Rollup merge of #97920 - bjorn3:test_annotation_fixes, r=Dylan-DPC

Fix some test annotations

These are necessary for running the rustc test suite with cg_clif.

2 years agoAuto merge of #98020 - TaKO8Ki:use-create-snapshot-for-diagnostic-in-rustc-expand...
bors [Sun, 12 Jun 2022 23:25:35 +0000 (23:25 +0000)]
Auto merge of #98020 - TaKO8Ki:use-create-snapshot-for-diagnostic-in-rustc-expand, r=Dylan-DPC

Use `create_snapshot_for_diagnostic` instead of `clone` for `Parser`

Use [`create_snapshot_for_diagnostic`](https://github.com/rust-lang/rust/blob/cd119057160cedea245aa2679add56723f3dc784/compiler/rustc_parse/src/parser/diagnostics.rs#L214-L223) I implemented in https://github.com/rust-lang/rust/pull/94731 instead of `clone` to avoid duplicate unclosed delims errors being emitted when the `Parser` is dropped. I missed this one in #95068.

2 years agoAdd comment for internal error codes
onlinesoftwaredevok [Sun, 12 Jun 2022 22:52:49 +0000 (19:52 -0300)]
Add comment for internal error codes

2 years agoAuto merge of #98018 - scottmcm:miri-yeet, r=RalfJung
bors [Sun, 12 Jun 2022 20:44:58 +0000 (20:44 +0000)]
Auto merge of #98018 - scottmcm:miri-yeet, r=RalfJung

Try out `yeet` in the MIR interpreter

Since we got a new bootstrap, we can give this a shot.

r? `@oli-obk`

2 years agoAuto merge of #97833 - tmiasko:borrowed-locals, r=nagisa
bors [Sun, 12 Jun 2022 17:56:54 +0000 (17:56 +0000)]
Auto merge of #97833 - tmiasko:borrowed-locals, r=nagisa

Remove duplicated implementations of borrowed locals analysis

2 years agoFix some test annotations
bjorn3 [Thu, 9 Jun 2022 16:06:27 +0000 (16:06 +0000)]
Fix some test annotations

These are necessary for running the rustc test suite with cg_clif

2 years agoAuto merge of #98025 - Dylan-DPC:rollup-cwt2hb7, r=Dylan-DPC
bors [Sun, 12 Jun 2022 12:41:06 +0000 (12:41 +0000)]
Auto merge of #98025 - Dylan-DPC:rollup-cwt2hb7, r=Dylan-DPC

Rollup of 5 pull requests

Successful merges:

 - #97921 (additional docs example for replace **all** of str)
 - #97970 (Fix Termination impl panic on closed stderr)
 - #97991 (Use safer `strip=symbols`-flag for dylibs on macOS)
 - #97992 (Stabilize scoped threads.)
 - #98012 (`ValuePairs::PolyTraitRefs` should be called "trait"s in type error diagnostics)

Failed merges:

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

2 years agoRollup merge of #98012 - compiler-errors:poly-trait-refs-are-traits, r=cjgillot
Dylan DPC [Sun, 12 Jun 2022 10:14:30 +0000 (12:14 +0200)]
Rollup merge of #98012 - compiler-errors:poly-trait-refs-are-traits, r=cjgillot

`ValuePairs::PolyTraitRefs` should be called "trait"s in type error diagnostics

Pretty simple, we already do this for `ValuePairs::TraitRefs`...

2 years agoRollup merge of #97992 - m-ou-se:stabilize-scoped-threads, r=joshtriplett
Dylan DPC [Sun, 12 Jun 2022 10:14:29 +0000 (12:14 +0200)]
Rollup merge of #97992 - m-ou-se:stabilize-scoped-threads, r=joshtriplett

Stabilize scoped threads.

Tracking issue: https://github.com/rust-lang/rust/issues/93203

FCP finished here: https://github.com/rust-lang/rust/issues/93203#issuecomment-1152249466

2 years agoRollup merge of #97991 - davidkna:fix-macos-strip, r=joshtriplett
Dylan DPC [Sun, 12 Jun 2022 10:14:28 +0000 (12:14 +0200)]
Rollup merge of #97991 - davidkna:fix-macos-strip, r=joshtriplett

Use safer `strip=symbols`-flag for dylibs on macOS

Closes #93988

To safely strip dylibs on macOS, the `-x` flag is needed per the manpage (see the discussion here: https://github.com/rust-lang/rust/issues/93988#issuecomment-1042574854).

Thus, when the current `crate_type` is producing a dylib (I assume this is the case for proc macros) use the `-x` flag instead of bare `strip` for `strip=symbols`.

2 years agoRollup merge of #97970 - dtolnay:terminate, r=joshtriplett
Dylan DPC [Sun, 12 Jun 2022 10:14:27 +0000 (12:14 +0200)]
Rollup merge of #97970 - dtolnay:terminate, r=joshtriplett

Fix Termination impl panic on closed stderr

Repro:

```rust
#![feature(backtrace)]

use std::backtrace::Backtrace;
use std::io::{self, Write as _};
use std::panic::{self, PanicInfo};

#[derive(Debug)]
pub struct Error;

fn panic_hook(panic_info: &PanicInfo) {
    let backtrace = Backtrace::force_capture();
    let _ = write!(io::stdout(), "{}\n{}", panic_info, backtrace);
}

fn main() -> Result<(), Error> {
    panic::set_hook(Box::new(panic_hook));
    let stderr = io::stderr();
    let mut stderr = stderr.lock();
    while stderr.write_all(b".\n").is_ok() {}
    Err(Error)
}
```

### Before:

```console
$ target/debug/repro 3>&2 2>&1 1>&3 | head
.
.
.
.
.
.
.
.
.
.
panicked at 'failed printing to stderr: Broken pipe (os error 32)', library/std/src/io/stdio.rs:1016:9
   0: testing::panic_hook
             at ./src/main.rs:11:21
   1: core::ops::function::Fn::call
             at /git/rust/library/core/src/ops/function.rs:77:5
   2: std::panicking::rust_panic_with_hook
   3: std::panicking::begin_panic_handler::{{closure}}
   4: std::sys_common::backtrace::__rust_end_short_backtrace
   5: rust_begin_unwind
   6: core::panicking::panic_fmt
   7: std::io::stdio::_eprint
   8: <core::result::Result<!,E> as std::process::Termination>::report
             at /git/rust/library/std/src/process.rs:2164:9
   9: <core::result::Result<(),E> as std::process::Termination>::report
             at /git/rust/library/std/src/process.rs:2148:25
  10: std::rt::lang_start::{{closure}}
             at /git/rust/library/std/src/rt.rs:145:18
  11: std::rt::lang_start_internal
  12: std::rt::lang_start
             at /git/rust/library/std/src/rt.rs:144:17
  13: main
  14: __libc_start_main
             at /build/glibc-SzIz7B/glibc-2.31/csu/../csu/libc-start.c:308:16
  15: _start
```

### After:

```console
$ target/debug/repro 3>&2 2>&1 1>&3 | head
.
.
.
.
.
.
.
.
.
.
```

2 years agoRollup merge of #97921 - bvanjoi:docs-example-str-replace, r=Dylan-DPC
Dylan DPC [Sun, 12 Jun 2022 10:14:26 +0000 (12:14 +0200)]
Rollup merge of #97921 - bvanjoi:docs-example-str-replace, r=Dylan-DPC

additional docs example for replace **all** of str

2 years agouse `create_snapshot_for_diagnostic` instead of `clone`
Takayuki Maeda [Sun, 12 Jun 2022 08:27:36 +0000 (17:27 +0900)]
use `create_snapshot_for_diagnostic` instead of `clone`

2 years agoAuto merge of #97993 - lengyijun:clean-variance, r=compiler-errors
bors [Sun, 12 Jun 2022 06:43:18 +0000 (06:43 +0000)]
Auto merge of #97993 - lengyijun:clean-variance, r=compiler-errors

clean variance test

Remove unnecessary generic parameter.

2 years agoTry out `yeet` in the MIR interpreter
Scott McMurray [Sun, 29 May 2022 08:19:52 +0000 (01:19 -0700)]
Try out `yeet` in the MIR interpreter

2 years agoMerge arms in borrowed locals transfer function
Tomasz Miąsko [Tue, 7 Jun 2022 00:00:00 +0000 (00:00 +0000)]
Merge arms in borrowed locals transfer function

2 years agoRemove duplicated implementations of borrowed locals analysis
Tomasz Miąsko [Mon, 6 Jun 2022 00:00:00 +0000 (00:00 +0000)]
Remove duplicated implementations of borrowed locals analysis

2 years agoAuto merge of #97778 - compiler-errors:misc-diagnostics-tidy, r=cjgillot
bors [Sun, 12 Jun 2022 00:47:54 +0000 (00:47 +0000)]
Auto merge of #97778 - compiler-errors:misc-diagnostics-tidy, r=cjgillot

Tidy up miscellaneous bounds suggestions

Just some small fixes to suggestions

- Generalizes `Ty::is_suggestable` into a `TypeVisitor`, so that it can be called on things other than `Ty`
- Makes `impl Trait` in arg position no longer suggestible (generalizing the fix in #97640)
- Fixes `impl Trait` not being replaced with fresh type param when it's deeply nested in function signature (fixes #97760)
- Fixes some poor handling of `where` clauses with no predicates (also #97760)
- Uses `InferCtxt::resolve_numeric_literals_with_default` so we suggest `i32` instead of `{integer}` (fixes #97677)

Sorry there aren't many tests the fixes. Most of them would just be duplicates of other tests with empty `where` clauses or `impl Trait` in arg position instead of generic params. Let me know if you'd want more test coverage.

2 years agoAddress comments
Michael Goulet [Tue, 7 Jun 2022 04:01:06 +0000 (21:01 -0700)]
Address comments

2 years agoProperly replace `impl Trait` in fn args, turn {integer} to i32
Michael Goulet [Mon, 6 Jun 2022 01:56:26 +0000 (18:56 -0700)]
Properly replace `impl Trait` in fn args, turn {integer} to i32

2 years agoMake is_suggestable work on all TypeFoldable
Michael Goulet [Mon, 6 Jun 2022 01:45:45 +0000 (18:45 -0700)]
Make is_suggestable work on all TypeFoldable

2 years agoHandle empty where-clause better
Michael Goulet [Mon, 6 Jun 2022 00:37:45 +0000 (17:37 -0700)]
Handle empty where-clause better

2 years agoMake Ty::is_suggestable use a visitor
Michael Goulet [Sun, 5 Jun 2022 20:06:37 +0000 (13:06 -0700)]
Make Ty::is_suggestable use a visitor

2 years agoValuePairs::PolyTraitRefs should be called 'trait'
Michael Goulet [Sat, 11 Jun 2022 23:25:35 +0000 (16:25 -0700)]
ValuePairs::PolyTraitRefs should be called 'trait'

2 years agoAuto merge of #97705 - compiler-errors:guide-inference, r=lcnr
bors [Sat, 11 Jun 2022 22:32:20 +0000 (22:32 +0000)]
Auto merge of #97705 - compiler-errors:guide-inference, r=lcnr

Fix inference issues with unconstrained base expr in `type_changing_struct_update`

Use fresh infer vars to guide inference along in `type_changing_struct_update`.

Fixes #96878

2 years agoAuto merge of #95880 - cjgillot:def-ident-span, r=petrochenkov
bors [Sat, 11 Jun 2022 20:08:48 +0000 (20:08 +0000)]
Auto merge of #95880 - cjgillot:def-ident-span, r=petrochenkov

Handle `def_ident_span` like `def_span`.

`def_ident_span` had an ad-hoc status in the compiler.

This PR refactors it to be a first-class citizen like `def_span`:
- it gets encoded in the main metadata loop, instead of the visitor;
- its implementation is updated to mirror the one of `def_span`.

We do not remove the `Option` in the return type, since some items do not have an ident, AnonConsts for instance.

2 years agoAuto merge of #97996 - matthiaskrgr:rollup-bvbjlid, r=matthiaskrgr
bors [Sat, 11 Jun 2022 17:49:22 +0000 (17:49 +0000)]
Auto merge of #97996 - matthiaskrgr:rollup-bvbjlid, r=matthiaskrgr

Rollup of 5 pull requests

Successful merges:

 - #97904 (Small grammar fix in the compile_error documentation)
 - #97943 (line 1352, change `self` to `*self`, other to `*other`)
 - #97969 (Make -Cpasses= only apply to pre-link optimization)
 - #97990 (Add more eslint checks)
 - #97994 (feat(fix): update some links in `hir.rs`)

Failed merges:

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

2 years agoStop using string equality to check if ADT is a union
Michael Goulet [Sat, 11 Jun 2022 17:35:36 +0000 (10:35 -0700)]
Stop using string equality to check if ADT is a union

2 years agoUse if-let instead of match with guard
Michael Goulet [Sat, 11 Jun 2022 16:57:33 +0000 (09:57 -0700)]
Use if-let instead of match with guard

2 years agoGuide inference along during type_changing_struct_update
Michael Goulet [Fri, 3 Jun 2022 19:54:11 +0000 (12:54 -0700)]
Guide inference along during type_changing_struct_update

2 years agoRollup merge of #97994 - kyoto7250:fix_hir_link, r=cjgillot
Matthias Krüger [Sat, 11 Jun 2022 16:05:36 +0000 (18:05 +0200)]
Rollup merge of #97994 - kyoto7250:fix_hir_link, r=cjgillot

feat(fix): update some links in `hir.rs`

This PR fixes some links in `hir.rs`.

The relative paths seem to be different from when this comment was committed.

ref:

- related commit
https://github.com/rust-lang/rust/commit/1e6adad33f3664d7f09742b73fd97aca63d6406f

- current page
https://doc.rust-lang.org/beta/nightly-rustc/rustc_hir/hir/enum.QPath.html
https://doc.rust-lang.org/beta/nightly-rustc/rustc_hir/hir/enum.ExprKind.html#variant.MethodCall

Thank you in advance.

2 years agoRollup merge of #97990 - GuillaumeGomez:eslint-checks, r=Dylan-DPC
Matthias Krüger [Sat, 11 Jun 2022 16:05:35 +0000 (18:05 +0200)]
Rollup merge of #97990 - GuillaumeGomez:eslint-checks, r=Dylan-DPC

Add more eslint checks

List of newly added checks:

 * [no-lonely-if](https://eslint.org/docs/rules/no-lonely-if)
 * [no-mixed-operators](https://eslint.org/docs/rules/no-mixed-operators)
 * [no-multi-assign](https://eslint.org/docs/rules/no-multi-assign)
 * [no-return-assign](https://eslint.org/docs/rules/no-return-assign)
 * [no-script-url](https://eslint.org/docs/rules/no-script-url)

r? `@Dylan-DPC`

2 years agoRollup merge of #97969 - inglorion:prelinkpasses, r=nikic
Matthias Krüger [Sat, 11 Jun 2022 16:05:34 +0000 (18:05 +0200)]
Rollup merge of #97969 - inglorion:prelinkpasses, r=nikic

Make -Cpasses= only apply to pre-link optimization

This change causes passes specified in -Cpasses= to be applied
only during pre-link optimization, not during LTO. This avoids
such passes running multiple times, which they may not be
designed for.

Fixes https://github.com/rust-lang/rust/issues/97713

2 years agoRollup merge of #97943 - Warrenren:master, r=Dylan-DPC
Matthias Krüger [Sat, 11 Jun 2022 16:05:33 +0000 (18:05 +0200)]
Rollup merge of #97943 - Warrenren:master, r=Dylan-DPC

line 1352, change `self` to `*self`, other to `*other`

The current code will not results bug, but it difficult to understand. These code result to call &f32::partial_cmp(), and the performance will be lower than the changed code. I'm not sure why the current code don't use (*self) (*other), if you have some idea, please let me know.

2 years agoRollup merge of #97904 - est31:master, r=Dylan-DPC
Matthias Krüger [Sat, 11 Jun 2022 16:05:32 +0000 (18:05 +0200)]
Rollup merge of #97904 - est31:master, r=Dylan-DPC

Small grammar fix in the compile_error documentation

2 years agoAuto merge of #97989 - Dylan-DPC:rollup-wol1a1y, r=Dylan-DPC
bors [Sat, 11 Jun 2022 15:08:41 +0000 (15:08 +0000)]
Auto merge of #97989 - Dylan-DPC:rollup-wol1a1y, r=Dylan-DPC

Rollup of 5 pull requests

Successful merges:

 - #97761 (validating the vtable can lead to Stacked Borrows errors)
 - #97789 (Fix #71363's test by adding `-Z translate-remapped-path-to-local-path=no`)
 - #97913 (Wrap `HirId`s of locals into `LocalVarId`s for THIR nodes)
 - #97979 (Fix typos in Provider API docs)
 - #97987 (remove an unnecessary `String`)

Failed merges:

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

2 years agofeat(fix): update some links
kyoto7250 [Sat, 11 Jun 2022 14:19:58 +0000 (23:19 +0900)]
feat(fix): update some links

2 years agoStabilize scoped threads.
Mara Bos [Thu, 9 Jun 2022 08:53:45 +0000 (10:53 +0200)]
Stabilize scoped threads.

2 years agoclean variance test
lengyijun [Sat, 11 Jun 2022 12:37:39 +0000 (12:37 +0000)]
clean variance test

2 years agoAdd eslint rule "no-script-url"
Guillaume Gomez [Sat, 11 Jun 2022 11:23:08 +0000 (13:23 +0200)]
Add eslint rule "no-script-url"

2 years agoAdd eslint rule "no-return-assign"
Guillaume Gomez [Sat, 11 Jun 2022 11:22:12 +0000 (13:22 +0200)]
Add eslint rule "no-return-assign"

2 years agoUse safer `strip=symbols`-flag for dylibs on macOS
David Knaack [Wed, 8 Jun 2022 09:42:37 +0000 (11:42 +0200)]
Use safer `strip=symbols`-flag for dylibs on macOS

2 years agoAdd eslint rule "no-multi-assign"
Guillaume Gomez [Sat, 11 Jun 2022 11:19:51 +0000 (13:19 +0200)]
Add eslint rule "no-multi-assign"

2 years agoAdd eslint rule "no-mixed-operator"
Guillaume Gomez [Sat, 11 Jun 2022 11:19:29 +0000 (13:19 +0200)]
Add eslint rule "no-mixed-operator"

2 years agoAdd eslint rule "no-lonely-if"
Guillaume Gomez [Sat, 11 Jun 2022 11:16:23 +0000 (13:16 +0200)]
Add eslint rule "no-lonely-if"

2 years agoRollup merge of #97987 - TaKO8Ki:remove-unnecessary-format-macro, r=Dylan-DPC
Dylan DPC [Sat, 11 Jun 2022 10:59:30 +0000 (12:59 +0200)]
Rollup merge of #97987 - TaKO8Ki:remove-unnecessary-format-macro, r=Dylan-DPC

remove an unnecessary `String`

2 years agoRollup merge of #97979 - ben0x539:providerdocs, r=Dylan-DPC
Dylan DPC [Sat, 11 Jun 2022 10:59:29 +0000 (12:59 +0200)]
Rollup merge of #97979 - ben0x539:providerdocs, r=Dylan-DPC

Fix typos in Provider API docs

2 years agoRollup merge of #97913 - dingxiangfei2009:wrap-into-local-var-id, r=nikomatsakis
Dylan DPC [Sat, 11 Jun 2022 10:59:28 +0000 (12:59 +0200)]
Rollup merge of #97913 - dingxiangfei2009:wrap-into-local-var-id, r=nikomatsakis

Wrap `HirId`s of locals into `LocalVarId`s for THIR nodes

This is the first effort to decouple `HirId`s from THIR. `HirId` is not very relevant in building THIR and MIR.

Based on the changeset, I think there are a few other pending refactoring that we could perform after this, in case we want to eliminate use of `HirId` in THIR.
- `TypeckResults::closure_min_captures` could be remapped from the variable `HirId`s to `LocalVarId` while the THIR is getting built.
- Use of `ScopeTree::var_scope` could be eliminated as well, since we will consider deprecating `ScopeTree` in the future.

2 years agoRollup merge of #97789 - ferrocene:pa-fix-issue-71363-test, r=cjgillot
Dylan DPC [Sat, 11 Jun 2022 10:59:27 +0000 (12:59 +0200)]
Rollup merge of #97789 - ferrocene:pa-fix-issue-71363-test, r=cjgillot

Fix #71363's test by adding `-Z translate-remapped-path-to-local-path=no`

The test relies on `library/std/src/error.rs` not corresponding to a local path, but remapping might still find the related local file of a remapped path. To fix the test, this PR adds a new `-Z` flag to disable finding the corresponding local path of a remapped path.

2 years agoRollup merge of #97761 - RalfJung:vtable-validation, r=cjgillot
Dylan DPC [Sat, 11 Jun 2022 10:59:26 +0000 (12:59 +0200)]
Rollup merge of #97761 - RalfJung:vtable-validation, r=cjgillot

validating the vtable can lead to Stacked Borrows errors

Fixes https://github.com/rust-lang/miri/issues/2123

2 years agoremove an unnecessary format macro
Takayuki Maeda [Sat, 11 Jun 2022 09:35:10 +0000 (18:35 +0900)]
remove an unnecessary format macro

2 years agoAuto merge of #97903 - est31:unused_macro_rules_compile_error, r=petrochenkov
bors [Sat, 11 Jun 2022 08:46:21 +0000 (08:46 +0000)]
Auto merge of #97903 - est31:unused_macro_rules_compile_error, r=petrochenkov

Never regard macro rules with compile_error! invocations as unused

The very point of compile_error! is to never be reached, and one of
the use cases of the macro, currently also listed as examples in the
documentation of compile_error, is to create nicer errors for wrong
macro invocations. Thus, we should never warn about unused macro arms
that contain invocations of compile_error.

See also https://github.com/rust-lang/rust/pull/96150#issuecomment-1126599107 and the discussion after that.

Furthermore, the PR also contains two commits to silence `unused_macro_rules` when a macro has an invalid rule, and to add a test that `unused_macros` does not behave badly in the same situation.

r? `@petrochenkov` as I've talked to them about this

2 years agoAuto merge of #97980 - Dylan-DPC:rollup-l8exe4b, r=Dylan-DPC
bors [Sat, 11 Jun 2022 06:17:54 +0000 (06:17 +0000)]
Auto merge of #97980 - Dylan-DPC:rollup-l8exe4b, r=Dylan-DPC

Rollup of 6 pull requests

Successful merges:

 - #96868 (Stabilize explicit_generic_args_with_impl_trait)
 - #97703 (some additional `need_type_info.rs` cleanup)
 - #97812 (Suggest to swap a struct and a trait in trait impls)
 - #97958 (ExitStatus docs fixups)
 - #97967 (Mention `infer::Trace` methods on `infer::At` methods' docs)
 - #97972 (Update #[doc(html_playground_url)] documentation to mention what the request will be)

Failed merges:

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

2 years agoRollup merge of #97972 - hamza1311:patch-1, r=Dylan-DPC
Dylan DPC [Sat, 11 Jun 2022 05:42:17 +0000 (07:42 +0200)]
Rollup merge of #97972 - hamza1311:patch-1, r=Dylan-DPC

Update #[doc(html_playground_url)] documentation to mention what the request will be

The [documentation for `#![doc(html_playground_url = "_")]`](https://doc.rust-lang.org/rustdoc/write-documentation/the-doc-attribute.html#html_playground_url) specifies that a request will be made to the given URL but does specify what the contents of the request will be. This PR updates the documentation to include the query parameters through which the code is provided to the playground.

2 years agoRollup merge of #97967 - BoxyUwU:at_docs_mention_trace, r=compiler-errors
Dylan DPC [Sat, 11 Jun 2022 05:42:16 +0000 (07:42 +0200)]
Rollup merge of #97967 - BoxyUwU:at_docs_mention_trace, r=compiler-errors

Mention `infer::Trace` methods on `infer::At` methods' docs

I missed that you could do `infcx.at(...).trace(...).eq(a, b)` when `a` and `b` dont implement `ToTrace` but does implement `Relate` these docs would have helped see that :sweat_smile:

2 years agoRollup merge of #97958 - mkroening:exit-status-docs, r=Dylan-DPC
Dylan DPC [Sat, 11 Jun 2022 05:42:15 +0000 (07:42 +0200)]
Rollup merge of #97958 - mkroening:exit-status-docs, r=Dylan-DPC

ExitStatus docs fixups

This fixes a typo, adds a link and adds code-quotes in the ExitStatus docs.

2 years agoRollup merge of #97812 - TaKO8Ki:suggest-to-swap-struct-and-trait, r=estebank
Dylan DPC [Sat, 11 Jun 2022 05:42:14 +0000 (07:42 +0200)]
Rollup merge of #97812 - TaKO8Ki:suggest-to-swap-struct-and-trait, r=estebank

Suggest to swap a struct and a trait in trait impls

closes #89590

2 years agoRollup merge of #97703 - lcnr:post-89862, r=estebank
Dylan DPC [Sat, 11 Jun 2022 05:42:13 +0000 (07:42 +0200)]
Rollup merge of #97703 - lcnr:post-89862, r=estebank

some additional `need_type_info.rs` cleanup

also fixes #97698, fixes #97806

cc `@estebank`

2 years agoRollup merge of #96868 - nrc:turbo-stable, r=jhpratt,nbdd0121,nagisa
Dylan DPC [Sat, 11 Jun 2022 05:42:12 +0000 (07:42 +0200)]
Rollup merge of #96868 - nrc:turbo-stable, r=jhpratt,nbdd0121,nagisa

Stabilize explicit_generic_args_with_impl_trait

This is a stabilisation PR for `explicit_generic_args_with_impl_trait`.

* [tracking issue](https://github.com/rust-lang/rust/issues/83701)
  - [Stabilisation report](https://github.com/rust-lang/rust/issues/83701#issuecomment-1109949897)
  - [FCP entered](https://github.com/rust-lang/rust/issues/83701#issuecomment-1120285703)
* [implementation PR](https://github.com/rust-lang/rust/pull/86176)
* [Reference PR](https://github.com/rust-lang/reference/pull/1212)
* There is no mention of using the turbofish operator in the book (other than an entry in the operator list in the appendix), so there is no documentation to change/add there, unless we felt like we should add a section on using turbofish, but that seems orthogonal to `explicit_generic_args_with_impl_trait`

2 years agoAuto merge of #97905 - nnethercote:revert-infallible-encoder, r=bjorn3
bors [Sat, 11 Jun 2022 04:00:23 +0000 (04:00 +0000)]
Auto merge of #97905 - nnethercote:revert-infallible-encoder, r=bjorn3

Revert part of #94372 to improve performance

#94732 was supposed to give small but widespread performance improvements, as judged from three per-merge performance runs. But the performance run that occurred after merging included a roughly equal number of improvements and regressions, for unclear reasons.

This PR is for a test run reverting those changes, to see what happens.

r? `@ghost`

2 years agoFix typos in Provider API docs
Benjamin Herr [Sat, 11 Jun 2022 03:53:49 +0000 (20:53 -0700)]
Fix typos in Provider API docs

2 years agoUpdate cmp.rs
Warrenren [Sat, 11 Jun 2022 03:04:27 +0000 (11:04 +0800)]
Update cmp.rs

line 1352, delete parentheses for reviewers asking for it.

2 years agoAuto merge of #97648 - lcnr:bound-var-replacer, r=jackh726
bors [Sat, 11 Jun 2022 01:39:43 +0000 (01:39 +0000)]
Auto merge of #97648 - lcnr:bound-var-replacer, r=jackh726

cleanup bound variable handling

each commit should be pretty self-contained and hopefully straightforward to review.

I've added 677ec23a8dbf8ff5f1c03ccebd46f8b85e5ec1fc so that we can stop returning the region map from `replace_bound_vars_with_fresh_vars` in the following commit.

r? `@nikomatsakis` or `@jackh726`

2 years agoAuto merge of #97968 - matthiaskrgr:rollup-qtd4i5h, r=matthiaskrgr
bors [Fri, 10 Jun 2022 22:50:17 +0000 (22:50 +0000)]
Auto merge of #97968 - matthiaskrgr:rollup-qtd4i5h, r=matthiaskrgr

Rollup of 6 pull requests

Successful merges:

 - #93331 (refactor write_output_file to merge two invocation paths into one.)
 - #97928 (Removes debug settings from wasm32_unknown_emscripten default link args)
 - #97940 (Use relative links instead of linking to doc.rust-lang.org when possible)
 - #97941 (nit: Fixed several error_codes/Exxxx.md messages which used UpperCamelCase…)
 - #97953 (Add regression test for #54378)
 - #97957 (Make `std::` prefix suggestion test `run-rustfix`)

Failed merges:

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

2 years agoUpdate the-doc-attribute.md
Muhammad Hamza [Fri, 10 Jun 2022 22:10:29 +0000 (03:10 +0500)]
Update the-doc-attribute.md

2 years agoUpdate the-doc-attribute.md
Muhammad Hamza [Fri, 10 Jun 2022 21:03:33 +0000 (02:03 +0500)]
Update the-doc-attribute.md

2 years agothe day that i make a PR without a tidy error..
Ellen [Fri, 10 Jun 2022 20:47:00 +0000 (21:47 +0100)]
the day that i make a PR without a tidy error..

2 years agoDo not panic in Termination impl on closed stderr
David Tolnay [Fri, 10 Jun 2022 20:37:52 +0000 (13:37 -0700)]
Do not panic in Termination impl on closed stderr

Repro:

    #![feature(backtrace)]

    use std::backtrace::Backtrace;
    use std::io::{self, Write as _};
    use std::panic::{self, PanicInfo};

    #[derive(Debug)]
    pub struct Error;

    fn panic_hook(panic_info: &PanicInfo) {
        let backtrace = Backtrace::force_capture();
        let _ = write!(io::stdout(), "{}\n{}", panic_info, backtrace);
    }

    fn main() -> Result<(), Error> {
        panic::set_hook(Box::new(panic_hook));
        let stderr = io::stderr();
        let mut stderr = stderr.lock();
        while stderr.write_all(b".\n").is_ok() {}
        Err(Error)
    }

Before:

    $ RUST_BACKTRACE=1 target/debug/testing 3>&2 2>&1 1>&3 | head
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
    panicked at 'failed printing to stderr: Broken pipe (os error 32)', library/std/src/io/stdio.rs:1016:9
       0: testing::panic_hook
                 at ./src/main.rs:11:21
       1: core::ops::function::Fn::call
                 at /git/rust/library/core/src/ops/function.rs:77:5
       2: std::panicking::rust_panic_with_hook
       3: std::panicking::begin_panic_handler::{{closure}}
       4: std::sys_common::backtrace::__rust_end_short_backtrace
       5: rust_begin_unwind
       6: core::panicking::panic_fmt
       7: std::io::stdio::_eprint
       8: <core::result::Result<!,E> as std::process::Termination>::report
                 at /git/rust/library/std/src/process.rs:2164:9
       9: <core::result::Result<(),E> as std::process::Termination>::report
                 at /git/rust/library/std/src/process.rs:2148:25
      10: std::rt::lang_start::{{closure}}
                 at /git/rust/library/std/src/rt.rs:145:18
      11: std::rt::lang_start_internal
      12: std::rt::lang_start
                 at /git/rust/library/std/src/rt.rs:144:17
      13: main
      14: __libc_start_main
                 at /build/glibc-SzIz7B/glibc-2.31/csu/../csu/libc-start.c:308:16
      15: _start

After:

    $ RUST_BACKTRACE=1 target/debug/testing 3>&2 2>&1 1>&3 | head
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .

2 years agoMake -Cpasses= only apply to pre-link optimization
Bob Haarman [Fri, 10 Jun 2022 18:53:25 +0000 (11:53 -0700)]
Make -Cpasses= only apply to pre-link optimization

This change causes passes specified in -Cpasses= to be applied
only during pre-link optimization, not during LTO. This avoids
such passes running multiple times, which they may not be
designed for.

Fixes https://github.com/rust-lang/rust/issues/97713

2 years agoRollup merge of #97957 - estebank:spancito, r=compiler-errors
Matthias Krüger [Fri, 10 Jun 2022 20:32:34 +0000 (22:32 +0200)]
Rollup merge of #97957 - estebank:spancito, r=compiler-errors

Make `std::` prefix suggestion test `run-rustfix`

2 years agoRollup merge of #97953 - JohnTitor:issue-54378, r=compiler-errors
Matthias Krüger [Fri, 10 Jun 2022 20:32:33 +0000 (22:32 +0200)]
Rollup merge of #97953 - JohnTitor:issue-54378, r=compiler-errors

Add regression test for #54378

Closes #54378
r? `@compiler-errors`

Signed-off-by: Yuki Okushi <jtitor@2k36.org>
2 years agoRollup merge of #97941 - CorinJG:error_naming_conventions, r=compiler-errors
Matthias Krüger [Fri, 10 Jun 2022 20:32:32 +0000 (22:32 +0200)]
Rollup merge of #97941 - CorinJG:error_naming_conventions, r=compiler-errors

nit: Fixed several error_codes/Exxxx.md messages which used UpperCamelCase…

… instead of snake_case for module names

2 years agoRollup merge of #97940 - GuillaumeGomez:relative-link, r=Dylan-DPC
Matthias Krüger [Fri, 10 Jun 2022 20:32:31 +0000 (22:32 +0200)]
Rollup merge of #97940 - GuillaumeGomez:relative-link, r=Dylan-DPC

Use relative links instead of linking to doc.rust-lang.org when possible

Part of https://github.com/rust-lang/rust/issues/97918.

2 years agoRollup merge of #97928 - hoodmane:emscripten-no-assertions, r=tlively
Matthias Krüger [Fri, 10 Jun 2022 20:32:30 +0000 (22:32 +0200)]
Rollup merge of #97928 - hoodmane:emscripten-no-assertions, r=tlively

Removes debug settings from wasm32_unknown_emscripten default link args

This is a debug setting. We should only make debug builds if user requests
a debug build. Currently this is inserted in release builds.

Furthermore, it would be better to insert these settings in --pre-link-args
because then it would be possible to override them if appropriate. Because
these are inserted at the end, it is necessary to patch emscripten to remove
them.

``@sbc100``

2 years agoRollup merge of #93331 - pnkfelix:refactor-write-output-file, r=oli-obk
Matthias Krüger [Fri, 10 Jun 2022 20:32:29 +0000 (22:32 +0200)]
Rollup merge of #93331 - pnkfelix:refactor-write-output-file, r=oli-obk

refactor write_output_file to merge two invocation paths into one.

this is a trivial refactor I did while I was investigating issue #91671.

2 years agoa
Ellen [Fri, 10 Jun 2022 20:26:53 +0000 (21:26 +0100)]
a

2 years agodocs: Consistently mark ExitStatus as code
Martin Kröning [Fri, 10 Jun 2022 18:26:41 +0000 (20:26 +0200)]
docs: Consistently mark ExitStatus as code

2 years agodocs: Link to ExitCode instead of ExitStatus in ExitStatus
Martin Kröning [Fri, 10 Jun 2022 18:25:36 +0000 (20:25 +0200)]
docs: Link to ExitCode instead of ExitStatus in ExitStatus

2 years agodocs: Fix typo in ExitStatus
Martin Kröning [Fri, 10 Jun 2022 18:24:45 +0000 (20:24 +0200)]
docs: Fix typo in ExitStatus

2 years agoIntroduce opt_ident.
Camille GILLOT [Tue, 19 Apr 2022 19:25:26 +0000 (21:25 +0200)]
Introduce opt_ident.

2 years agoAssert def_ident_span presence.
Camille GILLOT [Tue, 19 Apr 2022 19:25:15 +0000 (21:25 +0200)]
Assert def_ident_span presence.

2 years agoBless tests.
Camille GILLOT [Sat, 9 Apr 2022 16:15:35 +0000 (18:15 +0200)]
Bless tests.

2 years agoEncode def_ident_span using the query.
Camille GILLOT [Sun, 3 Apr 2022 13:10:26 +0000 (15:10 +0200)]
Encode def_ident_span using the query.

2 years agoCall def_span inside span_if_local.
Camille GILLOT [Wed, 30 Mar 2022 14:51:25 +0000 (16:51 +0200)]
Call def_span inside span_if_local.

2 years agoImplement def_ident_span in rustc_middle.
Camille GILLOT [Fri, 8 Apr 2022 16:53:16 +0000 (18:53 +0200)]
Implement def_ident_span in rustc_middle.

2 years agoAdd regression test for #54378
Yuki Okushi [Fri, 10 Jun 2022 16:58:16 +0000 (01:58 +0900)]
Add regression test for #54378

Signed-off-by: Yuki Okushi <jtitor@2k36.org>
2 years agoClarify `#[derive(PartialEq)]` on enums
Alan Egerton [Fri, 10 Jun 2022 15:26:00 +0000 (16:26 +0100)]
Clarify `#[derive(PartialEq)]` on enums

Fixes #97945

2 years agoE0577 fixed Sea struct CamelCase/sea module snake_case
CorinJG [Fri, 10 Jun 2022 13:21:40 +0000 (14:21 +0100)]
E0577 fixed Sea struct CamelCase/sea module snake_case

2 years agouse FxHashMap instead of BTreeMap
lcnr [Fri, 10 Jun 2022 08:09:05 +0000 (10:09 +0200)]
use FxHashMap instead of BTreeMap

2 years agoAuto merge of #96837 - tmiasko:stdio-fcntl, r=joshtriplett
bors [Fri, 10 Jun 2022 11:50:39 +0000 (11:50 +0000)]
Auto merge of #96837 - tmiasko:stdio-fcntl, r=joshtriplett

Use `fcntl(fd, F_GETFD)` to detect if standard streams are open

In the previous implementation, if the standard streams were open,
but the RLIMIT_NOFILE value was below three, the poll would fail
with EINVAL:

> ERRORS: EINVAL The nfds value exceeds the RLIMIT_NOFILE value.

Switch to the existing fcntl based implementation to avoid the issue.

Fixes #96621.

2 years agoline 1352, change self to (*self), other to (*other)
Warrenren [Fri, 10 Jun 2022 11:08:03 +0000 (19:08 +0800)]
line 1352, change self to (*self), other to (*other)

The current code will not results bug, but it difficult to understand. These code result to call &f32::partial_cmp(), and the performance will be lower than the changed code. I'm not sure why the current code don't use (*self) (*other), if you have some idea, please let me know.

2 years agoFixed several error_codes/Exxxx.md messages which used UpperCamelCase instead of...
CorinJG [Fri, 10 Jun 2022 10:25:47 +0000 (11:25 +0100)]
Fixed several error_codes/Exxxx.md messages which used UpperCamelCase instead of snake_case for module names

2 years agoUse relative links instead of linking to doc.rust-lang.org when possible
Guillaume Gomez [Fri, 10 Jun 2022 09:57:53 +0000 (11:57 +0200)]
Use relative links instead of linking to doc.rust-lang.org when possible

2 years agoAuto merge of #97939 - JohnTitor:rollup-79pxupb, r=JohnTitor
bors [Fri, 10 Jun 2022 09:05:50 +0000 (09:05 +0000)]
Auto merge of #97939 - JohnTitor:rollup-79pxupb, r=JohnTitor

Rollup of 6 pull requests

Successful merges:

 - #97718 (Fix `delayed_good_path_bug` ice for expected diagnostics (RFC 2383))
 - #97876 (update docs for `std::future::IntoFuture`)
 - #97888 (Don't use __gxx_personality_v0 in panic_unwind on emscripten target)
 - #97922 (Remove redundant calls to reserve in impl Write for VecDeque)
 - #97927 (Do not introduce bindings for types and consts in HRTB.)
 - #97937 (Fix a typo in `test/ui/hrtb/hrtb-just-for-static.rs`)

Failed merges:

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