]> git.lizzy.rs Git - rust.git/log
rust.git
6 years agoRollup merge of #50231 - GuillaumeGomez:doc-aliases, r=QuietMisdreavus
kennytm [Fri, 27 Apr 2018 06:16:48 +0000 (14:16 +0800)]
Rollup merge of #50231 - GuillaumeGomez:doc-aliases, r=QuietMisdreavus

Add more doc aliases

r? @QuietMisdreavus

6 years agoRollup merge of #50229 - GuillaumeGomez:search-one-result, r=QuietMisdreavus
kennytm [Fri, 27 Apr 2018 06:16:46 +0000 (14:16 +0800)]
Rollup merge of #50229 - GuillaumeGomez:search-one-result, r=QuietMisdreavus

Add setting to go to item if there is only one result

Fixes #50216.

r? @QuietMisdreavus

6 years agoRollup merge of #50227 - sinkuu:ice_non_local_trait, r=estebank
kennytm [Fri, 27 Apr 2018 06:16:45 +0000 (14:16 +0800)]
Rollup merge of #50227 - sinkuu:ice_non_local_trait, r=estebank

Fix ICE with erroneous `impl Trait` in a trait impl

Fixes #49841.

6 years agoRollup merge of #50222 - michaelwoerister:bump-stage0-compiler-to-2018-04-24, r=alexc...
kennytm [Fri, 27 Apr 2018 06:16:44 +0000 (14:16 +0800)]
Rollup merge of #50222 - michaelwoerister:bump-stage0-compiler-to-2018-04-24, r=alexcrichton

Bump bootstrap compiler to 2018-04-24

r? @alexcrichton

6 years agoRollup merge of #49707 - steveklabnik:rustc-book, r=QuietMisdreavus
kennytm [Fri, 27 Apr 2018 06:16:42 +0000 (14:16 +0800)]
Rollup merge of #49707 - steveklabnik:rustc-book, r=QuietMisdreavus

Add "the Rustc book"

This PR introduces a new book into the documentation, "The rustc book". We already have books for Cargo, and for Rustdoc, rustc should have some too. This book is focused on *users* of rustc, and provides a nice place to write documentation for users.

I haven't put content here, but plan on scaffolding it out very soon, and wanted this PR open for a few discussions first. One of those is "what exactly should said TOC be?" I plan on having a proposed one up tomorrow, but figured I'd let people know to start thinking about it now.

The big one is that we also will want to put https://github.com/rust-lang-nursery/rustc-guide in-tree as well, and the naming is... tough. I'm proposing:

* doc.rust-lang.org/rustc is "The Rustc book", to mirror the other tools' books.
* doc.rust-lang.org/rustc-contribution is "The Rustc contribution guide", and contains that book

@nikomatsakis et al, any thoughts on this? I'm not attached to it in particular, but had to put something together to get this discussion going. I think mirroring the other tools is a good idea for this work, but am not sure where exactly that leaves yours.

Fixes https://github.com/rust-docs/team/issues/11

6 years agoAuto merge of #49420 - nox:enum-scalarpair, r=eddyb
bors [Fri, 27 Apr 2018 01:30:10 +0000 (01:30 +0000)]
Auto merge of #49420 - nox:enum-scalarpair, r=eddyb

Use ScalarPair for tagged enums

6 years agoAuto merge of #50253 - nikomatsakis:regressions-2018-04-26, r=eddyb
bors [Thu, 26 Apr 2018 23:11:39 +0000 (23:11 +0000)]
Auto merge of #50253 - nikomatsakis:regressions-2018-04-26, r=eddyb

drop elaboration should reveal all

This used to happen implicitly through the normalization function; but we now keep the param-env as is, which seems less surprising.

cc #49685

r? @eddyb

6 years agoAuto merge of #49513 - nox:univariant-fieldless-enum-as-zst, r=eddyb
bors [Thu, 26 Apr 2018 18:26:03 +0000 (18:26 +0000)]
Auto merge of #49513 - nox:univariant-fieldless-enum-as-zst, r=eddyb

Treat repr(Rust) univariant fieldless enums as ZSTs

This makes all those enums be represented the same way:

```rust
enum A1 { B1 }
enum A2 { B2 = 0 }
enum A3 { B3, C3(!) }
```

Related to #15747.

Cc @rust-lang/wg-codegen @rust-lang/lang

6 years agoAdd setting to go to item if there is only one result
Guillaume Gomez [Wed, 25 Apr 2018 17:50:32 +0000 (19:50 +0200)]
Add setting to go to item if there is only one result

6 years agoadd regression test
Niko Matsakis [Thu, 26 Apr 2018 17:42:22 +0000 (13:42 -0400)]
add regression test

Fixes #49685

6 years agouse `reveal_all` during drop elaboration
Niko Matsakis [Thu, 26 Apr 2018 17:31:31 +0000 (13:31 -0400)]
use `reveal_all` during drop elaboration

This used to happen by default as part of the normalization routine
that was being used.

6 years agoimproved debug output
Niko Matsakis [Thu, 26 Apr 2018 17:31:24 +0000 (13:31 -0400)]
improved debug output

6 years agoAuto merge of #50228 - irinagpopa:backstory-v2, r=nikomatsakis
bors [Thu, 26 Apr 2018 16:00:48 +0000 (16:00 +0000)]
Auto merge of #50228 - irinagpopa:backstory-v2, r=nikomatsakis

Rename rustc_back to rustc_target and move ABI code to it.

Fixes #45226.

6 years agoFixed tidy errors.
Irina Popa [Thu, 26 Apr 2018 13:07:26 +0000 (16:07 +0300)]
Fixed tidy errors.

6 years agorustc_target: move in syntax::abi and flip dependency.
Irina Popa [Wed, 25 Apr 2018 16:30:39 +0000 (19:30 +0300)]
rustc_target: move in syntax::abi and flip dependency.

6 years agoMark SingleVariant as repr(u8) in c-style-enum
Anthony Ramine [Wed, 25 Apr 2018 08:33:02 +0000 (10:33 +0200)]
Mark SingleVariant as repr(u8) in c-style-enum

I should rather properly fix debuginfo but I have no clue how to do that.

6 years agoTreat repr(Rust) univariant fieldless enums as a ZST (fixes #15747)
Anthony Ramine [Fri, 30 Mar 2018 13:49:56 +0000 (15:49 +0200)]
Treat repr(Rust) univariant fieldless enums as a ZST (fixes #15747)

This makes all those enums be represented the same way:

```rust
enum A1 { B1 }
enum A2 { B2 = 0 }
enum A3 { B3, C3(!) }
```

6 years agorustc_target: move in cabi_* from rustc_trans.
Irina Popa [Wed, 25 Apr 2018 13:45:29 +0000 (16:45 +0300)]
rustc_target: move in cabi_* from rustc_trans.

6 years agorustc_trans: generalize cabi_* to any context type.
Irina Popa [Wed, 18 Apr 2018 13:01:26 +0000 (16:01 +0300)]
rustc_trans: generalize cabi_* to any context type.

6 years agorustc_target: move for_variant and field TyLayout methods to a trait.
Irina Popa [Wed, 7 Feb 2018 17:27:43 +0000 (19:27 +0200)]
rustc_target: move for_variant and field TyLayout methods to a trait.

6 years agorustc_target: move LayoutOf's type parameter to an associated type.
Irina Popa [Mon, 5 Feb 2018 19:07:20 +0000 (21:07 +0200)]
rustc_target: move LayoutOf's type parameter to an associated type.

6 years agorustc_target: move in type definitions from rustc_trans::abi.
Irina Popa [Thu, 28 Dec 2017 17:07:02 +0000 (19:07 +0200)]
rustc_target: move in type definitions from rustc_trans::abi.

6 years agorustc_target: move in type definitions from ty::layout.
Irina Popa [Mon, 18 Dec 2017 14:18:36 +0000 (16:18 +0200)]
rustc_target: move in type definitions from ty::layout.

6 years agoRename rustc_back::target to rustc_target::spec.
Irina Popa [Fri, 8 Dec 2017 19:18:21 +0000 (21:18 +0200)]
Rename rustc_back::target to rustc_target::spec.

6 years agorustc_back: move LinkerFlavor, PanicStrategy, and RelroLevel to target.
Irina Popa [Fri, 8 Dec 2017 15:07:47 +0000 (17:07 +0200)]
rustc_back: move LinkerFlavor, PanicStrategy, and RelroLevel to target.

6 years agoAdd a test for casts of univariant C-like enums
Anthony Ramine [Thu, 12 Apr 2018 13:11:14 +0000 (15:11 +0200)]
Add a test for casts of univariant C-like enums

6 years agoProperly evaluate zst enum
Oliver Schneider [Sat, 31 Mar 2018 21:06:26 +0000 (23:06 +0200)]
Properly evaluate zst enum

6 years agoConsistently use C_uint_big for discriminants
Anthony Ramine [Wed, 11 Apr 2018 15:30:49 +0000 (17:30 +0200)]
Consistently use C_uint_big for discriminants

6 years agoProperly look for uninhabitedness when handling discriminants
Anthony Ramine [Wed, 11 Apr 2018 15:25:18 +0000 (17:25 +0200)]
Properly look for uninhabitedness when handling discriminants

6 years agoDo not ICE on generics mismatch with non-local traits
Shotaro Yamada [Mon, 23 Apr 2018 04:54:09 +0000 (13:54 +0900)]
Do not ICE on generics mismatch with non-local traits

Fixes #49841

6 years agoAuto merge of #50245 - GuillaumeGomez:rollup, r=GuillaumeGomez
bors [Thu, 26 Apr 2018 11:07:14 +0000 (11:07 +0000)]
Auto merge of #50245 - GuillaumeGomez:rollup, r=GuillaumeGomez

Rollup of 4 pull requests

Successful merges:

 - #50177 (mark std::str::replace(,n) as #[must_use])
 - #50207 (Hash EntryKind::AssociatedConst const data)
 - #50214 (Js improvements)
 - #50219 (Added missing `.` in docs.)

Failed merges:

 - #50229 (Add setting to go to item if there is only one result)

6 years agoAdd more doc aliases
Guillaume Gomez [Wed, 25 Apr 2018 18:10:58 +0000 (20:10 +0200)]
Add more doc aliases

6 years agoAuto merge of #50072 - oli-obk:discriminants, r=eddyb
bors [Thu, 26 Apr 2018 08:51:39 +0000 (08:51 +0000)]
Auto merge of #50072 - oli-obk:discriminants, r=eddyb

Allow variant discriminant initializers to refer to other initializer…

…s of the same enum

r? @eddyb

fixes the 2.4 failure of https://github.com/rust-lang/rust/issues/49765

cc @durka @retep998

6 years agoRollup merge of #50219 - ralfbiedert:master, r=frewsxcv
Guillaume Gomez [Thu, 26 Apr 2018 08:11:16 +0000 (10:11 +0200)]
Rollup merge of #50219 - ralfbiedert:master, r=frewsxcv

Added missing `.` in docs.

6 years agoRollup merge of #50214 - GuillaumeGomez:JS-improvements, r=QuietMisdreavus
Guillaume Gomez [Thu, 26 Apr 2018 08:11:15 +0000 (10:11 +0200)]
Rollup merge of #50214 - GuillaumeGomez:JS-improvements, r=QuietMisdreavus

Js improvements

r? @QuietMisdreavus

6 years agoRollup merge of #50207 - wesleywiser:hash_const_data, r=eddyb
Guillaume Gomez [Thu, 26 Apr 2018 08:11:14 +0000 (10:11 +0200)]
Rollup merge of #50207 - wesleywiser:hash_const_data, r=eddyb

Hash EntryKind::AssociatedConst const data

Related to #49991
r? @michaelwoerister
cc @eddyb

6 years agoRollup merge of #50177 - matthiaskrgr:std_std_replacen__must_use, r=oli-obk
Guillaume Gomez [Thu, 26 Apr 2018 08:11:11 +0000 (10:11 +0200)]
Rollup merge of #50177 - matthiaskrgr:std_std_replacen__must_use, r=oli-obk

mark std::str::replace(,n) as #[must_use]

let x = "a b c c";
x.replacen("c", "d", 2");
might not do what people might think it does.

6 years agoUse ScalarPair for tagged enums
Anthony Ramine [Tue, 27 Mar 2018 14:44:03 +0000 (16:44 +0200)]
Use ScalarPair for tagged enums

6 years agoAllow variant discriminant initializers to refer to other initializers of the same...
Oliver Schneider [Thu, 19 Apr 2018 11:17:09 +0000 (13:17 +0200)]
Allow variant discriminant initializers to refer to other initializers of the same enum

6 years agoAuto merge of #49732 - Zoxc:sync-dep-graph, r=michaelwoerister
bors [Thu, 26 Apr 2018 06:38:14 +0000 (06:38 +0000)]
Auto merge of #49732 - Zoxc:sync-dep-graph, r=michaelwoerister

Make incremental compilation thread-safe

r? @michaelwoerister

6 years agoAuto merge of #50236 - nrc:update, r=alexcrichton
bors [Thu, 26 Apr 2018 03:36:22 +0000 (03:36 +0000)]
Auto merge of #50236 - nrc:update, r=alexcrichton

Update rustfmt and rls

r? @alexcrichton

6 years agohandle license check
Nick Cameron [Thu, 26 Apr 2018 03:10:11 +0000 (15:10 +1200)]
handle license check

6 years agoAuto merge of #50131 - Manishearth:crate-in-local, r=petrochenkov
bors [Wed, 25 Apr 2018 23:25:47 +0000 (23:25 +0000)]
Auto merge of #50131 - Manishearth:crate-in-local, r=petrochenkov

Allow crate:: in local paths

Currently if you want to use `crate` locally you have to do `::crate::`. This shouldn't be necessary

(will fix up tests later)

r? @petrochenkov

6 years agoUpdate rustfmt and rls
Nick Cameron [Wed, 25 Apr 2018 22:11:28 +0000 (10:11 +1200)]
Update rustfmt and rls

6 years agoAuto merge of #50016 - tmandry:cleanup-binder, r=nikomatsakis
bors [Wed, 25 Apr 2018 20:58:53 +0000 (20:58 +0000)]
Auto merge of #50016 - tmandry:cleanup-binder, r=nikomatsakis

Make Binder's field private and clean up its usage

AKA "tour de rustc"

Closes #49814.

6 years agoFix crate:: in local paths
Manish Goregaokar [Sat, 21 Apr 2018 00:04:29 +0000 (17:04 -0700)]
Fix crate:: in local paths

6 years agoAuto merge of #49321 - ishitatsuyuki:compile-pass, r=alexcrichton
bors [Wed, 25 Apr 2018 14:52:30 +0000 (14:52 +0000)]
Auto merge of #49321 - ishitatsuyuki:compile-pass, r=alexcrichton

Introduce compile-pass

r? @alexcrichton

The plan is to move things that cannot fail (no assert, unwrap, etc) out so we don't have to run them, and in the long term we can also stop running LLVM for them.

Out of 3215 tests...

```
Language            Files        Lines         Code     Comments       Blanks
Rust                 3215       119254        64688        35135        19431
```

16% of them has an empty main (which is already moved in this PR).

```
grep -rnPzl 'fn main\(\)\s*{\s*}' | xargs rg --files-without-match cfg | wc -l
547
```

And only 50% of the tests contains assertions:

```
rg -e assert -e unwrap -e expect -e panic -l | wc -l
1600
```

The remainder is likely able to get moved, but they need check by a human so I didn't touch them in PR.

cc @rust-lang/compiler

* [ ] Update documentation

6 years agoBump bootstrap compiler to 2018-04-24
Michael Woerister [Wed, 25 Apr 2018 13:57:33 +0000 (15:57 +0200)]
Bump bootstrap compiler to 2018-04-24

6 years agoAdded missing `.` in docs.
Ralf Biedert [Wed, 25 Apr 2018 12:14:43 +0000 (14:14 +0200)]
Added missing `.` in docs.

6 years agoAuto merge of #50134 - andjo403:jobserver, r=michaelwoerister
bors [Wed, 25 Apr 2018 11:40:18 +0000 (11:40 +0000)]
Auto merge of #50134 - andjo403:jobserver, r=michaelwoerister

make rustdoc test follow the jobserver limit of threads

fix that to many threads is executing at the same time
when rustdoc test is executed.

6 years agoMove the Lock into OpenTask
John Kåre Alsaker [Wed, 25 Apr 2018 09:55:12 +0000 (11:55 +0200)]
Move the Lock into OpenTask

6 years agoAddress comments
John Kåre Alsaker [Wed, 25 Apr 2018 00:30:18 +0000 (02:30 +0200)]
Address comments

6 years agoMake DepGraph thread-safe
John Kåre Alsaker [Fri, 6 Apr 2018 12:52:36 +0000 (14:52 +0200)]
Make DepGraph thread-safe

6 years agoAuto merge of #50110 - oli-obk:warn_all_the_constants, r=estebank
bors [Wed, 25 Apr 2018 09:19:07 +0000 (09:19 +0000)]
Auto merge of #50110 - oli-obk:warn_all_the_constants, r=estebank

Warn on all erroneous constants

fixes #49791
fixes #47054

@Zoxc this PR triggers the nondeterministic errors of https://github.com/rust-lang/rust/pull/49950#issuecomment-383074959 really often (at least on stage1).

6 years agocompiletest: introduce skip-trans
Tatsuyuki Ishi [Wed, 25 Apr 2018 09:05:47 +0000 (18:05 +0900)]
compiletest: introduce skip-trans

6 years agoSome JS improvements
Guillaume Gomez [Tue, 24 Apr 2018 18:23:57 +0000 (20:23 +0200)]
Some JS improvements

6 years agoAuto merge of #50106 - nnethercote:nearest_common_ancestor, r=nikomatsakis
bors [Wed, 25 Apr 2018 06:48:40 +0000 (06:48 +0000)]
Auto merge of #50106 - nnethercote:nearest_common_ancestor, r=nikomatsakis

Speed up `nearest_common_ancestor`.

`nearest_common_ancestor` can be made faster.

Here are all the benchmarks where one of the measurements improved by at least 1%.
```
clap-rs-check
avg: -4.5% min: -8.8% max: -0.3%
clap-rs
avg: -2.6% min: -4.5% max: 0.5%
script-servo
avg: -1.7% min: -3.6% max: 0.0%
regression-31157
avg: -1.5% min: -2.6% max: -0.4%
hyper
avg: -1.2% min: -2.5% max: -0.0%
piston-image
avg: -1.6% min: -2.5% max: 0.1%
regex
avg: -1.2% min: -2.2% max: 0.0%
issue-46449
avg: -1.8% min: -2.1% max: -0.7%
crates.io
avg: -1.2% min: -2.1% max: 0.0%
hyper-check
avg: -1.0% min: -2.1% max: -0.1%
clap-rs-opt
avg: -1.4% min: -2.0% max: -0.3%
piston-image-check
avg: -1.2% min: -1.9% max: -0.1%
regex-check
avg: -0.5% min: -1.8% max: -0.1%
syn
avg: -1.1% min: -1.7% max: -0.1%
tokio-webpush-simple-check
avg: -1.1% min: -1.6% max: -0.3%
tokio-webpush-simple
avg: -1.2% min: -1.6% max: -0.0%
helloworld-check
avg: -1.4% min: -1.6% max: -1.2%
deeply-nested
avg: -1.2% min: -1.4% max: -0.8%
encoding-check
avg: -0.8% min: -1.3% max: -0.3%
unify-linearly-check
avg: -1.0% min: -1.3% max: -0.8%
script-servo-check
avg: -0.6% min: -1.3% max: 0.0%
regression-31157-check
avg: -0.9% min: -1.2% max: -0.7%
script-servo-opt
avg: -0.5% min: -1.2% max: 0.1%
deeply-nested-check
avg: -0.8% min: -1.2% max: -0.7%
encoding
avg: -0.7% min: -1.1% max: -0.3%
issue-46449-check
avg: -0.9% min: -1.1% max: -0.6%
parser-check
avg: -0.9% min: -1.1% max: -0.8%
html5ever
avg: -0.5% min: -1.0% max: -0.0%
```

6 years agoAuto merge of #50100 - Manishearth:edition-path-lint, r=nikomatsakis
bors [Wed, 25 Apr 2018 04:19:06 +0000 (04:19 +0000)]
Auto merge of #50100 - Manishearth:edition-path-lint, r=nikomatsakis

Edition breakage lint for absolute paths starting with modules

We plan to enable `extern_absolute_paths` in the 2018 edition. To allow for that, folks must transition their paths in a previous edition to the new one. This makes paths which import module contents via `use module::` or `::module::` obsolete, and we must edition-lint these.

https://internals.rust-lang.org/t/the-great-module-adventure-continues/6678/205?u=manishearth is the current plan for paths.

r? @nikomatsakis

Fixes #48722

6 years agoHash EntryKind::AssociatedConst const data
Wesley Wiser [Wed, 25 Apr 2018 03:18:58 +0000 (23:18 -0400)]
Hash EntryKind::AssociatedConst const data

Related to #49991

6 years agoRemove methods with implicit Binder::skip_bound
Tyler Mandry [Fri, 20 Apr 2018 16:46:18 +0000 (11:46 -0500)]
Remove methods with implicit Binder::skip_bound

Fixes #20664.

6 years agoMake Binder's field private and clean up its usage
Tyler Mandry [Wed, 25 Apr 2018 02:45:49 +0000 (21:45 -0500)]
Make Binder's field private and clean up its usage

6 years agoAuto merge of #49986 - zofrex:better-derived-argument-names, r=Manishearth
bors [Wed, 25 Apr 2018 01:50:56 +0000 (01:50 +0000)]
Auto merge of #49986 - zofrex:better-derived-argument-names, r=Manishearth

Provide better names for builtin deriving-generated attributes

First attempt at fixing #49967

Not in love with any choices here, don't be shy if you aren't happy with anything :)

I've tested that this produces nicer names in documentation, and that it no longer has issues conflicting with constants with the same name. (I guess we _could_ make a test for that... unsure if that would be valuable)

In all cases I took the names from the methods as declared in the relevant trait.

In some cases I had to prepend the names with _ otherwise there were errors about un-used variables. I'm uneasy with the inconsistency... do they all need to be like that? Is there a way to generate an alternate impl or use a different name (`_`?) in the cases where the arguments are not used?

Lastly the gensym addition to Ident I implemented largely as suggested, but I want to point out it's a little circuitous (at least, as far as I understand it). `cx.ident_of(name)` is just `Ident::from_str`, so we create an Ident then another Ident from it. `Ident::with_empty_ctxt(Symbol::gensym(string))` may or may not be equivalent, I don't know if it's important to intern it _then_ gensym it. It seems like either we could use that, or if we do want a new method to make this convenient, it could be on Ident instead (`from_str_gensymed`?)

6 years agoTest format hygiene
James Sanderson [Tue, 24 Apr 2018 21:15:00 +0000 (22:15 +0100)]
Test format hygiene

6 years agoAuto merge of #50096 - alexcrichton:less-simd-warnings, r=michaelwoerister
bors [Tue, 24 Apr 2018 20:59:15 +0000 (20:59 +0000)]
Auto merge of #50096 - alexcrichton:less-simd-warnings, r=michaelwoerister

Tweak some warnings around #[target_feature]

This commit fixes up some issues discovered when getting the `stdsimd` crate's CI compiling again.

6 years agoGensym arguments for format macro
James Sanderson [Tue, 24 Apr 2018 20:30:13 +0000 (21:30 +0100)]
Gensym arguments for format macro

6 years agoTest deriving hygiene
James Sanderson [Thu, 19 Apr 2018 20:11:43 +0000 (21:11 +0100)]
Test deriving hygiene

6 years agoAuto merge of #49933 - oli-obk:miri_rustup, r=eddyb
bors [Tue, 24 Apr 2018 18:04:51 +0000 (18:04 +0000)]
Auto merge of #49933 - oli-obk:miri_rustup, r=eddyb

Fix the miri tool

r? @eddyb

cc @bjorn3

fixes #49777

6 years agomore nits
steveklabnik [Tue, 24 Apr 2018 16:21:08 +0000 (12:21 -0400)]
more nits

6 years agoAuto merge of #50079 - NickAtAccuPS:android_abstract_socket, r=sfackler
bors [Tue, 24 Apr 2018 14:15:56 +0000 (14:15 +0000)]
Auto merge of #50079 - NickAtAccuPS:android_abstract_socket, r=sfackler

Android abstract unix domain sockets AddressKind correction

The prior check causes abstract unix domain sockets to return AddressKind::Unnamed instead of AddressKind::Abstract on Android.

Other than the immediately proceeding comment "macOS seems to return a len of 16 and a zeroed sun_path for unnamed addresses" the check as-implemented does not seem to have alternative explanation. I couldn't find an alternative explanation while stepping though git blame. I suspect the AddressKind::Unnamed nonzero check should instead be if macos, length 16, and zeroed array. @sfackler could you comment on this, the code as-is is the same from your initial addition of abstract uds support.

6 years agoWarn on all erroneous constants
Oliver Schneider [Fri, 20 Apr 2018 12:18:29 +0000 (14:18 +0200)]
Warn on all erroneous constants

6 years agoAuto merge of #49911 - rcoh:master, r=nikomatsakis
bors [Tue, 24 Apr 2018 10:44:22 +0000 (10:44 +0000)]
Auto merge of #49911 - rcoh:master, r=nikomatsakis

Don't allow #[should_panic] with non-() tests

Adds (removes) support for `#[should_panic]` when the test is non-`()`

6 years agoAuto merge of #49837 - nikomatsakis:chalkify-engine, r=scalexm
bors [Tue, 24 Apr 2018 08:32:52 +0000 (08:32 +0000)]
Auto merge of #49837 - nikomatsakis:chalkify-engine, r=scalexm

work towards chalkify-ing the engine

This work towards creating a "all program clauses needed for this goal" query

r? @scalexm

6 years agoAuto merge of #50191 - kennytm:rollup, r=kennytm
bors [Tue, 24 Apr 2018 05:43:32 +0000 (05:43 +0000)]
Auto merge of #50191 - kennytm:rollup, r=kennytm

Rollup of 11 pull requests

Successful merges:

 - #49461 (std: Child::kill() returns error if process has already exited)
 - #49727 (Add Cell::update)
 - #49812 (Fix revision support for UI tests.)
 - #49829 (Add doc links to `std::os` extension traits)
 - #49906 (Stabilize `std::hint::unreachable_unchecked`.)
 - #49970 (Deprecate Read::chars and char::decode_utf8)
 - #49985 (don't see issue #0)
 - #50118 (fix search bar bug)
 - #50139 (encourage descriptive issue titles)
 - #50174 (Use FxHashMap in syntax_pos::symbol::Interner::intern.)
 - #50185 (core: Fix overflow in `int::mod_euc` when `self < 0 && rhs == MIN`)

Failed merges:

6 years agoRollup merge of #50185 - dmizuk:mod_euc-fix-overflow, r=kennytm
kennytm [Tue, 24 Apr 2018 03:57:11 +0000 (11:57 +0800)]
Rollup merge of #50185 - dmizuk:mod_euc-fix-overflow, r=kennytm

core: Fix overflow in `int::mod_euc` when `self < 0 && rhs == MIN`

This commit removes usage of `abs`, which overflows when `self == MIN`.

6 years agoRollup merge of #50174 - nnethercote:FxHashMap-Interner, r=michaelwoerister
kennytm [Tue, 24 Apr 2018 03:57:10 +0000 (11:57 +0800)]
Rollup merge of #50174 - nnethercote:FxHashMap-Interner, r=michaelwoerister

Use FxHashMap in syntax_pos::symbol::Interner::intern.

Because it's faster than HashMap.

This change reduces the time taken for a few of the rustc-perf
benchmarks, mostly the small ones, by up to 5%.
```
coercions
        avg: -1.3%      min: -5.5%      max: -0.0%
helloworld-check
        avg: -2.3%      min: -3.5%      max: -1.8%
deeply-nested-check
        avg: -1.4%      min: -3.2%      max: -0.5%
tuple-stress-opt
        avg: -0.7%      min: -2.0%      max: -0.1%
unify-linearly-check
        avg: -1.2%      min: -1.9%      max: -0.6%
coercions-check
        avg: -0.8%      min: -1.3%      max: -0.4%
unused-warnings-check
        avg: -1.0%      min: -1.3%      max: -0.8%
deeply-nested-opt
        avg: -0.5%      min: -1.2%      max: -0.2%
deeply-nested
        avg: -0.7%      min: -1.2%      max: -0.4%
helloworld
        avg: -0.8%      min: -1.1%      max: -0.7%
tuple-stress-check
        avg: -0.5%      min: -1.0%      max: -0.1%
unused-warnings
        avg: -0.8%      min: -1.0%      max: -0.7%
unused-warnings-opt
        avg: -0.8%      min: -1.0%      max: -0.7%
coercions-opt
        avg: -0.5%      min: -1.0%      max: -0.1%
helloworld-opt
        avg: -0.7%      min: -1.0%      max: -0.6%
```

6 years agoRollup merge of #50139 - nivkner:docs, r=steveklabnik
kennytm [Tue, 24 Apr 2018 03:57:09 +0000 (11:57 +0800)]
Rollup merge of #50139 - nivkner:docs, r=steveklabnik

encourage descriptive issue titles

There are two sides to avoiding duplicate issues, searching for existing ones, and making sure existing ones can be searched for. This addresses the later.

r? @steveklabnik

6 years agoRollup merge of #50118 - GuillaumeGomez:search-bar-bug, r=QuietMisdreavus
kennytm [Tue, 24 Apr 2018 03:57:08 +0000 (11:57 +0800)]
Rollup merge of #50118 - GuillaumeGomez:search-bar-bug, r=QuietMisdreavus

fix search bar bug

Fixes #50064.

r? @QuietMisdreavus

6 years agoRollup merge of #49985 - zackmdavis:0, r=estebank
kennytm [Tue, 24 Apr 2018 03:57:07 +0000 (11:57 +0800)]
Rollup merge of #49985 - zackmdavis:0, r=estebank

don't see issue #0

The unstable-feature attribute requires an issue (neglecting it is
E0547), which gets used in the error messages. Unfortunately, there are
some cases where "0" is apparently used a placeholder where no issue
exists, directing the user to see the (nonexistent) issue #0. (It would
have been better to either let `issue` be optional—compare to how issue
is an `Option<u32>` in the feature-gate declarations in
libsyntax/feature-gate.rs—or actually require that an issue be created.)
Rather than endeavoring to change how `#[unstable]` works at this time
(given competing contributor and reviewer priorities), this simple patch
proposes the less-ambitious solution of just not adding the "(see
issue)" note when the number is zero.

Resolves #49983.

6 years agoRollup merge of #49970 - SimonSapin:deprecate, r=sfackler
kennytm [Tue, 24 Apr 2018 03:57:05 +0000 (11:57 +0800)]
Rollup merge of #49970 - SimonSapin:deprecate, r=sfackler

Deprecate Read::chars and char::decode_utf8

Per FCP:

* https://github.com/rust-lang/rust/issues/27802#issuecomment-377537778
* https://github.com/rust-lang/rust/issues/33906#issuecomment-377534308

6 years agoRollup merge of #49906 - kennytm:stable-unreachable, r=sfackler
kennytm [Tue, 24 Apr 2018 03:57:04 +0000 (11:57 +0800)]
Rollup merge of #49906 - kennytm:stable-unreachable, r=sfackler

Stabilize `std::hint::unreachable_unchecked`.

Closes #43751.

6 years agoRollup merge of #49829 - ecstatic-morse:os-docs, r=steveklabnik
kennytm [Tue, 24 Apr 2018 03:57:03 +0000 (11:57 +0800)]
Rollup merge of #49829 - ecstatic-morse:os-docs, r=steveklabnik

Add doc links to `std::os` extension traits

Addresses a small subset of #29367.

This adds documentation links to the original type for various OS-specific extension traits, and uses a common sentence for introducing such traits (which now consistently ends in a period).

6 years agoRollup merge of #49812 - ehuss:ui-test-revisions, r=nikomatsakis
kennytm [Tue, 24 Apr 2018 03:57:02 +0000 (11:57 +0800)]
Rollup merge of #49812 - ehuss:ui-test-revisions, r=nikomatsakis

Fix revision support for UI tests.

Fixes #48878

6 years agoRollup merge of #49727 - stjepang:cell-update, r=SimonSapin
kennytm [Tue, 24 Apr 2018 03:57:00 +0000 (11:57 +0800)]
Rollup merge of #49727 - stjepang:cell-update, r=SimonSapin

Add Cell::update

This commit adds a new method `Cell::update`, which applies a function to the value inside the cell.

Previously discussed in: https://github.com/rust-lang/rfcs/issues/2171

### Motivation

Updating `Cell`s is currently a bit verbose. Here are several real examples (taken from rustc and crossbeam):

```rust
self.print_fuel.set(self.print_fuel.get() + 1);

self.diverges.set(self.diverges.get() | Diverges::Always);

let guard_count = self.guard_count.get();
self.guard_count.set(guard_count.checked_add(1).unwrap());
if guard_count == 0 {
    // ...
}
```

With the addition of the new method `Cell::update`, this code can be simplified to:

```rust
self.print_fuel.update(|x| x + 1);

self.diverges.update(|x| x | Diverges::Always);

if self.guard_count.update(|x| x.checked_add(1).unwrap()) == 1 {
    // ...
}
```

### Unresolved questions

1. Should we return the old value instead of the new value (like in `fetch_add` and `fetch_update`)?
2. Should the return type simply be `()`?
3. Naming: `update` vs `modify` vs `mutate` etc.

cc @SimonSapin

6 years agoRollup merge of #49461 - andreastt:child-kill-exited, r=Mark-Simulacrum
kennytm [Tue, 24 Apr 2018 03:56:59 +0000 (11:56 +0800)]
Rollup merge of #49461 - andreastt:child-kill-exited, r=Mark-Simulacrum

std: Child::kill() returns error if process has already exited

This patch makes it clear in std::process::Child::kill()'s API
documentation that an error is returned if the child process has
already cleanly exited.  This is implied by the example, but not
called out explicitly.

6 years agoAuto merge of #48999 - GuillaumeGomez:add-repeat-on-slice, r=Kimundi
bors [Tue, 24 Apr 2018 03:31:11 +0000 (03:31 +0000)]
Auto merge of #48999 - GuillaumeGomez:add-repeat-on-slice, r=Kimundi

Add repeat method on slice

Fixes #48784.

6 years agoAuto merge of #48989 - ExpHP:path-prefix, r=dtolnay
bors [Tue, 24 Apr 2018 01:15:36 +0000 (01:15 +0000)]
Auto merge of #48989 - ExpHP:path-prefix, r=dtolnay

Make signature of Path::strip_prefix accept non-references

I did this a while back but didn't submit a PR. Might as well see what happens.

Fixes #48390.

**Note: This has the potential to cause regressions in type inference.**  However, in order for code to break, it would need to be relying on the signature to determine that a type is `&_`, while still being able to figure out what the `_` is.  I'm having a hard time imagining such a scenario in real code.

6 years agoAuto merge of #49779 - oli-obk:const_err_regression, r=eddyb
bors [Mon, 23 Apr 2018 22:58:00 +0000 (22:58 +0000)]
Auto merge of #49779 - oli-obk:const_err_regression, r=eddyb

Don't report compile-time errors for promoteds

Fixes the regression part of #49760, the missing warnings still are missing

r? @eddyb

6 years agofix search bar bug
Guillaume Gomez [Fri, 20 Apr 2018 14:42:44 +0000 (16:42 +0200)]
fix search bar bug

6 years agomark std::str::replacen and std::str::replace as #[must_use].
Matthias Krüger [Mon, 23 Apr 2018 11:04:37 +0000 (13:04 +0200)]
mark std::str::replacen and std::str::replace as #[must_use].

6 years agoAuto merge of #49368 - matthewjasper:feature-gate-where-clause, r=nikomatsakis
bors [Mon, 23 Apr 2018 19:29:25 +0000 (19:29 +0000)]
Auto merge of #49368 - matthewjasper:feature-gate-where-clause, r=nikomatsakis

Feature gate where clauses on associated types

Fixes #49365. Requires crater: these have been usable since 1.24.

6 years agoAssign the tracking issue
Stjepan Glavina [Mon, 23 Apr 2018 18:34:49 +0000 (20:34 +0200)]
Assign the tracking issue

6 years agocore: Minor cleanup
Daiki Mizukami [Mon, 23 Apr 2018 18:32:40 +0000 (03:32 +0900)]
core: Minor cleanup

6 years agoClarify the docs for Cell::update
Stjepan Glavina [Mon, 23 Apr 2018 18:23:04 +0000 (20:23 +0200)]
Clarify the docs for Cell::update

6 years agosort strings on output
Niko Matsakis [Tue, 17 Apr 2018 10:06:33 +0000 (06:06 -0400)]
sort strings on output

6 years agoeliminate the `Lrc` of a slice and just return the slice
Niko Matsakis [Mon, 23 Apr 2018 17:12:00 +0000 (13:12 -0400)]
eliminate the `Lrc` of a slice and just return the slice

Also, introduce `Clauses` and `Goals` type alises for readability.

6 years agofirst draft of `program_clauses_for_env`
Niko Matsakis [Tue, 10 Apr 2018 09:55:18 +0000 (05:55 -0400)]
first draft of `program_clauses_for_env`

This computes the transitive closure of traits that appear in the
environment and then appends their clauses. It needs some work, but
it's in the right direction.

6 years agoin unit tests, use `note` to dump multiple program clauses
Niko Matsakis [Wed, 18 Apr 2018 23:58:22 +0000 (19:58 -0400)]
in unit tests, use `note` to dump multiple program clauses

(rather than issuing multiple errors)

Also, reorder so that the annotations are considered "used" when the
lint runs.

6 years agorustfmt lowering.rs
Niko Matsakis [Tue, 10 Apr 2018 09:56:35 +0000 (05:56 -0400)]
rustfmt lowering.rs

6 years agointroduce new DefPathData variants for traits, assoc types
Niko Matsakis [Fri, 30 Mar 2018 04:51:39 +0000 (00:51 -0400)]
introduce new DefPathData variants for traits, assoc types

6 years agoadd `Goal::CannotProve` and extract `ProgramClause` struct
Niko Matsakis [Fri, 23 Mar 2018 08:58:18 +0000 (04:58 -0400)]
add `Goal::CannotProve` and extract `ProgramClause` struct