]> git.lizzy.rs Git - rust.git/log
rust.git
5 years agoReintroduce special pretty-printing for `$crate` when it's necessary for proc macros
Vadim Petrochenkov [Sun, 9 Dec 2018 14:46:12 +0000 (17:46 +0300)]
Reintroduce special pretty-printing for `$crate` when it's necessary for proc macros

5 years agoproc_macro: Accept `$crate` as an identifier if it comes from the compiler
Vadim Petrochenkov [Sun, 9 Dec 2018 14:31:12 +0000 (17:31 +0300)]
proc_macro: Accept `$crate` as an identifier if it comes from the compiler

5 years agoproc_macro: Validate tokens coming from the compiler again
Vadim Petrochenkov [Sat, 8 Dec 2018 18:00:39 +0000 (21:00 +0300)]
proc_macro: Validate tokens coming from the compiler again

5 years agoRemove `eliminate_crate_var` and special pretty-printing for `$crate`
Vadim Petrochenkov [Sat, 8 Dec 2018 17:30:38 +0000 (20:30 +0300)]
Remove `eliminate_crate_var` and special pretty-printing for `$crate`

5 years agoAuto merge of #56601 - Zoxc:lifetime-killer, r=nikomatsakis
bors [Wed, 19 Dec 2018 15:22:55 +0000 (15:22 +0000)]
Auto merge of #56601 - Zoxc:lifetime-killer, r=nikomatsakis

Make the 'a lifetime on TyCtxt useless

cc @rust-lang/compiler

r? @nikomatsakis

5 years agoAuto merge of #56977 - pietroalbini:rollup, r=pietroalbini
bors [Wed, 19 Dec 2018 12:49:32 +0000 (12:49 +0000)]
Auto merge of #56977 - pietroalbini:rollup, r=pietroalbini

Rollup of 15 pull requests

Successful merges:

 - #56363 (Defactored Bytes::read)
 - #56663 (Remove lifetime from Resolver)
 - #56689 (add a lint group for lints emitted by rustdoc)
 - #56772 (fix issue 54153 by not testing issue-18804 on Windows nor OS X.)
 - #56820 (format-related tweaks)
 - #56881 (Implement Eq, PartialEq and Hash for atomic::Ordering)
 - #56907 (Fix grammar in compiler error for array iterators)
 - #56908 (rustc: Don't ICE on usage of two new target features)
 - #56910 (Do not point at delim spans for complete correct blocks)
 - #56913 (Enable stack probes for UEFI images)
 - #56918 (Profiler: simplify total_duration, improve readability)
 - #56931 (Update release notes for Rust 1.31.1)
 - #56947 (Add targets thumbv7neon-linux-androideabi and thumbv7neon-unknown-linux-gnueabihf)
 - #56948 (Update LLVM submodule)
 - #56959 (Fix mobile menu rendering collision with tooltip.)

Failed merges:

 - #56914 (Ignore ui/target-feature-gate on sparc, sparc64, powerpc, powerpc64 and powerpc64le)

r? @ghost

5 years agoRollup merge of #56959 - JohnHeitmann:mobile-z-fix, r=GuillaumeGomez
Pietro Albini [Wed, 19 Dec 2018 10:47:23 +0000 (11:47 +0100)]
Rollup merge of #56959 - JohnHeitmann:mobile-z-fix, r=GuillaumeGomez

Fix mobile menu rendering collision with tooltip.

Bring the mobile-mode menu in front of the ⓘ icon.

Here's what the bug looks like:

![screen shot 2018-12-18 at 1 53 46 pm](https://user-images.githubusercontent.com/4282480/50185501-cbf62180-02cc-11e9-927e-3c6469901323.png)

5 years agoRollup merge of #56948 - jethrogb:jb/update-llvm, r=nikic
Pietro Albini [Wed, 19 Dec 2018 10:47:21 +0000 (11:47 +0100)]
Rollup merge of #56948 - jethrogb:jb/update-llvm, r=nikic

Update LLVM submodule

This includes https://github.com/rust-lang/llvm/pull/133

Fixes #56942

5 years agoRollup merge of #56947 - hsivonen:neon, r=alexcrichton
Pietro Albini [Wed, 19 Dec 2018 10:47:20 +0000 (11:47 +0100)]
Rollup merge of #56947 - hsivonen:neon, r=alexcrichton

Add targets thumbv7neon-linux-androideabi and thumbv7neon-unknown-linux-gnueabihf

These two targets enable both thumb-mode and NEON for ARMv7 CPUs.

This another attempt at #49902, which cannot be reopened. Between that PR and this one, some subrepos with C code whose build systems were failing went away.

5 years agoRollup merge of #56931 - pietroalbini:relnotes-1.31.1, r=pietroalbini
Pietro Albini [Wed, 19 Dec 2018 10:47:19 +0000 (11:47 +0100)]
Rollup merge of #56931 - pietroalbini:relnotes-1.31.1, r=pietroalbini

Update release notes for Rust 1.31.1

Backport from the stable branch.

r? @ghost

5 years agoRollup merge of #56918 - ljedrz:profiler_nits, r=wesleywiser
Pietro Albini [Wed, 19 Dec 2018 10:47:17 +0000 (11:47 +0100)]
Rollup merge of #56918 - ljedrz:profiler_nits, r=wesleywiser

Profiler: simplify total_duration, improve readability

r? @wesleywiser

5 years agoRollup merge of #56913 - tirr-c:uefi-stack-probes, r=alexcrichton
Pietro Albini [Wed, 19 Dec 2018 10:47:16 +0000 (11:47 +0100)]
Rollup merge of #56913 - tirr-c:uefi-stack-probes, r=alexcrichton

Enable stack probes for UEFI images

When building UEFI images, we don't link to any CRT libraries so we need to provide a stack probe. Without `__rust_probestack`, the linker looks for `__chkstk` and fails to link if there is a function with large local variables.

r? @alexcrichton

5 years agoRollup merge of #56910 - estebank:unclosed-eof, r=oli-obk
Pietro Albini [Wed, 19 Dec 2018 10:47:14 +0000 (11:47 +0100)]
Rollup merge of #56910 - estebank:unclosed-eof, r=oli-obk

Do not point at delim spans for complete correct blocks

Fix #56834.

5 years agoRollup merge of #56908 - alexcrichton:new-features, r=oli-obk
Pietro Albini [Wed, 19 Dec 2018 10:47:13 +0000 (11:47 +0100)]
Rollup merge of #56908 - alexcrichton:new-features, r=oli-obk

rustc: Don't ICE on usage of two new target features

I seem to always forget to update this portion of the compiler...

5 years agoRollup merge of #56907 - rumajo:master, r=kennytm,Centril
Pietro Albini [Wed, 19 Dec 2018 10:47:12 +0000 (11:47 +0100)]
Rollup merge of #56907 - rumajo:master, r=kennytm,Centril

Fix grammar in compiler error for array iterators

This fixes a small grammatical mistake in the message the compiler gives when attempting to iterate directly over an array `arr` without calling `arr.iter()` or borrowing `&arr`.

5 years agoRollup merge of #56881 - Amanieu:ordering_eq, r=alexcrichton
Pietro Albini [Wed, 19 Dec 2018 10:47:11 +0000 (11:47 +0100)]
Rollup merge of #56881 - Amanieu:ordering_eq, r=alexcrichton

Implement Eq, PartialEq and Hash for atomic::Ordering

r? @alexcrichton

5 years agoRollup merge of #56820 - ljedrz:format_tweaks, r=alexcrichton
Pietro Albini [Wed, 19 Dec 2018 10:47:09 +0000 (11:47 +0100)]
Rollup merge of #56820 - ljedrz:format_tweaks, r=alexcrichton

format-related tweaks

- remove an unreachable condition
- inline one-liners related to `parse_expr` (called in succession)
- refactor `report_invalid_references`
- refactor `verify_arg_type`
- minor stylistic improvements

5 years agoRollup merge of #56772 - pnkfelix:issue-54153-linkage-sometimes-requires-optimization...
Pietro Albini [Wed, 19 Dec 2018 10:47:08 +0000 (11:47 +0100)]
Rollup merge of #56772 - pnkfelix:issue-54153-linkage-sometimes-requires-optimizations, r=nikic

fix issue 54153 by not testing issue-18804 on Windows nor OS X.

Fix #54153

5 years agoRollup merge of #56689 - QuietMisdreavus:rustdoc-lint-group, r=pnkfelix
Pietro Albini [Wed, 19 Dec 2018 10:47:07 +0000 (11:47 +0100)]
Rollup merge of #56689 - QuietMisdreavus:rustdoc-lint-group, r=pnkfelix

add a lint group for lints emitted by rustdoc

As rustdoc adds more lints that it specifically manages, it would be nice to be able to lump them all together. This gives us a new group just for that.

I deliberately didn't include `missing_docs` because this is kind of a stepping stone for moving our lints into tool lints (i.e. `#![warn(rustdoc::private_doc_tests)]`), since all of these are specifically emitted by rustdoc. If we want to move `missing_docs` out of the compiler, that's also an option, but it would create a surprising change of behavior.

I also took the chance to rewrite the lint descriptions of these lints to better match the style of the other lints. `>_>`

5 years agoRollup merge of #56663 - Zoxc:resolver-lifetime, r=pnkfelix
Pietro Albini [Wed, 19 Dec 2018 10:47:05 +0000 (11:47 +0100)]
Rollup merge of #56663 - Zoxc:resolver-lifetime, r=pnkfelix

Remove lifetime from Resolver

5 years agoRollup merge of #56363 - Lucretiel:patch-3, r=shepmaster
Pietro Albini [Wed, 19 Dec 2018 10:47:04 +0000 (11:47 +0100)]
Rollup merge of #56363 - Lucretiel:patch-3, r=shepmaster

Defactored Bytes::read

Removed unneeded refactoring of read_one_byte, which removed the unneeded dynamic dispatch (`dyn Read`) used by that function.

This function is only used in one place in the entire Rust codebase; there doesn't seem to be a reason for it to exist (and there especially doesn't seem to be a reason for it to use dynamic dispatch)

5 years agoAuto merge of #56550 - chpio:rc-eq, r=alexcrichton
bors [Wed, 19 Dec 2018 10:16:05 +0000 (10:16 +0000)]
Auto merge of #56550 - chpio:rc-eq, r=alexcrichton

Short-circuit Rc/Arc equality checking on equal pointers where T: Eq

based on #42965

Is the use of the private trait ok this way? Is there anything else needed for this to get pulled?

5 years agoAuto merge of #56397 - petrhosek:file-search, r=cramertj
bors [Wed, 19 Dec 2018 06:46:15 +0000 (06:46 +0000)]
Auto merge of #56397 - petrhosek:file-search, r=cramertj

Search other library paths when loking for link objects

Support the case when link objects are not located in Rust sysroot
but in other locations which could be specify through library paths.

5 years agoSearch other library paths when loking for link objects
Petr Hosek [Sat, 1 Dec 2018 03:19:47 +0000 (19:19 -0800)]
Search other library paths when loking for link objects

Support the case when link objects are not located in Rust sysroot
but in other locations which could be specify through library paths.

5 years agoFix mobile menu rendering collision with tooltip.
John Heitmann [Tue, 18 Dec 2018 21:55:30 +0000 (13:55 -0800)]
Fix mobile menu rendering collision with tooltip.

Bring the mobile-mode menu in front of the ⓘ icon.

5 years agoAuto merge of #56863 - arielb1:supertrait-self-4, r=nikomatsakis
bors [Tue, 18 Dec 2018 19:58:14 +0000 (19:58 +0000)]
Auto merge of #56863 - arielb1:supertrait-self-4, r=nikomatsakis

fix trait objects with a Self-containing projection values

Fixes #56288.

This follows ALT2 in the issue.

beta-nominating since this is a regression.

r? @nikomatsakis

5 years agoAuto merge of #56160 - oli-obk:const_fn_let, r=nikomatsakis
bors [Tue, 18 Dec 2018 14:21:07 +0000 (14:21 +0000)]
Auto merge of #56160 - oli-obk:const_fn_let, r=nikomatsakis

Fix various aspects around `let` bindings inside const functions

* forbid `let` bindings in const contexts that use short circuiting operators
* harden analysis code against derefs of mutable references

Initially this PR was about stabilizing `let` bindings, but too many flaws were exposed that need some more testing on nightly

5 years agoUpdate LLVM submodule
Jethro Beekman [Tue, 18 Dec 2018 09:56:10 +0000 (15:26 +0530)]
Update LLVM submodule

5 years agoExplain that lack of short circuiting support in constants is temporary
Oliver Scherer [Tue, 18 Dec 2018 08:42:46 +0000 (09:42 +0100)]
Explain that lack of short circuiting support in constants is temporary

5 years agoProperly worded diagnostic message
Oliver Scherer [Tue, 18 Dec 2018 08:16:56 +0000 (09:16 +0100)]
Properly worded diagnostic message

5 years agoAuto merge of #56481 - arielb1:dynamic-order, r=nikomatsakis
bors [Tue, 18 Dec 2018 06:50:11 +0000 (06:50 +0000)]
Auto merge of #56481 - arielb1:dynamic-order, r=nikomatsakis

add coherence future-compat warnings for marker-only trait objects

The future-compat warnings break code that assumes that `dyn Send + Sync !=
dyn Sync + Send`, and are the first step in making them equal. cc #33140.

Note: this lint should be made to default-warn before we merge. It is deny only for the crater run.

r? @nikomatsakis / @scalexm . cc @Centril & @alexreg.

5 years agoReordered match arms
Nathan West [Tue, 18 Dec 2018 01:43:52 +0000 (17:43 -0800)]
Reordered match arms

5 years agoimprove tests as suggested by review comments
Ariel Ben-Yehuda [Mon, 17 Dec 2018 22:33:21 +0000 (00:33 +0200)]
improve tests as suggested by review comments

5 years agoAuto merge of #56303 - petrochenkov:stabuseas, r=cramertj
bors [Mon, 17 Dec 2018 22:18:26 +0000 (22:18 +0000)]
Auto merge of #56303 - petrochenkov:stabuseas, r=cramertj

Stabilize `underscore_imports`

Closes https://github.com/rust-lang/rust/issues/48216

5 years agoupdate release notes for rust 1.31.1
Pietro Albini [Mon, 17 Dec 2018 11:15:12 +0000 (12:15 +0100)]
update release notes for rust 1.31.1

5 years agoStabilize `underscore_imports`
Vadim Petrochenkov [Tue, 27 Nov 2018 23:58:18 +0000 (02:58 +0300)]
Stabilize `underscore_imports`

5 years agoDo not point at delim spans for complete correct blocks
Esteban Küber [Mon, 17 Dec 2018 04:00:17 +0000 (20:00 -0800)]
Do not point at delim spans for complete correct blocks

5 years agorustc: Don't ICE on usage of two new target features
Alex Crichton [Mon, 17 Dec 2018 03:01:43 +0000 (19:01 -0800)]
rustc: Don't ICE on usage of two new target features

I seem to always forget to update this portion of the compiler...

5 years agoAuto merge of #56904 - sinkuu:cycle_fold, r=bluss
bors [Mon, 17 Dec 2018 16:01:46 +0000 (16:01 +0000)]
Auto merge of #56904 - sinkuu:cycle_fold, r=bluss

Remove Cycle::try_fold override

Fixes #56883

5 years agoprofiler: improve readability
ljedrz [Mon, 17 Dec 2018 15:31:11 +0000 (16:31 +0100)]
profiler: improve readability

5 years agoprofiler: simplify total_duration
ljedrz [Mon, 17 Dec 2018 15:30:14 +0000 (16:30 +0100)]
profiler: simplify total_duration

5 years agoAuto merge of #56810 - sinkuu:build_match, r=oli-obk
bors [Mon, 17 Dec 2018 13:26:40 +0000 (13:26 +0000)]
Auto merge of #56810 - sinkuu:build_match, r=oli-obk

Improve MIR match generation for ranges

Improves MIR match generation to rule out ranges/values distinct from the range that has been tested. e.g., for this code:

```rust
match x {
    0..=5 if b => 0,
    6..=10 => 1,
    _ => 2,
}
```

MIR (before):

```rust
bb0: { ...; _4 = Le(const 0i32, _1); switchInt(move _4) -> [false: bb6, otherwise: bb5]; }
bb1: { _3 = const 0i32; goto -> bb8; }
bb2: { _6 = _2; switchInt(move _6) -> [false: bb6, otherwise: bb1]; } // If `!b`, jumps to test if `6 <= x <= 10`.
bb3: { _3 = const 1i32; goto -> bb8; }
bb4: { _3 = const 2i32; goto -> bb8; }
bb5: { _5 = Le(_1, const 5i32); switchInt(move _5) -> [false: bb6, otherwise: bb2]; }
bb6: { _7 = Le(const 6i32, _1); switchInt(move _7) -> [false: bb4, otherwise: bb7]; }
bb7: { _8 = Le(_1, const 10i32); switchInt(move _8) -> [false: bb4, otherwise: bb3]; }
```

MIR (after):
```rust
bb0: { ...; _4 = Le(const 0i32, _1); switchInt(move _4) -> [false: bb5, otherwise: bb6]; }
bb1: { _3 = const 0i32; goto -> bb8; }
bb2: { _6 = _2; switchInt(move _6) -> [false: bb4, otherwise: bb1]; } // If `!b`, jumps to `_ =>` arm.
bb3: { _3 = const 1i32; goto -> bb8; }
bb4: { _3 = const 2i32; goto -> bb8; }
bb5: { _7 = Le(const 6i32, _1); switchInt(move _7) -> [false: bb4, otherwise: bb7]; }
bb6: { _5 = Le(_1, const 5i32); switchInt(move _5) -> [false: bb5, otherwise: bb2]; }
bb7: { _8 = Le(_1, const 10i32); switchInt(move _8) -> [false: bb4, otherwise: bb3]; }
```

cc #29623

5 years agoEnable stack probes for UEFI images
Wonwoo Choi [Mon, 17 Dec 2018 12:42:10 +0000 (21:42 +0900)]
Enable stack probes for UEFI images

5 years agoAddress LLVM assertion failure by prepopulating with *just* name-anon-globals.
Felix S. Klock II [Mon, 17 Dec 2018 12:45:27 +0000 (13:45 +0100)]
Address LLVM assertion failure by prepopulating with *just* name-anon-globals.

5 years agoAuto merge of #56853 - matthiaskrgr:clippy, r=oli-obk
bors [Mon, 17 Dec 2018 11:11:55 +0000 (11:11 +0000)]
Auto merge of #56853 - matthiaskrgr:clippy, r=oli-obk

submodules: update clippy from b7a431ea to a416c5e0

Changes:

````
rustup rust-lang/rust#52994
Fix test
Line length fix
Remove references to sized for end users
Remove DUMMY_SP
Add suggestion for replacement
Update lint definitions
Lint for Vec<Box<T: Sized>> - Closes #3530
Fix doc_markdown mixed case false positive
question_mark: Suggest Some(opt?) for if-else
redundant_field_names: Do not trigger on path with type params
question_mark: Lint only early returns
question_mark: Fix applicability
Remove obsolete comment
new_without_default, partialeq_ne_impl: Use span_lint_node
Update .stderr after rebase
cargo fmt and remove stabilized feature
Make suggestion Applicability::MachineApplicable
Address review feedback
Extract method
Check array lengths to prevent OOB access
Add suggestion for explicit_write lint
Fix write_with_newline escaping false positive
````

make toolstate green again

5 years agoAuto merge of #56833 - nagisa:ios-fix, r=alexcrichton
bors [Mon, 17 Dec 2018 08:54:15 +0000 (08:54 +0000)]
Auto merge of #56833 - nagisa:ios-fix, r=alexcrichton

Provide -isysroot with sdkroot for ios builds

Necessary for the new XCode?

Absolutely positively definitely untested… although I did

```
cargo rustc -- -Clink-arg=-isysroot -Clink-arg=$sdk_root
```

and stuff did compile for once.

5 years agotidy
Shotaro Yamada [Mon, 17 Dec 2018 08:10:49 +0000 (17:10 +0900)]
tidy

5 years agoAdd MIR test
Shotaro Yamada [Mon, 17 Dec 2018 07:53:22 +0000 (16:53 +0900)]
Add MIR test

5 years agoAuto merge of #56764 - sinkuu:simpcfg_bb0, r=matthewjasper
bors [Mon, 17 Dec 2018 06:34:04 +0000 (06:34 +0000)]
Auto merge of #56764 - sinkuu:simpcfg_bb0, r=matthewjasper

mir-opt: Make SimplifyCfg collapse goto chains starting from bb0

`SimplifyCfg` pass was not able to collapse goto chains starting from bb0, leaving MIR like this:

```
bb0: {
    goto -> bb1;
}
```

5 years agoRemove `<Cycle as Iterator>::try_fold` override
Shotaro Yamada [Mon, 17 Dec 2018 00:35:28 +0000 (09:35 +0900)]
Remove `<Cycle as Iterator>::try_fold` override

It was a incorrect optimization.

5 years agoAuto merge of #56642 - nikic:llvm-6, r=alexcrichton
bors [Mon, 17 Dec 2018 04:18:14 +0000 (04:18 +0000)]
Auto merge of #56642 - nikic:llvm-6, r=alexcrichton

Bump minimum required LLVM version to 6.0

Based on the discussion in #55842, while the overall position of Rust wrt LLVM continues to be contentious, there does seem to be a consensus that there is no need for continued support of LLVM 5. This PR bumps our version requirement to LLVM 6.0 and makes Travis run against that.

I hope that this is going to unblock #52694. If I understand correctly, while this issue still exists in LLVM 6, Ubuntu has backported the relevant patch.

r? @alexcrichton

5 years agoFix grammar in compiler error for array iterators
Matthew Russell [Mon, 17 Dec 2018 02:27:41 +0000 (02:27 +0000)]
Fix grammar in compiler error for array iterators

5 years agoAuto merge of #56737 - nnethercote:TokenStream-improvements, r=petrochenkov
bors [Mon, 17 Dec 2018 01:48:23 +0000 (01:48 +0000)]
Auto merge of #56737 - nnethercote:TokenStream-improvements, r=petrochenkov

`TokenStream` improvements

Some `TokenStream` improvements: shrinking `TokenStream` and some other types, and some other code clean-ups.

5 years agoAuto merge of #56875 - Centril:rollup, r=Centril
bors [Sun, 16 Dec 2018 20:58:09 +0000 (20:58 +0000)]
Auto merge of #56875 - Centril:rollup, r=Centril

Rollup of 20 pull requests

Successful merges:

 - #53506 (Documentation for impl From for AtomicBool and other Atomic types)
 - #56343 (Remove not used mod)
 - #56439 (Clearer error message for dead assign)
 - #56640 (Add FreeBSD unsigned char platforms to std::os::raw)
 - #56648 (Fix BTreeMap UB)
 - #56672 (Document time of back operations of a Linked List)
 - #56706 (Make `const unsafe fn` bodies `unsafe`)
 - #56742 (infer: remove Box from a returned Iterator)
 - #56761 (Suggest using `.display()` when trying to print a `Path`)
 - #56781 (Update LLVM submodule)
 - #56789 (rustc: Add an unstable `simd_select_bitmask` intrinsic)
 - #56790 (Make RValue::Discriminant a normal Shallow read)
 - #56793 (rustdoc: look for comments when scraping attributes/crates from doctests)
 - #56826 (rustc: Add the `cmpxchg16b` target feature on x86/x86_64)
 - #56832 (std: Use `rustc_demangle` from crates.io)
 - #56844 (Improve CSS rule)
 - #56850 (Fixed issue with using `Self` ctor in typedefs)
 - #56855 (Remove u8 cttz hack)
 - #56857 (Fix a small mistake regarding NaNs in a deprecation message)
 - #56858 (Fix doc of `std::fs::canonicalize`)

Failed merges:

 - #56741 (treat ref-to-raw cast like a reborrow: do a special kind of retag)

r? @ghost

5 years agoAuto merge of #56876 - GuillaumeGomez:fix-JS-errors, r=QuietMisdreavus
bors [Sun, 16 Dec 2018 18:40:10 +0000 (18:40 +0000)]
Auto merge of #56876 - GuillaumeGomez:fix-JS-errors, r=QuietMisdreavus

Fix js errors

Fix JS error (you can see it on the iterator doc page) and the invalid theme switch.

r? @QuietMisdreavus

5 years agoImplement Eq, PartialEq and Hash for atomic::Ordering
Amanieu d'Antras [Sun, 16 Dec 2018 16:37:18 +0000 (16:37 +0000)]
Implement Eq, PartialEq and Hash for atomic::Ordering

5 years agoFix invalid JS file generation
Guillaume Gomez [Sun, 16 Dec 2018 13:44:44 +0000 (14:44 +0100)]
Fix invalid JS file generation

5 years agoRollup merge of #56858 - tbu-:pr_doc_canonicalize, r=shepmaster
Mazdak Farrokhzad [Sun, 16 Dec 2018 13:08:40 +0000 (14:08 +0100)]
Rollup merge of #56858 - tbu-:pr_doc_canonicalize, r=shepmaster

Fix doc of `std::fs::canonicalize`

Point out that the final component of the path name might be a filename
(and not a directory name). Previously, the doc said that all components
of the path must be directory names, when it actually only ment all but
the final one.

Fixes #54056.

5 years agoRollup merge of #56857 - tbu-:pr_doc_abssub, r=zackmdavis
Mazdak Farrokhzad [Sun, 16 Dec 2018 13:08:39 +0000 (14:08 +0100)]
Rollup merge of #56857 - tbu-:pr_doc_abssub, r=zackmdavis

Fix a small mistake regarding NaNs in a deprecation message

`max` on floats returns the other argument if one of them is NaN, which
would be `0.0` in this case. This is unlike the C functions `fdim` and
`fdimf` which return NaN if either of their arguments is NaN.

https://doc.rust-lang.org/1.31.0/std/primitive.f32.html#method.max
https://en.cppreference.com/w/c/numeric/math/fdim

5 years agoRollup merge of #56855 - nikic:remove-cttz-hack, r=nagisa
Mazdak Farrokhzad [Sun, 16 Dec 2018 13:08:37 +0000 (14:08 +0100)]
Rollup merge of #56855 - nikic:remove-cttz-hack, r=nagisa

Remove u8 cttz hack

This issue has since been fixed in LLVM: https://github.com/llvm-mirror/llvm/commit/1886c8e29a9992d73c5e6ba0d52eb98ee036ab5d

Furthermore this code doesn't actually work, because the 8 literal does not match the $BITS provided from the macro invocation, so effectively this was just dead code. Ref #43024.

What LLVM does is still not ideal for CPUs that only have bsf but not tzcnt, will create a patch for that later.

r? @nagisa

5 years agoRollup merge of #56850 - alexreg:fix-self-in-typedefs, r=petrochenkov
Mazdak Farrokhzad [Sun, 16 Dec 2018 13:08:36 +0000 (14:08 +0100)]
Rollup merge of #56850 - alexreg:fix-self-in-typedefs, r=petrochenkov

Fixed issue with using `Self` ctor in typedefs

Added two regression tests.

This is definitely suitable for a beta backport.

CC @Centril

5 years agoRollup merge of #56844 - GuillaumeGomez:improve-css-rule, r=QuietMisdreavus
Mazdak Farrokhzad [Sun, 16 Dec 2018 13:08:34 +0000 (14:08 +0100)]
Rollup merge of #56844 - GuillaumeGomez:improve-css-rule, r=QuietMisdreavus

Improve CSS rule

Needed for #56819.

r? @QuietMisdreavus

5 years agoRollup merge of #56832 - alexcrichton:external-demangle, r=Mark-Simulacrum
Mazdak Farrokhzad [Sun, 16 Dec 2018 13:08:33 +0000 (14:08 +0100)]
Rollup merge of #56832 - alexcrichton:external-demangle, r=Mark-Simulacrum

std: Use `rustc_demangle` from crates.io

No more need to duplicate the demangling routine between crates.io and
the standard library, we can use the exact same one!

5 years agoRollup merge of #56826 - alexcrichton:atomic-u128, r=gnzlbg
Mazdak Farrokhzad [Sun, 16 Dec 2018 13:08:32 +0000 (14:08 +0100)]
Rollup merge of #56826 - alexcrichton:atomic-u128, r=gnzlbg

rustc: Add the `cmpxchg16b` target feature on x86/x86_64

This appears to be called `cx16` in LLVM and a few other locations, but
the Intel Intrinsic Guide doesn't have a name for this and the CPU
manual from Intel only mentions `cmpxchg16b`, so that's the name chosen
here.

5 years agoRollup merge of #56793 - QuietMisdreavus:better-doctests, r=GuillaumeGomez
Mazdak Farrokhzad [Sun, 16 Dec 2018 13:08:30 +0000 (14:08 +0100)]
Rollup merge of #56793 - QuietMisdreavus:better-doctests, r=GuillaumeGomez

rustdoc: look for comments when scraping attributes/crates from doctests

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

When scraping out crate-level attributes and `extern crate` statements, we wouldn't look for comments, so any presence of comments would shunt it and everything after it into "everything else". This could cause parsing issues when looking for `fn main` and `extern crate my_crate` later on, which would in turn cause rustdoc to incorrectly wrap a test with `fn main` when it already had one declared.

I took the opportunity to clean up the logic a little bit, but it would still benefit from a libsyntax-based loop like the `fn main` detection.

5 years agoRollup merge of #56790 - rust-lang:borrowck-niche-discriminants, r=nikomatsakis
Mazdak Farrokhzad [Sun, 16 Dec 2018 13:08:29 +0000 (14:08 +0100)]
Rollup merge of #56790 - rust-lang:borrowck-niche-discriminants, r=nikomatsakis

Make RValue::Discriminant a normal Shallow read

Enum layout optimizations mean that the discriminant of an enum may not be stored in a tag disjoint from the rest of the fields of the enum. Stop borrow checking as though they are.

Run with MIRI to see why this is needed: https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=09a3236685a06b6096e2e2e3968b852c.

This issue exists with the lexical borrow checker as well (see #45045) so migrate mode should prevent this from being immediately breaking.

r? @nikomatsakis

Fixes #56797

5 years agoRollup merge of #56789 - alexcrichton:simd_select_bitmask, r=rkruppe
Mazdak Farrokhzad [Sun, 16 Dec 2018 13:08:28 +0000 (14:08 +0100)]
Rollup merge of #56789 - alexcrichton:simd_select_bitmask, r=rkruppe

rustc: Add an unstable `simd_select_bitmask` intrinsic

This is going to be required for binding a number of AVX-512 intrinsics
in the `stdsimd` repository, and this intrinsic is the same as
`simd_select` except that it takes a bitmask as the first argument
instead of a SIMD vector. This bitmask is then transmuted into a `<NN x
i8>` argument, depending on how many bits it is.

cc rust-lang-nursery/stdsimd#310

5 years agoRollup merge of #56781 - nikic:llvm-update, r=alexcrichton
Mazdak Farrokhzad [Sun, 16 Dec 2018 13:08:27 +0000 (14:08 +0100)]
Rollup merge of #56781 - nikic:llvm-update, r=alexcrichton

Update LLVM submodule

Fixes #52026.
Fixes #56618.

r? @alexcrichton

5 years agoRollup merge of #56761 - estebank:path-display, r=zackmdavis
Mazdak Farrokhzad [Sun, 16 Dec 2018 13:08:25 +0000 (14:08 +0100)]
Rollup merge of #56761 - estebank:path-display, r=zackmdavis

Suggest using `.display()` when trying to print a `Path`

Fix #38997.

5 years agoRollup merge of #56742 - ljedrz:remove_query_response_box, r=oli-obk
Mazdak Farrokhzad [Sun, 16 Dec 2018 13:08:24 +0000 (14:08 +0100)]
Rollup merge of #56742 - ljedrz:remove_query_response_box, r=oli-obk

infer: remove Box from a returned Iterator

5 years agoRollup merge of #56706 - oli-obk:const_unsafe_fn, r=Centril
Mazdak Farrokhzad [Sun, 16 Dec 2018 13:08:22 +0000 (14:08 +0100)]
Rollup merge of #56706 - oli-obk:const_unsafe_fn, r=Centril

Make `const unsafe fn` bodies `unsafe`

r? @Centril

Updated for tracking issue discussion https://github.com/rust-lang/rust/issues/55607#issuecomment-445882296

5 years agoRollup merge of #56672 - ccouzens:master, r=nikic
Mazdak Farrokhzad [Sun, 16 Dec 2018 13:08:21 +0000 (14:08 +0100)]
Rollup merge of #56672 - ccouzens:master, r=nikic

Document time of back operations of a Linked List

Popping and pushing from the end of a linked list is constant time. This
documentation is already there for popping and pushing from the front.

@bors: r+ 38fe8d2 rollup

5 years agoRollup merge of #56648 - RalfJung:btree, r=sfackler
Mazdak Farrokhzad [Sun, 16 Dec 2018 13:08:19 +0000 (14:08 +0100)]
Rollup merge of #56648 - RalfJung:btree, r=sfackler

Fix BTreeMap UB

BTreeMap currently causes UB by created a shared reference to a too-small allocation.  This PR fixes that by introducing a `NodeHeader` type and using that until we really need access to the key/value arrays.  Avoiding run-time checks in `into_key_slice` was somewhat tricky, see the comments embedded in the code.

I also adjusted `as_leaf_mut` to return a raw pointer, because creating a mutable reference asserts that there are no aliases to the pointee, but that's not always correct: We use `as_leaf_mut` twice to create two mutable slices for keys and values; the second call overlaps with the first slice and hence is not a unique pointer.

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

Cc @nikomatsakis @Gankro

5 years agoRollup merge of #56640 - myfreeweb:patch-1, r=alexcrichton
Mazdak Farrokhzad [Sun, 16 Dec 2018 13:08:17 +0000 (14:08 +0100)]
Rollup merge of #56640 - myfreeweb:patch-1, r=alexcrichton

Add FreeBSD unsigned char platforms to std::os::raw

Reference: https://www.freebsd.org/cgi/man.cgi?query=arch&apropos=0&sektion=7

5 years agoRollup merge of #56439 - JohnGinger:master, r=nikomatsakis
Mazdak Farrokhzad [Sun, 16 Dec 2018 13:08:16 +0000 (14:08 +0100)]
Rollup merge of #56439 - JohnGinger:master, r=nikomatsakis

Clearer error message for dead assign

I'm not that this is the right place for this (if it needs an RFC or not).

I had the problem where I misunderstood the compiler lint message https://github.com/rust-lang/rust/issues/56436 and other people seem to have had the same problem https://www.reddit.com/r/rust/comments/8cy9p4/value_assigned_to_is_never_read/.

I think this new wording might be slightly clearer (and help out beginners like me). I'm very new though, so there might be some nuance I'm missing that would make this more confusing or a bad idea for other reasons.

I thought I would create a PR to make it easy to change the code if the consensus was that it would make sense to make a change.

If this is the wrong place for this sort of thing I'll happily delete/move it.

5 years agoRollup merge of #56343 - yui-knk:remove_mir_stats_mod, r=nikomatsakis
Mazdak Farrokhzad [Sun, 16 Dec 2018 13:08:15 +0000 (14:08 +0100)]
Rollup merge of #56343 - yui-knk:remove_mir_stats_mod, r=nikomatsakis

Remove not used mod

`mir_stats` mod has not been used since c1ff10464dc6b685f871d2365e3d8a39de324ba9.

5 years agoRollup merge of #53506 - phungleson:fix-from-docs-atomic, r=KodrAus
Mazdak Farrokhzad [Sun, 16 Dec 2018 13:08:13 +0000 (14:08 +0100)]
Rollup merge of #53506 - phungleson:fix-from-docs-atomic, r=KodrAus

Documentation for impl From for AtomicBool and other Atomic types

As part of issue #51430 (cc @skade).

The impl is very simple, so not sure if we need to go into any details.

5 years agoFix js errors
Guillaume Gomez [Sun, 16 Dec 2018 12:45:46 +0000 (13:45 +0100)]
Fix js errors

5 years agoAuto merge of #56600 - ljedrz:fix_edition, r=Mark-Simulacrum
bors [Sat, 15 Dec 2018 23:50:47 +0000 (23:50 +0000)]
Auto merge of #56600 - ljedrz:fix_edition, r=Mark-Simulacrum

bootstrap: fix edition

A byproduct of work on https://github.com/rust-lang/rust/pull/56595; done with `cargo fix --edition`.

5 years agofix trait objects with a Self-having projection va
Ariel Ben-Yehuda [Sat, 15 Dec 2018 22:00:46 +0000 (00:00 +0200)]
fix trait objects with a Self-having projection va

This follows ALT2 in the issue.

Fixes #56288.

5 years agoAuto merge of #56203 - aheart:master, r=varkor
bors [Sat, 15 Dec 2018 21:34:22 +0000 (21:34 +0000)]
Auto merge of #56203 - aheart:master, r=varkor

Add lint for items deprecated in future

Resolves #55892

5 years agoCorrected expected test err messages.
Alexander Regueiro [Sat, 15 Dec 2018 17:31:46 +0000 (17:31 +0000)]
Corrected expected test err messages.

5 years agoFixed minor issues raised in review.
Alexander Regueiro [Thu, 13 Dec 2018 15:35:45 +0000 (15:35 +0000)]
Fixed minor issues raised in review.

5 years agoAdded test for issue #56835.
Alexander Regueiro [Sat, 15 Dec 2018 04:33:54 +0000 (04:33 +0000)]
Added test for issue #56835.

5 years agoFixed issue #56199.
Alexander Regueiro [Tue, 11 Dec 2018 00:05:35 +0000 (00:05 +0000)]
Fixed issue #56199.

5 years agoAuto merge of #56847 - pietroalbini:fix-broken-toolstate, r=pietroalbini
bors [Sat, 15 Dec 2018 19:11:33 +0000 (19:11 +0000)]
Auto merge of #56847 - pietroalbini:fix-broken-toolstate, r=pietroalbini

Revert merge of #56758 - Manishearth:emoji-status-toolstate

#56758 is breaking master.

r? @ghost
cc @Manishearth @kennytm

5 years agoFix doc of `std::fs::canonicalize`
Tobias Bucher [Sat, 15 Dec 2018 17:51:08 +0000 (18:51 +0100)]
Fix doc of `std::fs::canonicalize`

Point out that the final component of the path name might be a filename
(and not a directory name). Previously, the doc said that all components
of the path must be directory names, when it actually only ment all but
the final one.

Fixes #54056.

5 years agoFix a small mistake regarding NaNs in a deprecation message
Tobias Bucher [Sat, 15 Dec 2018 17:41:21 +0000 (18:41 +0100)]
Fix a small mistake regarding NaNs in a deprecation message

`max` on floats returns the other argument if one of them is NaN, which
would be `0.0` in this case. This is unlike the C functions `fdim` and
`fdimf` which return NaN if either of their arguments is NaN.

https://doc.rust-lang.org/1.31.0/std/primitive.f32.html#method.max
https://en.cppreference.com/w/c/numeric/math/fdim

5 years agoAuto merge of #56846 - pietroalbini:rollup, r=pietroalbini
bors [Sat, 15 Dec 2018 16:56:10 +0000 (16:56 +0000)]
Auto merge of #56846 - pietroalbini:rollup, r=pietroalbini

Rollup of 7 pull requests

Successful merges:

 - #56677 (#[must_use] on traits in stdlib)
 - #56679 (overhaul external doc attribute diagnostics)
 - #56682 (Update the stdsimd submodule)
 - #56691 (fix install broken link)
 - #56710 (Always set the RDRAND and RDSEED features on SGX)
 - #56713 (Test capacity of ZST vector)
 - #56841 (Add some unit tests to compiletest)

Failed merges:

r? @ghost

5 years agoRemove u8 cttz hack
Nikita Popov [Sat, 15 Dec 2018 16:26:18 +0000 (17:26 +0100)]
Remove u8 cttz hack

This issue has since been fixed in LLVM:
https://github.com/llvm-mirror/llvm/commit/1886c8e29a9992d73c5e6ba0d52eb98ee036ab5d

Furthermore this doesn't actually work, because the "8" literal does
not match the $BITS provided from the macro invocation, so effectively
this code was not being used anyway...

5 years agosubmodules: update clippy from b7a431ea to a416c5e0
Matthias Krüger [Sat, 15 Dec 2018 16:19:47 +0000 (17:19 +0100)]
submodules: update clippy from b7a431ea to a416c5e0

Changes:

````
rustup rust-lang/rust#52994
Fix test
Line length fix
Remove references to sized for end users
Remove DUMMY_SP
Add suggestion for replacement
Update lint definitions
Lint for Vec<Box<T: Sized>> - Closes #3530
Fix doc_markdown mixed case false positive
question_mark: Suggest Some(opt?) for if-else
redundant_field_names: Do not trigger on path with type params
question_mark: Lint only early returns
question_mark: Fix applicability
Remove obsolete comment
new_without_default, partialeq_ne_impl: Use span_lint_node
Update .stderr after rebase
cargo fmt and remove stabilized feature
Make suggestion Applicability::MachineApplicable
Address review feedback
Extract method
Check array lengths to prevent OOB access
Add suggestion for explicit_write lint
Fix write_with_newline escaping false positive
````

5 years agoAdd common struct for range
Shotaro Yamada [Sat, 15 Dec 2018 14:04:23 +0000 (23:04 +0900)]
Add common struct for range

5 years agoFactor out
Shotaro Yamada [Sat, 15 Dec 2018 13:44:39 +0000 (22:44 +0900)]
Factor out

5 years agoRevert "Rollup merge of #56758 - Manishearth:emoji-status-toolstate, r=kennytm"
Pietro Albini [Sat, 15 Dec 2018 13:57:17 +0000 (14:57 +0100)]
Revert "Rollup merge of #56758 - Manishearth:emoji-status-toolstate, r=kennytm"

This reverts commit 050bb10dc3e1d1c6a0aee3c50955d401658dece5, reversing
changes made to c530e31245ba10b2587bc908a65bd6e7910bc50f.

5 years agoRollup merge of #56841 - phansch:add_various_compiletest_unittests, r=oli-obk
Pietro Albini [Sat, 15 Dec 2018 13:47:40 +0000 (14:47 +0100)]
Rollup merge of #56841 - phansch:add_various_compiletest_unittests, r=oli-obk

Add some unit tests to compiletest

Based on #56792, otherwise the tests won't be executed on CI.

Just a small start, I would like to add more testing to compiletest in the future but that will require some refactoring first.

cc #47606

5 years agoRollup merge of #56713 - xfix:vec-test-zst-capacity, r=TimNN
Pietro Albini [Sat, 15 Dec 2018 13:47:39 +0000 (14:47 +0100)]
Rollup merge of #56713 - xfix:vec-test-zst-capacity, r=TimNN

Test capacity of ZST vector

Initially, #50233 accidentally changed the capacity of empty ZST. This was pointed out during code review. This commit adds a test to prevent capacity of ZST vectors from accidentally changing to prevent that from happening again.

5 years agoRollup merge of #56710 - jethrogb:jb/sgx-target-features, r=alexcrichton
Pietro Albini [Sat, 15 Dec 2018 13:47:38 +0000 (14:47 +0100)]
Rollup merge of #56710 - jethrogb:jb/sgx-target-features, r=alexcrichton

Always set the RDRAND and RDSEED features on SGX

Not sure if this is 100% correct.

This [Intel article](https://software.intel.com/en-us/articles/intel-software-guard-extensions-tutorial-part-5-enclave-development) goes in great depth regarding using (untrusted) CPUID to see whether RDRAND/RDSEED is supported, and explains what happens to the enclave if the CPUID result is faked.

I'd say that an implementation of SGX that doesn't make RDRAND available to the enclave is so severely limited/broken that it's ok if you get #UD in that case. The case is less clear for RDSEED, but it so far every processor released by Intel with SGX support also has RDSEED (including Gemini Lake).

cc @briansmith

5 years agoRollup merge of #56691 - mishaker:fix_doc_install_broken_link, r=jonas-schievink
Pietro Albini [Sat, 15 Dec 2018 13:47:37 +0000 (14:47 +0100)]
Rollup merge of #56691 - mishaker:fix_doc_install_broken_link, r=jonas-schievink

fix install broken link

solves #56690

5 years agoRollup merge of #56682 - alexcrichton:update-stdsimd, r=nikomatsakis
Pietro Albini [Sat, 15 Dec 2018 13:47:36 +0000 (14:47 +0100)]
Rollup merge of #56682 - alexcrichton:update-stdsimd, r=nikomatsakis

Update the stdsimd submodule

Includes some new stabilized intrinsics for the wasm32 target!

Closes #56292

5 years agoRollup merge of #56679 - euclio:external-doc-parse, r=estebank
Pietro Albini [Sat, 15 Dec 2018 13:47:34 +0000 (14:47 +0100)]
Rollup merge of #56679 - euclio:external-doc-parse, r=estebank

overhaul external doc attribute diagnostics

This PR improves the error handling and spans for the external doc attribute. Many cases that silently failed before now emit errors, spans are tightened, and the errors have help and suggestions.

I tried to address all the cases that users ran into in the tracking issue.

cc #44732

r? @QuietMisdreavus