]> git.lizzy.rs Git - rust.git/log
rust.git
4 years agoRollup merge of #68791 - mark-i-m:proper-linkcheck, r=ehuss,JohnTitor
Dylan DPC [Thu, 6 Feb 2020 21:38:34 +0000 (22:38 +0100)]
Rollup merge of #68791 - mark-i-m:proper-linkcheck, r=ehuss,JohnTitor

implement proper linkchecker hardening

r? @JohnTitor

This implements proper linkcheck filtering... we might need to fiddle with a bit to adjust what is or isn't filtered, but this seems to work reasonable locally.

4 years agoRollup merge of #68524 - jonas-schievink:generator-resume-arguments, r=Zoxc
Dylan DPC [Thu, 6 Feb 2020 21:38:33 +0000 (22:38 +0100)]
Rollup merge of #68524 - jonas-schievink:generator-resume-arguments, r=Zoxc

Generator Resume Arguments

cc https://github.com/rust-lang/rust/issues/43122 and https://github.com/rust-lang/rust/issues/56974

Blockers:
* [x] Fix miscompilation when resume argument is live across a yield point (https://github.com/rust-lang/rust/pull/68524#issuecomment-578459069)
* [x] Fix 10% compile time regression in `await-call-tree` benchmarks (https://github.com/rust-lang/rust/pull/68524#issuecomment-578487162)
  * [x] Fix remaining 1-3% regression (https://github.com/rust-lang/rust/pull/68524#issuecomment-579566255) - resolved (https://github.com/rust-lang/rust/pull/68524#issuecomment-581144901)
* [x] Make dropck rules account for resume arguments (https://github.com/rust-lang/rust/pull/68524#issuecomment-578541137)

Follow-up work:
* Change async/await desugaring to make use of this feature
* Rewrite [`box_region.rs`](https://github.com/rust-lang/rust/blob/3d8778d767f0dde6fe2bc9459f21ead8e124d8cb/src/librustc_data_structures/box_region.rs) to use resume arguments (this shows up in profiles too)

4 years agoRollup merge of #67359 - eddyb:macro-backtrace-all-the-same, r=petrochenkov
Dylan DPC [Thu, 6 Feb 2020 21:38:31 +0000 (22:38 +0100)]
Rollup merge of #67359 - eddyb:macro-backtrace-all-the-same, r=petrochenkov

Rename -Zexternal-macro-backtrace to -Zmacro-backtrace and clean up implementation.

This is my attempt at dealing with https://github.com/rust-lang/rust/pull/66364#issuecomment-565517232, although I'm not sure it's the least disruptive one.

The behavior of `-Zexternal-macro-backtrace` was already to enable full macro backtraces for *all* macros, the only part of it that was specific to cross-crate macros was showing this when *not used*:
```
note: this error originates in a macro outside of the current crate
  (in Nightly builds, run with -Z external-macro-backtrace for more info)
```

After this PR:
* the flag is renamed to `-Zmacro-backtrace`
  * do we need to have a deprecation period? cc @rust-lang/compiler
* the message informing you about the flag is always shown when an expansion of a bang macro/attribute/derive is involved, not just cross-crate ones
  * this accounts for most of the changes in tests
  * we could perhaps only show it for the bang macro case? feels odd for derives
* `fix_multispans_in_std_macros` is split into `fix_multispans_in_extern_macros` and `render_multispans_macro_backtrace`
  * this roughly reverts the non-behavioral parts of #46605, which combined the two functionalities
  * not sure where the old `std_macros` name came from, perhaps the `<std macros>` synthetic "file"? even then, odd that `std` specifically was mentioned
* `render_multispan_macro_backtrace`, by default (i.e. without `-Zmacro-backtrace`), hides the `in this macro invocation` label specifically to avoid redundancy in the diagnostic
  * that is, showing the macro use site is only useful when the diagnostic is inside the macro definition and the user can't otherwise tell which use site it applies to, not when the diagnostic is at/inside the use site already (which would make the label redundant)
  * before, it was only checking for the situation in which a cross-crate macro *definition* span would be replaced with the invocation span, which both made the connection to redundancy unobvious, and didn't help with other redundancy (e.g. when the diagnostic was pointing to an argument inside the macro invocation)
  * this accounts for the remaining test changes, which I've first noticed in https://github.com/rust-lang/rust/pull/66364#discussion_r356135967 but only later understood as part of this PR (hence the "redundancy" descriptions)

This PR is not needed for #66364, but it would help, as after this PR there's only one `.span_to_filename(...).is_macros()` check (i.e. for `<... macros>` synthetic "files") left in `rustc_errors`, and it's much more self-contained.

r? @petrochenkov

4 years agotests: add a revision to macro_backtrace without -Zmacro-backtrace.
Eduard-Mihai Burtescu [Thu, 6 Feb 2020 10:16:38 +0000 (12:16 +0200)]
tests: add a revision to macro_backtrace without -Zmacro-backtrace.

4 years agorustc_macros: don't limit the -Zmacro-backtrace suggestion to extern macros.
Eduard-Mihai Burtescu [Mon, 16 Dec 2019 13:56:47 +0000 (15:56 +0200)]
rustc_macros: don't limit the -Zmacro-backtrace suggestion to extern macros.

4 years agorustc_errors: hide "in this macro invocation" when redundant, more explicitly.
Eduard-Mihai Burtescu [Sun, 15 Dec 2019 15:47:51 +0000 (17:47 +0200)]
rustc_errors: hide "in this macro invocation" when redundant, more explicitly.

4 years agorustc_errors: deduplicate the -Zmacro-backtrace suggestion message.
Eduard-Mihai Burtescu [Wed, 15 Jan 2020 15:50:26 +0000 (17:50 +0200)]
rustc_errors: deduplicate the -Zmacro-backtrace suggestion message.

4 years agorustc: rename -Zexternal-macro-backtrace to -Zmacro-backtrace.
Eduard-Mihai Burtescu [Sun, 15 Dec 2019 15:12:30 +0000 (17:12 +0200)]
rustc: rename -Zexternal-macro-backtrace to -Zmacro-backtrace.

4 years agorustc_errors: split macro backtrace rendering from <*macros> hacks.
Eduard-Mihai Burtescu [Fri, 13 Dec 2019 21:21:14 +0000 (23:21 +0200)]
rustc_errors: split macro backtrace rendering from <*macros> hacks.

4 years agoAuto merge of #68893 - Dylan-DPC:rollup-3f2421a, r=Dylan-DPC
bors [Thu, 6 Feb 2020 15:43:00 +0000 (15:43 +0000)]
Auto merge of #68893 - Dylan-DPC:rollup-3f2421a, r=Dylan-DPC

Rollup of 9 pull requests

Successful merges:

 - #68691 (Remove `RefCell` usage from `ObligationForest`.)
 - #68751 (Implement `unused_parens` for `const` and `static` items)
 - #68788 (Towards unified `fn` grammar)
 - #68837 (Make associated item collection a query)
 - #68842 (or_patterns: add regression test for #68785)
 - #68844 (use def_path_str for missing_debug_impls message)
 - #68845 (stop using BytePos for computing spans in librustc_parse/parser/mod.rs)
 - #68869 (clean up E0271 explanation)
 - #68880 (Forbid using `0` as issue number)

Failed merges:

r? @ghost

4 years agoRollup merge of #68880 - JohnTitor:issue-non-zero, r=Dylan-DPC
Dylan DPC [Thu, 6 Feb 2020 14:37:51 +0000 (15:37 +0100)]
Rollup merge of #68880 - JohnTitor:issue-non-zero, r=Dylan-DPC

Forbid using `0` as issue number

Fixes #67496

r? @Centril

4 years agoRollup merge of #68869 - GuillaumeGomez:err-explanation-e0271, r=Dylan-DPC
Dylan DPC [Thu, 6 Feb 2020 14:37:49 +0000 (15:37 +0100)]
Rollup merge of #68869 - GuillaumeGomez:err-explanation-e0271, r=Dylan-DPC

clean up E0271 explanation

r? @Dylan-DPC

4 years agoRollup merge of #68845 - dwrensha:fix-68783, r=estebank
Dylan DPC [Thu, 6 Feb 2020 14:37:47 +0000 (15:37 +0100)]
Rollup merge of #68845 - dwrensha:fix-68783, r=estebank

stop using BytePos for computing spans in librustc_parse/parser/mod.rs

Computing spans using logic such as `self.token.span.lo() + BytePos(1)` can cause internal compiler errors like #68730 when non-ascii characters are given as input.

#68735 partially addressed this problem, but only for one case. Moreover, its usage of `next_point()` does not actually align with what `bump_with()` expects. For example, given the token `>>=`, we should pass the span consisting of the final two characters `>=`, but `next_point()` advances the span beyond the end of the `=`.

This pull request instead computes the start of the new span by doing `start_point(self.token.span).hi()`. This matches `self.token.span.lo() + BytePos(1)` in the common case where the characters are ascii, and it gracefully handles multibyte characters.

Fixes #68783.

4 years agoRollup merge of #68844 - euclio:debug-impl-def-path, r=petrochenkov
Dylan DPC [Thu, 6 Feb 2020 14:37:46 +0000 (15:37 +0100)]
Rollup merge of #68844 - euclio:debug-impl-def-path, r=petrochenkov

use def_path_str for missing_debug_impls message

The lint message will now use the full, correct path to the `Debug`
trait, even in `no_std`.

4 years agoRollup merge of #68842 - Centril:issue-68785, r=estebank
Dylan DPC [Thu, 6 Feb 2020 14:37:44 +0000 (15:37 +0100)]
Rollup merge of #68842 - Centril:issue-68785, r=estebank

or_patterns: add regression test for #68785

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

(Fixed by https://github.com/rust-lang/rust/pull/67668.)

cc https://github.com/rust-lang/rust/issues/54883
r? @estebank

4 years agoRollup merge of #68837 - jonas-schievink:assoc-item-lookup-2, r=estebank
Dylan DPC [Thu, 6 Feb 2020 14:37:43 +0000 (15:37 +0100)]
Rollup merge of #68837 - jonas-schievink:assoc-item-lookup-2, r=estebank

Make associated item collection a query

Before this change, every time associated items were iterated over (which rustc does *a lot* – this can probably be further optimized), there would be N+1 queries to fetch all assoc. items. Now there's just one after they've been computed once.

4 years agoRollup merge of #68788 - Centril:unified-fn-bodies, r=petrochenkov
Dylan DPC [Thu, 6 Feb 2020 14:37:41 +0000 (15:37 +0100)]
Rollup merge of #68788 - Centril:unified-fn-bodies, r=petrochenkov

Towards unified `fn` grammar

Part of https://github.com/rust-lang/rust/pull/68728.

- Syntactically, `fn` items in `extern { ... }` blocks can now have bodies (`fn foo() { ... }` as opposed to `fn foo();`). As above, we use semantic restrictions instead.

- Syntactically, `fn` items in free contexts (directly in a file or a module) can now be without bodies (`fn foo();` as opposed to `fn foo() { ... }`. As above, we use semantic restrictions instead, including for non-ident parameter patterns.

- We move towards unifying the `fn` front matter; this is fully realized in https://github.com/rust-lang/rust/pull/68728.

r? @petrochenkov

4 years agoRollup merge of #68751 - Tyg13:unused_parens_const_static, r=Centril
Dylan DPC [Thu, 6 Feb 2020 14:37:39 +0000 (15:37 +0100)]
Rollup merge of #68751 - Tyg13:unused_parens_const_static, r=Centril

Implement `unused_parens` for `const` and `static` items

Fixes #67942

4 years agoRollup merge of #68691 - nnethercote:rm-RefCell-from-ObligationForest, r=nikomatsakis
Dylan DPC [Thu, 6 Feb 2020 14:37:38 +0000 (15:37 +0100)]
Rollup merge of #68691 - nnethercote:rm-RefCell-from-ObligationForest, r=nikomatsakis

Remove `RefCell` usage from `ObligationForest`.

It's not needed.

This doesn't affect performance, it just simplifies the code a little.

r? @nikomatsakis

4 years agoIgnore panic-drops-resume.rs on wasm/emscripten
Jonas Schievink [Thu, 6 Feb 2020 13:59:51 +0000 (14:59 +0100)]
Ignore panic-drops-resume.rs on wasm/emscripten

It does not have unwinding support

4 years agoClarify comment about `_2` living across a yield
Jonas Schievink [Thu, 6 Feb 2020 11:34:31 +0000 (12:34 +0100)]
Clarify comment about `_2` living across a yield

4 years agoSimplify implicit resume argument
Jonas Schievink [Thu, 6 Feb 2020 11:27:35 +0000 (12:27 +0100)]
Simplify implicit resume argument

4 years agoAuto merge of #68664 - tspiteri:no_run-complete-build, r=nikomatsakis
bors [Thu, 6 Feb 2020 08:48:01 +0000 (08:48 +0000)]
Auto merge of #68664 - tspiteri:no_run-complete-build, r=nikomatsakis

rustdoc: attempt full build for compile_fail test

Some code fails when doing a full build but does not fail when only emitting metadata. This commit makes sure compile_fail tests for such code behave as expected, that is, the test succeeds because the compilation fails.

Fixes #67771.

4 years agoForbid using `0` as issue number
Yuki Okushi [Thu, 6 Feb 2020 07:19:39 +0000 (16:19 +0900)]
Forbid using `0` as issue number

4 years agoAuto merge of #68583 - estebank:hrlt, r=oli-obk
bors [Thu, 6 Feb 2020 05:19:52 +0000 (05:19 +0000)]
Auto merge of #68583 - estebank:hrlt, r=oli-obk

Account for HR lifetimes when suggesting introduction of named lifetime

```
error[E0106]: missing lifetime specifier
 --> src/test/ui/suggestions/fn-missing-lifetime-in-item.rs:2:32
  |
2 | struct S2<F: Fn(&i32, &i32) -> &i32>(F);
  |                 ----  ----     ^ expected named lifetime parameter
  |
  = help: this function's return type contains a borrowed value, but the signature does not say whether it is borrowed from argument 1 or argument 2
  = note: for more information on higher-ranked polymorphism, visit https://doc.rust-lang.org/nomicon/hrtb.html
help: consider making the bound lifetime-generic with a new `'a` lifetime
  |
2 | struct S2<F: for<'a> Fn(&'a i32, &'a i32) -> &'a i32>(F);
  |              ^^^^^^^    ^^^^^^^  ^^^^^^^     ^^^
help: consider introducing a named lifetime parameter
  |
2 | struct S2<'a, F: Fn(&'a i32, &'a i32) -> &'a i32>(F);=
  |           ^^^       ^^^^^^^  ^^^^^^^     ^^^
```

Follow up to #68267. Addresses the diagnostics part of #49287.

4 years agounused-parens: implement for const/static items
Tyler Lanphear [Sat, 1 Feb 2020 23:30:52 +0000 (18:30 -0500)]
unused-parens: implement for const/static items

4 years agoAuto merge of #68861 - Dylan-DPC:rollup-0m09hsg, r=Dylan-DPC
bors [Thu, 6 Feb 2020 01:46:46 +0000 (01:46 +0000)]
Auto merge of #68861 - Dylan-DPC:rollup-0m09hsg, r=Dylan-DPC

Rollup of 8 pull requests

Successful merges:

 - #68762 (Strip unnecessary subexpression)
 - #68790 (Improve `merge_from_succ`)
 - #68809 (Make more arithmetic functions unstably const)
 - #68832 (Clean up E0264, E0267 and E0268 explanations)
 - #68840 (On suggesting `#![recursion_limit = "X"]`, note current crate name)
 - #68846 (doc fix on doc attribute)
 - #68851 (Fix issue number of `capacity` method)
 - #68858 (Merge item id stable hashing functions)

Failed merges:

r? @ghost

4 years agoRemove `RefCell` usage from `ObligationForest`.
Nicholas Nethercote [Fri, 31 Jan 2020 02:39:34 +0000 (13:39 +1100)]
Remove `RefCell` usage from `ObligationForest`.

It's not needed.

4 years agoAuto merge of #68461 - cjgillot:split_infer_prelude, r=matthewjasper
bors [Wed, 5 Feb 2020 22:41:54 +0000 (22:41 +0000)]
Auto merge of #68461 - cjgillot:split_infer_prelude, r=matthewjasper

Move datatypes definitions in specific modules inside rustc::{traits, infer}

Prelude to #67953

Some data types inside `rustc::traits` and `rustc::infer` are used in other parts of `librustc`. These cannot go to a separate crate `librustc_infer`.

This PR moves those data types to `traits::types` and `infer::types` modules, from where everything is reexported.

Note for review: some imports feature the `crate -> rustc` substitution. This is cruft from the splitting out of #67953. This can be reverted, but are bound to be put back by #67953.

r? @Centril
cc @Zoxc

4 years agoclean E0271 explanation
Guillaume Gomez [Wed, 5 Feb 2020 22:03:03 +0000 (23:03 +0100)]
clean E0271 explanation

4 years agoAuto merge of #67429 - mati865:mingw-ultimate-fix, r=alexcrichton
bors [Wed, 5 Feb 2020 19:11:04 +0000 (19:11 +0000)]
Auto merge of #67429 - mati865:mingw-ultimate-fix, r=alexcrichton

windows-gnu: prefer system crt libraries if they are available

The origin of the issue is the fact Rust ships mingw-w64 libraries but no headers and prefers own libraries over the system ones.
This leads to situation when headers aren't compatible with libraries (mingw-w64 doesn't provide any forward compatibility and AFAIK backwards compatibility is guaranteed only within major release series).

It's easier to understand how this PR works when looking at the linker invocation before and with this PR: https://www.diffchecker.com/GEuYFmzo
It adds system libraries path before Rust libraries so the linker will prefer them.
It has potential issue when system has files with the same names as Rust but that could be avoided by moving Rust shipped mingw-w64 libraries from `lib/rustlib/x86_64-pc-windows-gnu/lib` to say `lib/rustlib/x86_64-pc-windows-gnu/lib/mingw`. Then adding linker paths in this order: Rust libraries, system libraries, Rust shipped mingw-w64 libraries.

Fixes #47048
Fixes #49078
Fixes #53454
Fixes #60912

4 years agoFix test
Esteban Küber [Wed, 5 Feb 2020 18:59:14 +0000 (10:59 -0800)]
Fix test

4 years agoAccount for `impl Trait`
Esteban Küber [Thu, 30 Jan 2020 19:53:47 +0000 (11:53 -0800)]
Account for `impl Trait`

Address #49287

4 years agoMove code to `diagnostics.rs`
Esteban Küber [Tue, 28 Jan 2020 23:04:18 +0000 (15:04 -0800)]
Move code to `diagnostics.rs`

4 years agoreview comments
Esteban Küber [Tue, 28 Jan 2020 01:33:13 +0000 (17:33 -0800)]
review comments

4 years agoreview comments: wording
Esteban Küber [Tue, 28 Jan 2020 00:25:43 +0000 (16:25 -0800)]
review comments: wording

4 years agoAccount for `fn()` types in lifetime suggestions
Esteban Küber [Tue, 28 Jan 2020 00:13:45 +0000 (16:13 -0800)]
Account for `fn()` types in lifetime suggestions

4 years agoAccount for `'_` in suggestions
Esteban Küber [Mon, 27 Jan 2020 22:35:20 +0000 (14:35 -0800)]
Account for `'_` in suggestions

4 years agoreview comments
Esteban Küber [Mon, 27 Jan 2020 22:08:59 +0000 (14:08 -0800)]
review comments

4 years agoSuggest `'r` instead of `'lifetime`
Esteban Küber [Mon, 27 Jan 2020 20:49:12 +0000 (12:49 -0800)]
Suggest `'r` instead of `'lifetime`

4 years agoWhen suggesting lifetimes, propose adding the new lifetime to all arguments
Esteban Küber [Mon, 27 Jan 2020 20:41:49 +0000 (12:41 -0800)]
When suggesting lifetimes, propose adding the new lifetime to all arguments

4 years agoUse spans for input borrowed types unrelated to return type
Esteban Küber [Mon, 27 Jan 2020 19:48:52 +0000 (11:48 -0800)]
Use spans for input borrowed types unrelated to return type

4 years agoAccount for HKTB when suggesting introduction of named lifetime
Esteban Küber [Mon, 27 Jan 2020 19:26:06 +0000 (11:26 -0800)]
Account for HKTB when suggesting introduction of named lifetime

4 years agoRollup merge of #68858 - ljedrz:collapse_stable_hash_foos, r=michaelwoerister
Dylan DPC [Wed, 5 Feb 2020 12:14:37 +0000 (13:14 +0100)]
Rollup merge of #68858 - ljedrz:collapse_stable_hash_foos, r=michaelwoerister

Merge item id stable hashing functions

Supersedes https://github.com/rust-lang/rust/pull/67999 splitting out the pure cleanup bits, i.e. merging `hash_item_id`, `hash_impl_item_id` and `hash_trait_item_id` into a common `hash_reference_to_item`.

r? @michaelwoerister

4 years agoRollup merge of #68851 - JohnTitor:fix-issue-number, r=Centril
Dylan DPC [Wed, 5 Feb 2020 12:14:34 +0000 (13:14 +0100)]
Rollup merge of #68851 - JohnTitor:fix-issue-number, r=Centril

Fix issue number of `capacity` method

Follow-up of https://github.com/rust-lang/rust/pull/68558#issuecomment-582117131

r? @alexcrichton

4 years agoRollup merge of #68846 - king6cong:doc-fix, r=GuillaumeGomez
Dylan DPC [Wed, 5 Feb 2020 12:14:33 +0000 (13:14 +0100)]
Rollup merge of #68846 - king6cong:doc-fix, r=GuillaumeGomez

doc fix on doc attribute

None

4 years agoRollup merge of #68840 - Centril:rec-lim-curr-crate, r=estebank
Dylan DPC [Wed, 5 Feb 2020 12:14:31 +0000 (13:14 +0100)]
Rollup merge of #68840 - Centril:rec-lim-curr-crate, r=estebank

On suggesting `#![recursion_limit = "X"]`, note current crate name

This would have saved me much confusion e.g. when reading the log output in https://github.com/rust-lang/rust/pull/68788#issuecomment-581852191.

r? @estebank

4 years agoRollup merge of #68832 - GuillaumeGomez:clean-up-3-err-codes, r=estebank
Dylan DPC [Wed, 5 Feb 2020 12:14:30 +0000 (13:14 +0100)]
Rollup merge of #68832 - GuillaumeGomez:clean-up-3-err-codes, r=estebank

Clean up E0264, E0267 and E0268 explanations

r? @Dylan-DPC

4 years agoRollup merge of #68809 - ecstatic-morse:const-int-functions, r=oli-obk
Dylan DPC [Wed, 5 Feb 2020 12:14:28 +0000 (13:14 +0100)]
Rollup merge of #68809 - ecstatic-morse:const-int-functions, r=oli-obk

Make more arithmetic functions unstably const

This is a smaller version of #66884 (thanks @9999years) that constifies many of the arithmetic functions on integer primitives from #53718 that were blocked on #49146.

This makes the following things unstably const.

- `feature = const_int_unchecked_arith`
  - `intrinsics::unchecked_add`
  - `intrinsics::unchecked_sub`
  - `intrinsics::unchecked_mul`
  - `intrinsics::unchecked_div`
  - `intrinsics::unchecked_rem`

- `feature = const_checked_int_methods`
  - `checked_add`
  - `checked_sub`
  - `checked_mul`
  - `checked_div` (Uses `intrinsics::unchecked_div` internally)
  - `checked_rem` (Uses `intrinsics::unchecked_rem` internally)
  - `checked_neg`
  - `checked_shl`
  - `checked_shr`
  - `checked_abs`

- `feature = const_saturating_int_methods`
  - `saturating_mul`
  - `saturating_neg`  (Uses `intrinsics::unchecked_sub` internally)
  - `saturating_abs` (Uses `intrinsics::unchecked_sub` internally)

- `feature = const_wrapping_int_methods`
  - `wrapping_div`
  - `wrapping_rem`

- `feature = const_overflowing_int_methods`
  - `overflowing_div`
  - `overflowing_rem`

- `feature = const_euclidean_int_methods`
  - `checked_div_euclid`
  - `checked_rem_euclid`
  - `wrapping_div_euclid`
  - `wrapping_rem_euclid`
  - `overflowing_div_euclid`
  - `overflowing_rem_euclid`

Exponentiation and operations on the `NonZero` types are left to a later PR.

r? @oli-obk
cc @rust-lang/wg-const-eval @rust-lang/libs

4 years agoRollup merge of #68790 - nnethercote:improve-merge_from_succ, r=nikomatsakis
Dylan DPC [Wed, 5 Feb 2020 12:14:25 +0000 (13:14 +0100)]
Rollup merge of #68790 - nnethercote:improve-merge_from_succ, r=nikomatsakis

Improve `merge_from_succ`

A couple of small performance wins.

r? @nikomatsakis

4 years agoRollup merge of #68762 - ForNeVeR:patch-1, r=alexcrichton
Dylan DPC [Wed, 5 Feb 2020 12:14:22 +0000 (13:14 +0100)]
Rollup merge of #68762 - ForNeVeR:patch-1, r=alexcrichton

Strip unnecessary subexpression

It became unnecessary since a06baa56b95674fc626b3c3fd680d6a65357fe60 reformatted the file. The comment is currently a bit misleading.

4 years agoMove EvaluationCache::clear.
Camille GILLOT [Wed, 22 Jan 2020 13:00:55 +0000 (14:00 +0100)]
Move EvaluationCache::clear.

4 years agoMove ExpectedFound::new to ty::error.
Camille GILLOT [Wed, 22 Jan 2020 12:55:05 +0000 (13:55 +0100)]
Move ExpectedFound::new to ty::error.

4 years agoMove specialization_graph definition in traits::types.
Camille GILLOT [Wed, 22 Jan 2020 12:44:59 +0000 (13:44 +0100)]
Move specialization_graph definition in traits::types.

4 years agoSplit traits::structural_impls in two.
Camille GILLOT [Wed, 22 Jan 2020 12:42:04 +0000 (13:42 +0100)]
Split traits::structural_impls in two.

4 years agoast_validation: fix visiting bug.
Mazdak Farrokhzad [Wed, 5 Feb 2020 11:27:45 +0000 (12:27 +0100)]
ast_validation: fix visiting bug.

4 years agoAuto merge of #68755 - Tyg13:update_stdarch, r=alexcrichton
bors [Wed, 5 Feb 2020 10:39:01 +0000 (10:39 +0000)]
Auto merge of #68755 - Tyg13:update_stdarch, r=alexcrichton

Update `rust-lang/stdarch` submodule

Update submodule [rust-lang/stdarch](https://github.com/rust-lang/stdarch/)

4 years agomove item reference comment
ljedrz [Wed, 5 Feb 2020 10:29:07 +0000 (11:29 +0100)]
move item reference comment

4 years agomerge item id stable hashing functions
ljedrz [Wed, 5 Feb 2020 10:11:34 +0000 (11:11 +0100)]
merge item id stable hashing functions

4 years agoMove implementation of UnifyKey to unify_key.rs.
Camille GILLOT [Wed, 22 Jan 2020 12:39:53 +0000 (13:39 +0100)]
Move implementation of UnifyKey to unify_key.rs.

4 years agoMove infer::canonical datatypes to infer::types.
Camille GILLOT [Wed, 22 Jan 2020 12:35:27 +0000 (13:35 +0100)]
Move infer::canonical datatypes to infer::types.

4 years agoMove infer::region_constraints::MemberConstraint to infer::types module.
Camille GILLOT [Wed, 22 Jan 2020 12:31:42 +0000 (13:31 +0100)]
Move infer::region_constraints::MemberConstraint to infer::types module.

4 years agoMove traits::query datatypes to traits::types.
Camille GILLOT [Wed, 22 Jan 2020 08:04:50 +0000 (09:04 +0100)]
Move traits::query datatypes to traits::types.

4 years agoMove traits::select datatypes to traits::types.
Camille GILLOT [Wed, 22 Jan 2020 08:01:22 +0000 (09:01 +0100)]
Move traits::select datatypes to traits::types.

4 years agoMove traits::Reveal to traits::types.
Camille GILLOT [Wed, 22 Jan 2020 07:54:46 +0000 (08:54 +0100)]
Move traits::Reveal to traits::types.

4 years agoMove rustc::traits datatypes to module traits::types.
Camille GILLOT [Wed, 22 Jan 2020 07:51:01 +0000 (08:51 +0100)]
Move rustc::traits datatypes to module traits::types.

4 years agoFix issue number of `capacity` method
Yuki Okushi [Wed, 5 Feb 2020 06:34:33 +0000 (15:34 +0900)]
Fix issue number of `capacity` method

4 years agodoc fix on doc attribute
king6cong [Wed, 5 Feb 2020 04:56:24 +0000 (12:56 +0800)]
doc fix on doc attribute

4 years agoImplement remaining `unchecked` arithmetic intrinsics
Dylan MacKenzie [Wed, 5 Feb 2020 01:09:22 +0000 (17:09 -0800)]
Implement remaining `unchecked` arithmetic intrinsics

4 years agoFix test
Dylan MacKenzie [Tue, 4 Feb 2020 19:46:13 +0000 (11:46 -0800)]
Fix test

4 years agoUse consistent feature naming
Dylan MacKenzie [Tue, 4 Feb 2020 19:46:03 +0000 (11:46 -0800)]
Use consistent feature naming

4 years agostop using BytePos for computing spans in librustc_parse/parser/mod.rs
David Renshaw [Wed, 5 Feb 2020 04:04:29 +0000 (23:04 -0500)]
stop using BytePos for computing spans in librustc_parse/parser/mod.rs

4 years agoAuto merge of #68831 - Dylan-DPC:rollup-j6x15y9, r=Dylan-DPC
bors [Wed, 5 Feb 2020 03:20:43 +0000 (03:20 +0000)]
Auto merge of #68831 - Dylan-DPC:rollup-j6x15y9, r=Dylan-DPC

Rollup of 7 pull requests

Successful merges:

 - #68282 (Instrument C / C++ in MemorySanitizer example)
 - #68758 (Fix 59191 - ICE when macro replaces crate root with non-module item)
 - #68805 (bootstrap: fix clippy warnings)
 - #68810 (Remove Copy impl from OnceWith)
 - #68815 (remove redundant imports (clippy::single_component_path_imports))
 - #68818 (fix couple of perf related clippy warnings)
 - #68819 (Suggest `split_at_mut` on multiple mutable index access)

Failed merges:

r? @ghost

4 years agoor_patterns: add regression test for 68785
Mazdak Farrokhzad [Wed, 5 Feb 2020 02:58:41 +0000 (03:58 +0100)]
or_patterns: add regression test for 68785

4 years ago`#![recursion_limit = "X"]`: note current crate name.
Mazdak Farrokhzad [Wed, 5 Feb 2020 01:57:30 +0000 (02:57 +0100)]
`#![recursion_limit = "X"]`: note current crate name.

4 years agolowering: add recursion_limit = 256
Mazdak Farrokhzad [Wed, 5 Feb 2020 01:04:14 +0000 (02:04 +0100)]
lowering: add recursion_limit = 256

4 years agoMake associated item lookup a query
Jonas Schievink [Wed, 5 Feb 2020 00:43:03 +0000 (01:43 +0100)]
Make associated item lookup a query

4 years agoparser: merge `fn` grammars wrt. bodies & headers
Mazdak Farrokhzad [Wed, 29 Jan 2020 23:18:54 +0000 (00:18 +0100)]
parser: merge `fn` grammars wrt. bodies & headers

also refactor `FnKind` and `visit_assoc_item` visitors

4 years agoparse_ty_common: use `enum`s instead of `bool`s.
Mazdak Farrokhzad [Wed, 29 Jan 2020 00:57:24 +0000 (01:57 +0100)]
parse_ty_common: use `enum`s instead of `bool`s.

4 years agoAuto merge of #68544 - Aaron1011:remove-overlapping-traits, r=estebank
bors [Tue, 4 Feb 2020 23:56:49 +0000 (23:56 +0000)]
Auto merge of #68544 - Aaron1011:remove-overlapping-traits, r=estebank

Remove the `overlapping_marker_traits` feature

See #29864

This has been replaced by `#[feature(marker_trait_attr)]`

A few notes:

* Due to PR #68057 not yet being in the bootstrap compiler, it's
  necessary to continue using `#![feature(overlapping_marker_traits)]`
  under `#[cfg(bootstrap)]` to work around type inference issues.
* I've updated tests that used `overlapping_marker_traits` to now use
  `marker_trait_attr` where applicable

The test `src/test/ui/overlap-marker-trait.rs` doesn't make any sense
now that `overlapping_marker_traits`, so I removed it.

The test `src/test/ui/traits/overlap-permitted-for-marker-traits-neg.rs`
now fails, since it's no longer possible to have multiple overlapping
negative impls of `Send`. I believe that this is the behavior we want
(assuming that `Send` is not going to become a `#[marker]` trait, so I
renamed the test to `overlap-permitted-for-marker-traits-neg`

4 years agoPrefer system MinGW libs when available
Mateusz Mikuła [Fri, 13 Dec 2019 18:45:04 +0000 (19:45 +0100)]
Prefer system MinGW libs when available

4 years agouse def_path_str for missing_debug_impls message
Andy Russell [Tue, 4 Feb 2020 22:08:50 +0000 (17:08 -0500)]
use def_path_str for missing_debug_impls message

The lint message will now use the full, correct path to the `Debug`
trait, even in `no_std`.

4 years agoClean up E0264, E0267 and E0268 explanations
Guillaume Gomez [Tue, 4 Feb 2020 21:03:54 +0000 (22:03 +0100)]
Clean up E0264, E0267 and E0268 explanations

4 years agoRollup merge of #68819 - estebank:split_at_mut, r=oli-obk
Dylan DPC [Tue, 4 Feb 2020 20:51:58 +0000 (21:51 +0100)]
Rollup merge of #68819 - estebank:split_at_mut, r=oli-obk

Suggest `split_at_mut` on multiple mutable index access

cc #58792.

4 years agoRollup merge of #68818 - matthiaskrgr:misc_perf, r=Mark-Simulacrum
Dylan DPC [Tue, 4 Feb 2020 20:51:56 +0000 (21:51 +0100)]
Rollup merge of #68818 - matthiaskrgr:misc_perf, r=Mark-Simulacrum

fix couple of perf related clippy warnings

librustc: don't clone a type that is copy
librustc_incremental: use faster vector initialization
librustc_typeck: don't clone a type that is copy
librustdoc: don't create a vector where a slice will do

4 years agoRollup merge of #68815 - matthiaskrgr:redundant_imports, r=alexcrichton
Dylan DPC [Tue, 4 Feb 2020 20:51:55 +0000 (21:51 +0100)]
Rollup merge of #68815 - matthiaskrgr:redundant_imports, r=alexcrichton

remove redundant imports (clippy::single_component_path_imports)

4 years agoRollup merge of #68810 - ollie27:once_with_copy, r=Dylan-DPC
Dylan DPC [Tue, 4 Feb 2020 20:51:53 +0000 (21:51 +0100)]
Rollup merge of #68810 - ollie27:once_with_copy, r=Dylan-DPC

Remove Copy impl from OnceWith

Iterators typically don't implement `Copy` and this shouldn't be an exception.

4 years agoRollup merge of #68805 - matthiaskrgr:cleanup_bootstrap, r=Mark-Simulacrum
Dylan DPC [Tue, 4 Feb 2020 20:51:52 +0000 (21:51 +0100)]
Rollup merge of #68805 - matthiaskrgr:cleanup_bootstrap, r=Mark-Simulacrum

bootstrap: fix clippy warnings

r? @oli-obk

4 years agoRollup merge of #68758 - daboross:fix-59191, r=petrochenkov
Dylan DPC [Tue, 4 Feb 2020 20:51:50 +0000 (21:51 +0100)]
Rollup merge of #68758 - daboross:fix-59191, r=petrochenkov

Fix 59191 - ICE when macro replaces crate root with non-module item

Hi,

This should fix #59191! My friend and I are working on learning the rustc codebase through contributions, so please feel free to mention anything amiss or that could be done better.

The code adds an explicit case for when a macro applied to the crate root (via an inner attribute) replaces it with something nonsensical, like a function. The crate root must be a module, and the error message reflects this.

---

I should note that there are a few other weird edge cases here, like if they do output a module, it succeeds but uses that module's name as a prefix for all names in the crate. I'm assuming that's an issue for stabilizing #54726, though.

4 years agoRollup merge of #68282 - tmiasko:sanitizer-example, r=steveklabnik
Dylan DPC [Tue, 4 Feb 2020 20:51:48 +0000 (21:51 +0100)]
Rollup merge of #68282 - tmiasko:sanitizer-example, r=steveklabnik

Instrument C / C++ in MemorySanitizer example

Modify the example to instrument C / C++ in addition to Rust, since it
will be generally required (e.g., when using libbacktrace for symbolication).

4 years agoAuto merge of #68558 - HeroicKatora:buf-writer-capacity, r=alexcrichton
bors [Tue, 4 Feb 2020 20:30:53 +0000 (20:30 +0000)]
Auto merge of #68558 - HeroicKatora:buf-writer-capacity, r=alexcrichton

Add a method to query the capacity of a BufWriter and BufReader

Besides the obvious of retrieving the parameter used to construct the writer, this method allows consumers to control the number of `flush` calls during write operations. For `BufReader` it gives an upper bound on the returned buffer in `fill_buf` which might influence the allocation behaviour of a consumer.

4 years agoAdd tests for newly const arithmetic fns
Dylan MacKenzie [Mon, 3 Feb 2020 22:23:21 +0000 (14:23 -0800)]
Add tests for newly const arithmetic fns

Co-Authored-By: 9999years <rbt@sent.as>
4 years agoMake saturating arithmetic using intrinsics `const`
Dylan MacKenzie [Mon, 3 Feb 2020 21:17:13 +0000 (13:17 -0800)]
Make saturating arithmetic using intrinsics `const`

4 years agoMake checked division `const`
Dylan MacKenzie [Mon, 3 Feb 2020 21:19:32 +0000 (13:19 -0800)]
Make checked division `const`

4 years agoConst-stabilize some arithmetic intrinsics
Dylan MacKenzie [Mon, 3 Feb 2020 20:49:31 +0000 (12:49 -0800)]
Const-stabilize some arithmetic intrinsics

4 years agoMake wrapping arithmetic `const`
Dylan MacKenzie [Mon, 3 Feb 2020 20:53:34 +0000 (12:53 -0800)]
Make wrapping arithmetic `const`

Co-Authored-By: 9999years <rbt@sent.as>
4 years agoMake `saturating_mul` a `const fn`
Dylan MacKenzie [Mon, 3 Feb 2020 21:16:38 +0000 (13:16 -0800)]
Make `saturating_mul` a `const fn`

Co-Authored-By: 9999years <rbt@sent.as>
4 years agoMake overflowing arithmetic `const`
Dylan MacKenzie [Mon, 3 Feb 2020 20:45:51 +0000 (12:45 -0800)]
Make overflowing arithmetic `const`

Co-Authored-By: 9999years <rbt@sent.as>
4 years agoMake checked arithmetic besides division `const`
Dylan MacKenzie [Mon, 3 Feb 2020 21:19:07 +0000 (13:19 -0800)]
Make checked arithmetic besides division `const`

Co-Authored-By: 9999years <rbt@sent.as>
4 years agoMake euclidean division `const`
Dylan MacKenzie [Mon, 3 Feb 2020 20:31:39 +0000 (12:31 -0800)]
Make euclidean division `const`

Co-Authored-By: 9999years <rbt@sent.as>