]> git.lizzy.rs Git - rust.git/log
rust.git
5 years agoAdd a -Z time option which prints only passes which runs once
John Kåre Alsaker [Wed, 13 Feb 2019 12:11:50 +0000 (13:11 +0100)]
Add a -Z time option which prints only passes which runs once

5 years agoAuto merge of #57842 - gnzlbg:extract_libtest, r=gnzlbg
bors [Tue, 19 Mar 2019 18:30:21 +0000 (18:30 +0000)]
Auto merge of #57842 - gnzlbg:extract_libtest, r=gnzlbg

Move libtest out of rust-lang/rust

This is a first step towards a number of goals explained in this internals post: https://internals.rust-lang.org/t/a-path-forward-towards-re-usable-libtest-functionality-custom-test-frameworks-and-a-stable-bench-macro

This PR does not fully remove libtest from rust-lang/rust, we keep a shim that imports and re-exports the external libtest, and adds the proc_macro dependency, etc.

r? @alexcrichton

cc @djrenren @petrochenkov

5 years agoRemove libterm from bootstrap
gnzlbg [Tue, 19 Mar 2019 18:25:30 +0000 (19:25 +0100)]
Remove libterm from bootstrap

5 years agoAuto merge of #59293 - Centril:rollup, r=Centril
bors [Tue, 19 Mar 2019 14:30:42 +0000 (14:30 +0000)]
Auto merge of #59293 - Centril:rollup, r=Centril

Rollup of 11 pull requests

Successful merges:

 - #56348 (Add todo!() macro)
 - #57729 (extra testing of how NLL handles wildcard type `_`)
 - #57847 (dbg!() without parameters)
 - #58778 (Implement ExactSizeIterator for ToLowercase and ToUppercase)
 - #58812 (Clarify distinction between floor() and trunc())
 - #58939 (Fix a tiny error in documentation of std::pin.)
 - #59116 (Be more discerning on when to attempt suggesting a comma in a macro invocation)
 - #59252 (add self to mailmap)
 - #59275 (Replaced self-reflective explicit types with clearer `Self` or `Self::…` in stdlib docs)
 - #59280 (Stabilize refcell_map_split feature)
 - #59290 (Run branch cleanup after copy prop)

Failed merges:

r? @ghost

5 years agoRollup merge of #59290 - oli-obk:trivial_move_prop, r=davidtwco
Mazdak Farrokhzad [Tue, 19 Mar 2019 14:17:03 +0000 (15:17 +0100)]
Rollup merge of #59290 - oli-obk:trivial_move_prop, r=davidtwco

Run branch cleanup after copy prop

This is preliminary work for https://github.com/rust-lang/rust/pull/59288#issuecomment-474277172 which gets rid of `if` in the HIR.

cc @rust-lang/wg-mir-opt  @Centril

5 years agoRollup merge of #59280 - joshlf:sandbox/joshlf/stabilize-refcell-map-split, r=cramert...
Mazdak Farrokhzad [Tue, 19 Mar 2019 14:17:00 +0000 (15:17 +0100)]
Rollup merge of #59280 - joshlf:sandbox/joshlf/stabilize-refcell-map-split, r=cramertj,Centril

Stabilize refcell_map_split feature

Closes #51476.

5 years agoRollup merge of #59275 - regexident:docs-self, r=joshtriplett
Mazdak Farrokhzad [Tue, 19 Mar 2019 14:16:59 +0000 (15:16 +0100)]
Rollup merge of #59275 - regexident:docs-self, r=joshtriplett

Replaced self-reflective explicit types with clearer `Self` or `Self::…` in stdlib docs

Many docs examples use explicit types instead of the semantically more clear `Self`/`Self::…` aliases.

By using the latter it's clear that the value's type depends on either `Self`, or an associated type of `Self`, instead of some constant type. It's also more consistent (and I'd argue correct), as the current docs aren't really consistent in this, as can be seen from the diff.

This is a best effort PR, as I was basically going through the docs manually, looking for offending examples. I'm sure I missed a few. Gotta start somewhere.

5 years agoRollup merge of #59252 - lcnr:mailmap, r=Centril
Mazdak Farrokhzad [Tue, 19 Mar 2019 14:16:57 +0000 (15:16 +0100)]
Rollup merge of #59252 - lcnr:mailmap, r=Centril

add self to mailmap

5 years agoRollup merge of #59116 - estebank:comma-sugg, r=petrochenkov
Mazdak Farrokhzad [Tue, 19 Mar 2019 14:16:55 +0000 (15:16 +0100)]
Rollup merge of #59116 - estebank:comma-sugg, r=petrochenkov

Be more discerning on when to attempt suggesting a comma in a macro invocation

Fix #58796.

5 years agoRollup merge of #58939 - taeguk:fix-doc-about-pin, r=rkruppe
Mazdak Farrokhzad [Tue, 19 Mar 2019 14:16:53 +0000 (15:16 +0100)]
Rollup merge of #58939 - taeguk:fix-doc-about-pin, r=rkruppe

Fix a tiny error in documentation of std::pin.

`new_unmoved` must be `mut` for passing to `std::mem::swap`.

5 years agoRollup merge of #58812 - jonhoo:floor_v_trunc, r=alexcrichton
Mazdak Farrokhzad [Tue, 19 Mar 2019 14:16:50 +0000 (15:16 +0100)]
Rollup merge of #58812 - jonhoo:floor_v_trunc, r=alexcrichton

Clarify distinction between floor() and trunc()

`floor()` rounds towards `-INF`, `trunc()` rounds towards 0.
This PR clarifies this in the examples.

5 years agoRollup merge of #58778 - xfix:exact_size_case_mapping_iter, r=SimonSapin
Mazdak Farrokhzad [Tue, 19 Mar 2019 14:16:49 +0000 (15:16 +0100)]
Rollup merge of #58778 - xfix:exact_size_case_mapping_iter, r=SimonSapin

Implement ExactSizeIterator for ToLowercase and ToUppercase

5 years agoRollup merge of #57847 - clarcharr:dbg_no_params, r=Centril
Mazdak Farrokhzad [Tue, 19 Mar 2019 14:16:46 +0000 (15:16 +0100)]
Rollup merge of #57847 - clarcharr:dbg_no_params, r=Centril

dbg!() without parameters

Fixes #57845.

5 years agoRollup merge of #57729 - pnkfelix:issue-55748-pat-types-are-constraints-on-bindings...
Mazdak Farrokhzad [Tue, 19 Mar 2019 14:16:45 +0000 (15:16 +0100)]
Rollup merge of #57729 - pnkfelix:issue-55748-pat-types-are-constraints-on-bindings-too, r=nikomatsakis

extra testing of how NLL handles wildcard type `_`

test that wildcard type `_` is not duplicated by `type Foo<X> = (X, X);` and potentially instantiated at different types when used in type ascriptions in let bindings.

(NLL's handling of this for the type ascription *expression form* is currently broken, or at least differs from what AST-borrowck does. I'll file a separate bug about that. Its not something critical to address since that expression is guarded by `#![feature(type_ascription)]`.)

cc #55748

5 years agoRollup merge of #56348 - matklad:todo-macro, r=withoutboats
Mazdak Farrokhzad [Tue, 19 Mar 2019 14:16:43 +0000 (15:16 +0100)]
Rollup merge of #56348 - matklad:todo-macro, r=withoutboats

Add todo!() macro

The primary use-case of `todo!()` macro is to be a much easier to type
alternative to `unimplemented!()` macro.

EDIT: hide unpopular proposal about re-purposing unimplemented

<details>
However, instead of just replacing `unimplemented!()`, it gives it a
more nuanced meaning: a thing which is intentionally left
unimplemented and which should not be called at runtime. Usually,
you'd like to prevent such cases statically, but sometimes you, for
example, have to implement a trait only some methods of which are
applicable. There are examples in the wild of code doing this thing,
and in this case, the current message of `unimplemented`, "not *yet*
implemented" is slightly misleading.

With the addition of TODO, you have three nuanced choices for a
`!`-returning macro (in addition to a good-old panic we all love):

  * todo!()
  * unreachable!()
  * unimplemented!()

Here's a rough guideline what each one means:

- `todo`: use it during development, as a "hole" or placeholder. It
  might be a good idea to add a pre-commit hook which checks that
  `todo` is not accidentally committed.

- `unreachable!()`: use it when your code can statically guarantee
  that some situation can not happen. If you use a library and hit
  `unreachable!()` in the library's code, it's definitely a bug in the
  library. It's OK to have `unreachable!()` in the code base,
  although, if possible, it's better to replace it with
  compiler-verified exhaustive checks.

- `unimplemented!()`: use it when the type checker forces you to
  handle some situation, but there's a contract that a callee must not
  actually call the code. If you use a library and hit
  `unimplemented!()`, it's probably a bug in your code, though
  it *could* be a bug in the library (or library docs) as well. It is
  ok-ish to see an `unimplemented!()` in real code, but it usually
  signifies a clunky, eyebrow-rising API.
</details>

5 years agoDirectly reference the roadmap upstream
gnzlbg [Mon, 4 Mar 2019 17:29:23 +0000 (18:29 +0100)]
Directly reference the roadmap upstream

5 years agoExport stats::Summary from libtest
gnzlbg [Mon, 4 Mar 2019 17:17:41 +0000 (18:17 +0100)]
Export stats::Summary from libtest

5 years agoAdd missing explicit imports
gnzlbg [Mon, 4 Mar 2019 17:06:07 +0000 (18:06 +0100)]
Add missing explicit imports

5 years agoMove black_box back to rust-lang/libtest and use explicit imports
gnzlbg [Mon, 4 Mar 2019 17:04:08 +0000 (18:04 +0100)]
Move black_box back to rust-lang/libtest and use explicit imports

5 years agoAdd a README to libtest with a roadmap
gnzlbg [Mon, 4 Mar 2019 16:45:28 +0000 (17:45 +0100)]
Add a README to libtest with a roadmap

5 years agoAllow the staged_api
gnzlbg [Sun, 3 Mar 2019 16:39:57 +0000 (17:39 +0100)]
Allow the staged_api

5 years agoUpdate Cargo.lock
gnzlbg [Sun, 3 Mar 2019 15:32:27 +0000 (16:32 +0100)]
Update Cargo.lock

5 years agoUse feature(test)
gnzlbg [Sun, 3 Mar 2019 14:50:52 +0000 (15:50 +0100)]
Use feature(test)

5 years agoUse libtest from crates.io
gnzlbg [Sun, 3 Mar 2019 13:58:13 +0000 (14:58 +0100)]
Use libtest from crates.io

5 years agoRe-export libtest
gnzlbg [Sat, 2 Mar 2019 18:40:15 +0000 (19:40 +0100)]
Re-export libtest

5 years agoMove libtest out of rust-lang/rust
gnzlbg [Tue, 22 Jan 2019 20:08:27 +0000 (21:08 +0100)]
Move libtest out of rust-lang/rust

5 years agoRun branch cleanup after copy prop
Oliver Scherer [Tue, 19 Mar 2019 11:38:18 +0000 (12:38 +0100)]
Run branch cleanup after copy prop

5 years agoUpdate since annotation for ExactSizeIterator for ToUppercase/Lowercase
Konrad Borowski [Tue, 19 Mar 2019 07:49:45 +0000 (08:49 +0100)]
Update since annotation for ExactSizeIterator for ToUppercase/Lowercase

This functionality was added in 1.35.0, not 1.34.0.

5 years agoAuto merge of #59279 - mati865:clippy, r=Xanewok
bors [Tue, 19 Mar 2019 00:48:06 +0000 (00:48 +0000)]
Auto merge of #59279 - mati865:clippy, r=Xanewok

Update clippy

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

cc @Xanewok

5 years agoStabilize refcell_map_split feature
Joshua Liebow-Feeser [Mon, 18 Mar 2019 19:01:16 +0000 (12:01 -0700)]
Stabilize refcell_map_split feature

- Closes #51476

5 years agoAuto merge of #56462 - Zoxc:query-macro, r=oli-obk
bors [Mon, 18 Mar 2019 21:24:12 +0000 (21:24 +0000)]
Auto merge of #56462 - Zoxc:query-macro, r=oli-obk

Define queries using a proc macro

cc @rust-lang/compiler

5 years agoUpdate Clippy, RLS and Rustfmt
Mateusz Mikuła [Mon, 18 Mar 2019 17:34:18 +0000 (18:34 +0100)]
Update Clippy, RLS and Rustfmt

5 years agoAdd todo!() macro
Aleksey Kladov [Thu, 29 Nov 2018 18:50:49 +0000 (21:50 +0300)]
Add todo!() macro

The use-case of `todo!()` macro is to be a much easier to type
alternative to `unimplemented!()` macro.

5 years agoPreprocess query modifiers
John Kåre Alsaker [Mon, 18 Mar 2019 13:17:26 +0000 (14:17 +0100)]
Preprocess query modifiers

5 years agoReplaced self-reflective explicit types with clearer `Self` or `Self::…` in stdlib...
Vincent Esche [Mon, 18 Mar 2019 12:57:51 +0000 (13:57 +0100)]
Replaced self-reflective explicit types with clearer `Self` or `Self::…` in stdlib docs

5 years agoAuto merge of #58847 - bjorn3:remove_metadata_only_cg, r=alexcrichton
bors [Mon, 18 Mar 2019 11:28:12 +0000 (11:28 +0000)]
Auto merge of #58847 - bjorn3:remove_metadata_only_cg, r=alexcrichton

Remove metadata only codegen backend

It is unused and probably broken at the moment.

5 years agoAuto merge of #58872 - rep-nop:diagnostic-fix-56031, r=petrochenkov
bors [Mon, 18 Mar 2019 08:03:05 +0000 (08:03 +0000)]
Auto merge of #58872 - rep-nop:diagnostic-fix-56031, r=petrochenkov

Adds help message in error for invalid `impl for T` syntax

Fixes #56031.

5 years agoClean up parsing code and split out codegen for the QueryDescription impl
John Kåre Alsaker [Mon, 18 Mar 2019 07:19:23 +0000 (08:19 +0100)]
Clean up parsing code and split out codegen for the QueryDescription impl

5 years agoAdd load_cached query modifier and keep dep node names consistent with query names
John Kåre Alsaker [Sun, 17 Mar 2019 06:00:46 +0000 (07:00 +0100)]
Add load_cached query modifier and keep dep node names consistent with query names

5 years agoDefine queries using a proc macro
John Kåre Alsaker [Mon, 3 Dec 2018 00:14:35 +0000 (01:14 +0100)]
Define queries using a proc macro

5 years agoAuto merge of #58824 - euclio:intra-link-ambiguity, r=petrochenkov
bors [Mon, 18 Mar 2019 02:56:35 +0000 (02:56 +0000)]
Auto merge of #58824 - euclio:intra-link-ambiguity, r=petrochenkov

overhaul intra-doc-link ambiguity warning

Fixes #52784.

- Makes the warning part of the `intra_doc_link_resolution_failure`
lint.
- Tightens the span to just the ambiguous link.
- Reports ambiguities across all three namespaces.
- Uses structured suggestions for disambiguation.
- Adds a test for the warnings.

r? @QuietMisdreavus

5 years agoAuto merge of #59250 - bovinebuddha:filter_ui_revision_tests, r=petrochenkov
bors [Sun, 17 Mar 2019 23:51:18 +0000 (23:51 +0000)]
Auto merge of #59250 - bovinebuddha:filter_ui_revision_tests, r=petrochenkov

Filter ui revision tests

Updates UI test output filtering to also filter away test annotations for revisions:

Previously filtered: //~ ERROR [XXXX]
Now also filters: //[revision]~ ERROR [XXXX]

I reckon, if we have the one, we should have the other for consistency, its lack was probably an oversight (the existence of revision testing is not really well documented...)

5 years agoAuto merge of #58994 - oli-obk:deprecated_derive, r=petrochenkov
bors [Sun, 17 Mar 2019 20:49:55 +0000 (20:49 +0000)]
Auto merge of #58994 - oli-obk:deprecated_derive, r=petrochenkov

Hide deprecation warnings inside derive expansions

Fixes #58822

5 years agoAuto merge of #59047 - petrochenkov:modnodefid, r=Centril
bors [Sun, 17 Mar 2019 17:25:10 +0000 (17:25 +0000)]
Auto merge of #59047 - petrochenkov:modnodefid, r=Centril

resolve: Account for new importable entities

Fixes the ICE encountered in https://github.com/rust-lang/rust/pull/58837
r? @Centril

5 years agoRemoved obsolete .stderr test outputs
Mathias Blikstad [Sun, 17 Mar 2019 16:01:59 +0000 (17:01 +0100)]
Removed obsolete .stderr test outputs

5 years agoUpdated UI test output to remove test annotations for revisions
Mathias Blikstad [Sun, 17 Mar 2019 09:52:07 +0000 (10:52 +0100)]
Updated UI test output to remove test annotations for revisions

5 years agoAuto merge of #59178 - oli-obk:lazy_const, r=eddyb
bors [Sun, 17 Mar 2019 11:17:03 +0000 (11:17 +0000)]
Auto merge of #59178 - oli-obk:lazy_const, r=eddyb

Revert the `LazyConst` PR

The introduction of `LazyConst` did not actually achieve the code simplicity improvements that were the main reason it was introduced. Especially in the presence of const generics, the differences between the "levels of evaluatedness" of a constant become less clear. As it can be seen by the changes in this PR, further simplifications were possible by folding `LazyConst` back into `ConstValue`. We have been able to keep all the advantages gained during the `LazyConst` refactoring (like `const_eval` not returning an interned value, thus making all the `match` code simpler and more performant).

fixes https://github.com/rust-lang/rust/issues/59209

r? @eddyb @varkor

5 years agoupdate mailmap for Bastian Kauschke
Bastian Kauschke [Sun, 17 Mar 2019 10:55:56 +0000 (11:55 +0100)]
update mailmap for Bastian Kauschke

5 years agocompiletest: Filter test annotations from UI test output for revision tests
Mathias Blikstad [Sat, 16 Mar 2019 08:53:09 +0000 (09:53 +0100)]
compiletest: Filter test annotations from UI test output for revision tests

5 years agoDon't report deprecation lints in derive expansions
Oliver Scherer [Sat, 16 Mar 2019 21:33:15 +0000 (22:33 +0100)]
Don't report deprecation lints in derive expansions

5 years agoAuto merge of #58899 - petrochenkov:derval2, r=estebank
bors [Sat, 16 Mar 2019 20:48:40 +0000 (20:48 +0000)]
Auto merge of #58899 - petrochenkov:derval2, r=estebank

Do not accidentally treat multi-segment meta-items as single-segment

Fixes https://github.com/rust-lang/rust/issues/55168 and many other regressions from https://github.com/rust-lang/rust/pull/50030

Basically, attributes like `#[any::prefix::foo]` were commonly interpreted as `#[foo]` due to `name()` successfully returning the last segment (this applies to nested things as well `#[attr(any::prefix::foo)]`).

5 years agoFix rebase
Vadim Petrochenkov [Sun, 10 Mar 2019 21:24:15 +0000 (00:24 +0300)]
Fix rebase

5 years agoRefactor away `NestedMetaItemKind`
Vadim Petrochenkov [Sun, 3 Mar 2019 17:56:24 +0000 (20:56 +0300)]
Refactor away `NestedMetaItemKind`

Remove methods `Attribute::span` and `MetaItem::span` duplicating public fields

5 years agoRename `MetaItem::ident` to `MetaItem::path`
Vadim Petrochenkov [Sat, 2 Mar 2019 16:15:26 +0000 (19:15 +0300)]
Rename `MetaItem::ident` to `MetaItem::path`

5 years agosyntax: Introduce `Ident::can_be_raw`
Vadim Petrochenkov [Wed, 27 Feb 2019 19:06:26 +0000 (22:06 +0300)]
syntax: Introduce `Ident::can_be_raw`

5 years agosyntax_ext: Validate `#[proc_macro_derive]` input better
Vadim Petrochenkov [Sun, 3 Mar 2019 16:04:58 +0000 (19:04 +0300)]
syntax_ext: Validate `#[proc_macro_derive]` input better

Tweak some error wording

5 years agosyntax: Do not accidentally treat multi-segment meta-items as single-segment
Vadim Petrochenkov [Thu, 28 Feb 2019 06:17:24 +0000 (09:17 +0300)]
syntax: Do not accidentally treat multi-segment meta-items as single-segment

5 years agoAdd tests for malformed input in `#[proc_macro_derive]`
Vadim Petrochenkov [Thu, 28 Feb 2019 05:51:35 +0000 (08:51 +0300)]
Add tests for malformed input in `#[proc_macro_derive]`

5 years agoRevert the `LazyConst` PR
Oliver Scherer [Thu, 14 Mar 2019 09:19:31 +0000 (10:19 +0100)]
Revert the `LazyConst` PR

5 years agoAuto merge of #59226 - kennytm:rollup, r=kennytm
bors [Sat, 16 Mar 2019 14:46:43 +0000 (14:46 +0000)]
Auto merge of #59226 - kennytm:rollup, r=kennytm

Rollup of 37 pull requests

Successful merges:

 - #58854 (appveyor: Use VS2017 for all our images)
 - #58855 (std: Spin for a global malloc lock on wasm32)
 - #58873 (Fix "Auto-hide item methods documentation" setting)
 - #58901 (Change `std::fs::copy` to use `copyfile` on MacOS and iOS)
 - #58933 (Move alloc::prelude::* to alloc::prelude::v1, make alloc a subset of std)
 - #58938 (core: ensure VaList passes improper_ctypes lint)
 - #58941 (MIPS: add r6 support)
 - #58949 (SGX target: Expose thread id function in os module)
 - #58959 (Add release notes for PR #56243)
 - #58976 (Default to integrated `rust-lld` linker for UEFI targets)
 - #59009 (Fix SGX implementations of read/write_vectored.)
 - #59025 (Fix generic argument lookup for Self)
 - #59036 (Fix ICE in MIR pretty printing)
 - #59037 (Avoid some common false positives in intra doc link checking)
 - #59072 (we can now skip should_panic tests with the libtest harness)
 - #59079 (add suggestions to invalid macro item error)
 - #59082 (A few improvements to comments in user-facing crates)
 - #59102 (Consistent naming for duration_float methods and additional f32 methods)
 - #59118 (rustc: fix ICE when trait alias has bare Self)
 - #59139 (Unregress using scalar unions in constants.)
 - #59146 (Suggest return lifetime when there's only one named lifetime)
 - #59147 (Make std time tests more robust for platform differences)
 - #59152 (Stabilize Range*::contains.)
 - #59156 ([wg-async-await] Add regression test for #55809.)
 - #59158 (Revert "Don't generate minification variable if minification disabled")
 - #59169 (Add `-Z allow_features=...` flag)
 - #59173 (bootstrap: Default to a sensible llvm-suffix.)
 - #59175 (Don't run test launching `echo` since that doesn't exist on Windows)
 - #59180 (Use try blocks in rustc_codegen_ssa)
 - #59185 (No old chestnuts in iter::repeat docs)
 - #59201 (Remove restriction on isize/usize in repr(simd))
 - #59204 (Output diagnostic information for rustdoc)
 - #59206 (Improved test output)
 - #59208 (Reduce a Code Repetition Related to Bit Operation)
 - #59212 (Add x86_64 musl host to the manifest)
 - #59221 (Option and Result: Add references to documentation of as_ref and as_mut)
 - #59231 (Stabilize Option::copied)

5 years agoRollup merge of #59231 - matklad:copied, r=Centril
kennytm [Sat, 16 Mar 2019 14:42:00 +0000 (22:42 +0800)]
Rollup merge of #59231 - matklad:copied, r=Centril

Stabilize Option::copied

closes https://github.com/rust-lang/rust/issues/57126

5 years agoRollup merge of #58959 - asomers:issue_58907, r=Mark-Simulacrum
kennytm [Sat, 16 Mar 2019 14:41:27 +0000 (22:41 +0800)]
Rollup merge of #58959 - asomers:issue_58907, r=Mark-Simulacrum

Add release notes for PR #56243

Fixes #58907

5 years agoRollup merge of #59221 - czipperz:as_ref_documentation, r=Centril
kennytm [Sat, 16 Mar 2019 06:57:07 +0000 (14:57 +0800)]
Rollup merge of #59221 - czipperz:as_ref_documentation, r=Centril

Option and Result: Add references to documentation of as_ref and as_mut

This makes the documentation more consistent with that of `Pin::as_ref` which converts "from `&Pin<Pointer<T>>` to `Pin<&t>`".

This generally makes it clearer that the reference is going inside the option.

5 years agoRollup merge of #59212 - mati865:musl_toolchain, r=alexcrichton
kennytm [Sat, 16 Mar 2019 06:57:06 +0000 (14:57 +0800)]
Rollup merge of #59212 - mati865:musl_toolchain, r=alexcrichton

Add x86_64 musl host to the manifest

@alexcrichton r?

Probably too late for https://github.com/rust-lang/rust/pull/59207

5 years agoRollup merge of #59208 - kenta7777:reduce-code-repetition, r=oli-obk
kennytm [Sat, 16 Mar 2019 06:57:05 +0000 (14:57 +0800)]
Rollup merge of #59208 - kenta7777:reduce-code-repetition, r=oli-obk

Reduce a Code Repetition Related to Bit Operation

This PR is related to [#49937](https://github.com/rust-lang/rust/issues/49937).
Should I do more commits about [`FIXME(49937)`](https://github.com/rust-lang/rust/search?q=FIXME%2849937%29&unscoped_q=FIXME%2849937%29) in this PR?

5 years agoRollup merge of #59206 - sntdevco:master, r=dtolnay
kennytm [Sat, 16 Mar 2019 06:57:03 +0000 (14:57 +0800)]
Rollup merge of #59206 - sntdevco:master, r=dtolnay

Improved test output

5 years agoRollup merge of #59204 - o01eg:diag-rustdoc, r=alexcrichton
kennytm [Sat, 16 Mar 2019 06:57:02 +0000 (14:57 +0800)]
Rollup merge of #59204 - o01eg:diag-rustdoc, r=alexcrichton

Output diagnostic information for rustdoc

Use the information same as rustc.

5 years agoRollup merge of #59201 - lambda:remove-repr-simd-isize-usize-restriction, r=alexcrichton
kennytm [Sat, 16 Mar 2019 06:57:01 +0000 (14:57 +0800)]
Rollup merge of #59201 - lambda:remove-repr-simd-isize-usize-restriction, r=alexcrichton

Remove restriction on isize/usize in repr(simd)

As discussed in #55078, there's no known reason for this restriction.

It's unlikely that repr(simd) will be stabilized in its current form, but
might as well remove some restrictions on it.

This removes the branch in `is_machine` which returns false for these types.
`is_machine` is only used for the repr(simd) type validation check.

5 years agoRollup merge of #59185 - lukaslueg:patch-2, r=cramertj
kennytm [Sat, 16 Mar 2019 06:56:59 +0000 (14:56 +0800)]
Rollup merge of #59185 - lukaslueg:patch-2, r=cramertj

No old chestnuts in iter::repeat docs

The current language may be amusing, yet is just imprecise and most especially difficult to understand for someone who speaks English as a foreign language.

5 years agoRollup merge of #59180 - taiki-e:try_blocks, r=scottmcm
kennytm [Sat, 16 Mar 2019 06:56:58 +0000 (14:56 +0800)]
Rollup merge of #59180 - taiki-e:try_blocks, r=scottmcm

Use try blocks in rustc_codegen_ssa

r? @scottmcm

5 years agoRollup merge of #59175 - Zoxc:fix-process-test, r=alexcrichton
kennytm [Sat, 16 Mar 2019 06:56:57 +0000 (14:56 +0800)]
Rollup merge of #59175 - Zoxc:fix-process-test, r=alexcrichton

Don't run test launching `echo` since that doesn't exist on Windows

5 years agoRollup merge of #59173 - emilio:llvm-suffix, r=Mark-Simulacrum
kennytm [Sat, 16 Mar 2019 06:56:55 +0000 (14:56 +0800)]
Rollup merge of #59173 - emilio:llvm-suffix, r=Mark-Simulacrum

bootstrap: Default to a sensible llvm-suffix.

I used version-channel-sha, hopefully that should work.

I checked that bootstrap builds, but I cannot check anything else since the llvm
build process is started from cargo, and thus calls clang, and thus I hit the
same bug I hope to fix with this change.

Hopefully fixes #59034.

5 years agoRollup merge of #59169 - tmandry:allow-features-flag, r=cramertj
kennytm [Sat, 16 Mar 2019 06:56:54 +0000 (14:56 +0800)]
Rollup merge of #59169 - tmandry:allow-features-flag, r=cramertj

Add `-Z allow_features=...` flag

Adds a compiler option to allow only whitelisted features.

For projects on nightly that want to prevent feature-creep (and maybe, someday, move off of nightly). Not being able to enforce this has been a problem on Fuchsia and at other big companies.

This doesn't support filtering edition feature flags, but someone is welcome to add that if they need it.

5 years agoRollup merge of #59158 - Manishearth:fix-minification, r=GuillaumeGomez
kennytm [Sat, 16 Mar 2019 06:56:53 +0000 (14:56 +0800)]
Rollup merge of #59158 - Manishearth:fix-minification, r=GuillaumeGomez

Revert "Don't generate minification variable if minification disabled"

Reverts #58643

Fixes #59157

https://github.com/rust-lang/rust/pull/58643 made us stop generating minification variables when minification is disabled, however they may still be needed for parent crates that were generated with minification (this will always be the case for libstd and libcore)

r? @QuietMisdreavus @GuillaumeGomez

5 years agoRollup merge of #59156 - davidtwco:issue-55809, r=nikomatsakis
kennytm [Sat, 16 Mar 2019 06:56:51 +0000 (14:56 +0800)]
Rollup merge of #59156 - davidtwco:issue-55809, r=nikomatsakis

[wg-async-await] Add regression test for #55809.

Fixes #55809.

This PR adds a regression test for #55809 which checks that a
overflow does not occur when evaluating a requirement for async
functions and `&mut` arguments in some specific circumstances.

5 years agoRollup merge of #59152 - smmalis37:range_contains, r=SimonSapin
kennytm [Sat, 16 Mar 2019 06:56:50 +0000 (14:56 +0800)]
Rollup merge of #59152 - smmalis37:range_contains, r=SimonSapin

Stabilize Range*::contains.

Closes https://github.com/rust-lang/rust/issues/32311. There's also a bit of rustfmt on range.rs thrown in for good measure (I forgot to turn off format-on-save in VSCode).

5 years agoRollup merge of #59147 - jethrogb:jb/time-tests, r=sfackler
kennytm [Sat, 16 Mar 2019 06:56:48 +0000 (14:56 +0800)]
Rollup merge of #59147 - jethrogb:jb/time-tests, r=sfackler

Make std time tests more robust for platform differences

Previously, `time::tests::since_epoch` and `time::tests::system_time_math` would fail if the platform represents a SystemTime as unix epoch + `u64` nanoseconds.

r? @sfackler

5 years agoRollup merge of #59146 - estebank:suggest-return-lt, r=varkor
kennytm [Sat, 16 Mar 2019 06:56:47 +0000 (14:56 +0800)]
Rollup merge of #59146 - estebank:suggest-return-lt, r=varkor

Suggest return lifetime when there's only one named lifetime

Fix #29094.

5 years agoRollup merge of #59139 - oli-obk:unions_are_a_good_thing, r=RalfJung
kennytm [Sat, 16 Mar 2019 06:56:46 +0000 (14:56 +0800)]
Rollup merge of #59139 - oli-obk:unions_are_a_good_thing, r=RalfJung

Unregress using scalar unions in constants.

fixes https://github.com/rust-lang/rust/issues/59126

r? @RalfJung

I also made a bunch of these invariants panic instead of report an error.

5 years agoRollup merge of #59118 - seanmonstar:alias-where-self-ice, r=alexreg
kennytm [Sat, 16 Mar 2019 06:56:44 +0000 (14:56 +0800)]
Rollup merge of #59118 - seanmonstar:alias-where-self-ice, r=alexreg

rustc: fix ICE when trait alias has bare Self

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

5 years agoRollup merge of #59102 - newpavlov:duration_float, r=alexcrichton
kennytm [Sat, 16 Mar 2019 06:56:42 +0000 (14:56 +0800)]
Rollup merge of #59102 - newpavlov:duration_float, r=alexcrichton

Consistent naming for duration_float methods and additional f32 methods

`duration_float` tracking issue: #54361

New list of methods:
- `as_secs_f64(&self) -> f64`
- `as_secs_f32(&self) -> f32`
- `from_secs_f64(secs: f64) -> Duration`
- `from_secs_f32(secs: f32) -> Duration`
- `mul_f64(self, rhs: f64) -> Duration`
- `mul_f32(self, rhs: f32) -> Duration`
- `div_f64(self, rhs: f64) -> Duration`
- `div_f32(self, rhs: f64) -> Duration`
- `div_duration_f64(self, rhs: Duration) -> f64`
- `div_duration_f32(self, rhs: Duration) -> f32`

With [`num_traits::Float`](https://docs.rs/num-traits/0.2.6/num_traits/float/trait.Float.html) we could've reduced number of methods by factor of two, but unfortunately it's not part of `std`.

5 years agoRollup merge of #59082 - alexreg:cosmetic-2-doc-comments, r=Centril
kennytm [Sat, 16 Mar 2019 06:56:41 +0000 (14:56 +0800)]
Rollup merge of #59082 - alexreg:cosmetic-2-doc-comments, r=Centril

A few improvements to comments in user-facing crates

Not too many this time, and all concern comments (almost all doc comments) in user-facing crates (libstd, libcore, liballoc).

r? @steveklabnik

5 years agoRollup merge of #59079 - euclio:macro-semi, r=estebank
kennytm [Sat, 16 Mar 2019 06:56:39 +0000 (14:56 +0800)]
Rollup merge of #59079 - euclio:macro-semi, r=estebank

add suggestions to invalid macro item error

r? @estebank

5 years agoRollup merge of #59072 - RalfJung:miri-alloc-tests, r=kennytm
kennytm [Sat, 16 Mar 2019 06:56:38 +0000 (14:56 +0800)]
Rollup merge of #59072 - RalfJung:miri-alloc-tests, r=kennytm

we can now skip should_panic tests with the libtest harness

5 years agoRollup merge of #59037 - Manishearth:intra-doc-false, r=QuietMisdreavus
kennytm [Sat, 16 Mar 2019 06:56:33 +0000 (14:56 +0800)]
Rollup merge of #59037 - Manishearth:intra-doc-false, r=QuietMisdreavus

Avoid some common false positives in intra doc link checking

The empty string case is never going to be a link. The numeric case may be a link, but if it were it would have resolved locally. It's more likely the makeshift markdown footnote notation (`[0]`, etc)

r? @QuietMisdreavus

5 years agoRollup merge of #59036 - dlrobertson:fix_59021, r=estebank
kennytm [Sat, 16 Mar 2019 06:56:32 +0000 (14:56 +0800)]
Rollup merge of #59036 - dlrobertson:fix_59021, r=estebank

Fix ICE in MIR pretty printing

A `Def::Variant` should be considered as a function in mir pretty
printing. Each variant has a constructor that we must print.

Given the following enum definition:

```rust
pub enum TestMe {
    X(usize),
}
```

We will need to generate a constructor for the variant `X` with a
signature that looks something like the following:

```
fn TestMe::X(_1: usize) -> TestMe;
```

Fixes: #59021
5 years agoRollup merge of #59025 - aoikonomopoulos:issue-57924, r=varkor
kennytm [Sat, 16 Mar 2019 06:56:30 +0000 (14:56 +0800)]
Rollup merge of #59025 - aoikonomopoulos:issue-57924, r=varkor

Fix generic argument lookup for Self

Rewrite the SelfCtor early and use the replacement Def when
calculating the path_segs.

Note that this also changes which def is seen by the code that
computes user_self_ty and is_alias_variant_ctor; I don't see a
immediate issue with that, but I'm not 100% clear on the
implications.

Fixes #57924

r? @eddyb

5 years agoRollup merge of #59009 - sfackler:fix-sgx-vectors, r=alexcrichton
kennytm [Sat, 16 Mar 2019 06:56:28 +0000 (14:56 +0800)]
Rollup merge of #59009 - sfackler:fix-sgx-vectors, r=alexcrichton

Fix SGX implementations of read/write_vectored.

5 years agoresolve: Account for new importable entities
Vadim Petrochenkov [Sat, 9 Mar 2019 13:15:40 +0000 (16:15 +0300)]
resolve: Account for new importable entities

5 years agoStabilize Option::copied
Aleksey Kladov [Sat, 16 Mar 2019 11:11:23 +0000 (14:11 +0300)]
Stabilize Option::copied

closes https://github.com/rust-lang/rust/issues/57126

5 years agoFix formatting
bjorn3 [Mon, 11 Mar 2019 07:14:46 +0000 (08:14 +0100)]
Fix formatting

5 years agoFix test
bjorn3 [Sat, 2 Mar 2019 12:46:10 +0000 (13:46 +0100)]
Fix test

5 years agoRemove rustc_driver tests
bjorn3 [Sat, 2 Mar 2019 10:45:01 +0000 (11:45 +0100)]
Remove rustc_driver tests

5 years ago[bootstrap] Remove llvm.enabled config
bjorn3 [Sat, 2 Mar 2019 10:43:17 +0000 (11:43 +0100)]
[bootstrap] Remove llvm.enabled config

5 years agoRemove MetadataOnlyCodegenBackend
bjorn3 [Fri, 1 Mar 2019 15:53:21 +0000 (16:53 +0100)]
Remove MetadataOnlyCodegenBackend

5 years agoRollup merge of #58976 - phil-opp:patch-2, r=alexcrichton
kennytm [Sat, 16 Mar 2019 06:56:25 +0000 (14:56 +0800)]
Rollup merge of #58976 - phil-opp:patch-2, r=alexcrichton

Default to integrated `rust-lld` linker for UEFI targets

The `x86_64-unknown-uefi` target was added in https://github.com/rust-lang/rust/pull/56769 with the linker defaulting to `lld-link`. This means that a system linker with that name is required for linking.

I think defaulting to `rust-lld`, which is shipped with Rust, is a better default for the following reasons:

- Most systems don't have `lld-link` installed, so it forces users to install it first.
- The naming of LLD executables is not standarized, so users often need to create an additional symlink before things work. For example, on Ubuntu `apt install lld` leads to an executable named `lld-link-6.0`.
- We already default to `rust-lld` for [many targets](https://github.com/rust-lang/rust/search?utf8=%E2%9C%93&q=rust-lld&type=), including embedded and WASM targets, so doing the same for UEFI crates seems consistent to me. (It even seems like `x86_64-unknown-uefi` is the [only target](https://github.com/rust-lang/rust/search?q=lld-link&unscoped_q=lld-link) that uses `lld-link`.)

cc @dvdhrm who added the target and @kkk669 who [proposed to use `rust-lld`](https://github.com/rust-lang/rust/pull/56769#issuecomment-461119648).

5 years agoRollup merge of #58949 - jethrogb:jb/sgx-thread-id, r=joshtriplett
kennytm [Sat, 16 Mar 2019 06:56:23 +0000 (14:56 +0800)]
Rollup merge of #58949 - jethrogb:jb/sgx-thread-id, r=joshtriplett

SGX target: Expose thread id function in os module

In order to call `std::os::fortanix_sgx::usercalls::send`, you need the thread id. This exposes it through another function in `std::os::fortanix_sgx`.

I looked at how other platforms do this. On Windows and `cfg(unix)` you can get the OS handle from a `thread::JoinHandle`, but that's not sufficient, I need it for a `thread::Thread`. In the future, this functionality could be added to `thread::Thread` and this platform can follow suit.

r? @joshtriplett

5 years agoRollup merge of #58941 - wzssyqa:master, r=alexcrichton
kennytm [Sat, 16 Mar 2019 06:56:21 +0000 (14:56 +0800)]
Rollup merge of #58941 - wzssyqa:master, r=alexcrichton

MIPS: add r6 support

MIPS r6 is quite different with the previous version.
It use some new target triples:
  mipsisa32r6-unknown-linux-gnu
  mipsisa32r6el-unknown-linux-gnu
  mipsisa64r6-unknown-linux-gnuabi64
  mipsisa64r6el-unknown-linux-gnuabi64

This patch has been tested with Debian Port for mips64r6el,
and the support of these triples also is included in llvm:
  https://reviews.llvm.org/rGe58c45a695f39004710b6ce940d489fee800dbd3

5 years agoRollup merge of #58938 - dlrobertson:fix_58280, r=joshtriplett
kennytm [Sat, 16 Mar 2019 06:56:19 +0000 (14:56 +0800)]
Rollup merge of #58938 - dlrobertson:fix_58280, r=joshtriplett

core: ensure VaList passes improper_ctypes lint

Ensure the `core::ffi::VaList` structure passes the `improper_ctypes` lint.

Fixes: #58280
5 years agoRollup merge of #58933 - SimonSapin:alloc-prelude-v1, r=Amanieu
kennytm [Sat, 16 Mar 2019 06:56:18 +0000 (14:56 +0800)]
Rollup merge of #58933 - SimonSapin:alloc-prelude-v1, r=Amanieu

Move alloc::prelude::* to alloc::prelude::v1, make alloc a subset of std

This was one of the unresolved questions of https://github.com/rust-lang/rfcs/pull/2480. As the RFC says this is maybe not useful in the sense that we are unlikely to ever have a second version, but making the crate a true subset makes one less issue to think about if we stabilize it and later want to merge standard library crates and have Cargo feature flags to enable or disable parts of the `std` crate.

See also discussion in https://github.com/rust-lang/rust/pull/58175.

Also rename the feature gate and point to a dedicated tracking issue: https://github.com/rust-lang/rust/issues/58935