]> git.lizzy.rs Git - rust.git/log
rust.git
6 years agotrack intercrate ambiguity only when there is a coherence error
Niko Matsakis [Fri, 26 Jan 2018 22:21:43 +0000 (17:21 -0500)]
track intercrate ambiguity only when there is a coherence error

6 years agochange `overlapping_impls` to take a tcx and create the infcx
Niko Matsakis [Mon, 29 Jan 2018 22:40:13 +0000 (17:40 -0500)]
change `overlapping_impls` to take a tcx and create the infcx

6 years agomake `overlapping_impls` call closures instead of returning
Niko Matsakis [Mon, 29 Jan 2018 23:20:24 +0000 (18:20 -0500)]
make `overlapping_impls` call closures instead of returning

6 years agoadd regression test
Niko Matsakis [Thu, 25 Jan 2018 14:02:06 +0000 (09:02 -0500)]
add regression test

Fixes #47139

6 years agoAuto merge of #47209 - eddyb:ccx, r=nikomatsakis
bors [Tue, 16 Jan 2018 08:06:15 +0000 (08:06 +0000)]
Auto merge of #47209 - eddyb:ccx, r=nikomatsakis

rustc_trans: reorganize CrateContext and rename context types.

Firstly, the `{Shared,Local}CrateContext` hasn't been meaningful for a while now, and this PR resolves it by moving all their fields to `CrateContext` and removing redundant accessor methods.

Secondly, this PR contains the following mass-renames:
* `ccx: CrateContext` -> `cx: CodegenCx`
* `mircx: MirContext` -> `fx: FunctionCx`
* `bcx: Builder` -> `bx: Builder`

r? @nikomatsakis

6 years agoAuto merge of #47413 - GuillaumeGomez:unstable-error-code, r=estebank
bors [Mon, 15 Jan 2018 15:36:54 +0000 (15:36 +0000)]
Auto merge of #47413 - GuillaumeGomez:unstable-error-code, r=estebank

Add error code for unstable feature errors

Fixes #47397.

6 years agoAuto merge of #47445 - kennytm:rollup, r=kennytm
bors [Mon, 15 Jan 2018 12:46:10 +0000 (12:46 +0000)]
Auto merge of #47445 - kennytm:rollup, r=kennytm

Rollup of 10 pull requests

- Successful merges: #47120, #47126, #47277, #47330, #47368, #47372, #47414, #47417, #47432, #47443
- Failed merges: #47334

6 years agoRollup merge of #47443 - FenrirWolf:rand, r=alexcrichton
kennytm [Mon, 15 Jan 2018 08:55:37 +0000 (16:55 +0800)]
Rollup merge of #47443 - FenrirWolf:rand, r=alexcrichton

Remove leftover Rand stuff

The in-tree version of `rand` was removed in 6bc8f164b09b9994e6a2d4c4ca60d7d36c09d3fe, but for some reason this lone file avoided the purge. Figured it's about time to finish the job. :smiling_imp:

6 years agoRollup merge of #47432 - etaoins:make-fulldeps-update-references-exec, r=petrochenkov
kennytm [Mon, 15 Jan 2018 08:55:36 +0000 (16:55 +0800)]
Rollup merge of #47432 - etaoins:make-fulldeps-update-references-exec, r=petrochenkov

Make ui-fulldeps/update-references executable

When a ui-fulldeps comparison fails it suggests running update-references.sh:

```
src/test/ui-fulldeps/update-references.sh 'rust/build/x86_64-apple-darwin/test/ui-fulldeps' 'resolve-error.rs'
```

This does not work as update-references.sh isn't executable. The other update-references.sh in the ui directory is already executable so this looks like an oversight.

6 years agoRollup merge of #47417 - petrochenkov:noasm, r=estebank
kennytm [Mon, 15 Jan 2018 08:55:35 +0000 (16:55 +0800)]
Rollup merge of #47417 - petrochenkov:noasm, r=estebank

Move "no asm" check into AST validation

6 years agoRollup merge of #47414 - est31:master, r=alexcrichton
kennytm [Mon, 15 Jan 2018 08:55:34 +0000 (16:55 +0800)]
Rollup merge of #47414 - est31:master, r=alexcrichton

Enforce dashes in the unstable book file names

Also rename the existing underscore using files to use dashes.

Fixes #47394.

6 years agoRollup merge of #47372 - topecongiro:issue-43925, r=alexcrichton
kennytm [Mon, 15 Jan 2018 08:55:33 +0000 (16:55 +0800)]
Rollup merge of #47372 - topecongiro:issue-43925, r=alexcrichton

Avoid panicking when invalid argument is passed to cfg(..)

Closes #43925.
Closes #43926.

6 years agoRollup merge of #47368 - chrisvittal:nll-tests, r=nikomatsakis
kennytm [Mon, 15 Jan 2018 08:55:32 +0000 (16:55 +0800)]
Rollup merge of #47368 - chrisvittal:nll-tests, r=nikomatsakis

Add NLL tests for #46557 and #38899

This adapts the sample code from the two issues into test code.

Closes #46557
Closes #38899

r? @nikomatsakis

6 years agoRollup merge of #47330 - bmusin:patch-2, r=shepmaster
kennytm [Mon, 15 Jan 2018 08:55:30 +0000 (16:55 +0800)]
Rollup merge of #47330 - bmusin:patch-2, r=shepmaster

fix off-by-one error

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

6 years agoRollup merge of #47277 - tspiteri:log-correctness, r=frewsxcv
kennytm [Mon, 15 Jan 2018 08:55:29 +0000 (16:55 +0800)]
Rollup merge of #47277 - tspiteri:log-correctness, r=frewsxcv

doc: show that `f32::log` and `f64::log` are not correctly rounded

Fixes #47273.

One thing I'm not sure about is whether the "calculated as `self.ln() / base.ln()`" bit is being too specific, maybe we do not want to make this such a strong commitment. I think it's fine, but we should not make commitments in the API documentation by accident.

In case that is removed, the added sentence "`self.log2()` can ... base 10." still makes it amply clear that the `log` methods can be more inaccurate than other methods. If the above clause is removed, this second sentence can be moved to the first paragraph, kind of like the accuracy comment for the [`mul_add`](https://doc.rust-lang.org/std/primitive.f32.html#method.mul_add) method.

6 years agoRollup merge of #47126 - sdroege:exact-chunks, r=bluss
kennytm [Mon, 15 Jan 2018 08:55:28 +0000 (16:55 +0800)]
Rollup merge of #47126 - sdroege:exact-chunks, r=bluss

Add slice::ExactChunks and ::ExactChunksMut iterators

These guarantee that always the requested slice size will be returned
and any leftoever elements at the end will be ignored. It allows llvm to
get rid of bounds checks in the code using the iterator.

This is inspired by the same iterators provided by ndarray.

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

I'll add unit tests for all this if the general idea and behaviour makes sense for everybody.
Also see https://github.com/rust-lang/rust/issues/47115#issuecomment-354715511 for an example what this improves.

6 years agoRollup merge of #47120 - clarcharr:io_error_debug, r=dtolnay
kennytm [Mon, 15 Jan 2018 08:55:26 +0000 (16:55 +0800)]
Rollup merge of #47120 - clarcharr:io_error_debug, r=dtolnay

Better Debug impl for io::Error.

This PR includes the below changes:

1. The former impl wrapped the entire thing in `Error { repr: ... }` which was unhelpful; this has been removed.
2. The `Os` variant of `io::Error` included the code and message, but not the kind; this has been fixed.
3. The `Custom` variant of `io::Error` included a `Custom(Custom { ... })`, which is now just `Custom { ... }`.

Example of previous impl:

```rust
Error {
    repr: Custom(
        Custom {
            kind: InvalidData,
            error: Error {
                repr: Os {
                    code: 2,
                    message: "no such file or directory"
                }
            }
        }
    )
}
```

Example of new impl:

```rust
Custom {
    kind: InvalidData,
    error: Os {
        code: 2,
        kind: NotFound,
        message: "no such file or directory"
    }
}
```

6 years agoAdd error code for unstable feature errors
Guillaume Gomez [Sat, 13 Jan 2018 13:05:51 +0000 (14:05 +0100)]
Add error code for unstable feature errors

6 years agoAuto merge of #47329 - davidtwco:issue-46983, r=nikomatsakis
bors [Mon, 15 Jan 2018 06:52:12 +0000 (06:52 +0000)]
Auto merge of #47329 - davidtwco:issue-46983, r=nikomatsakis

NLL: bad error message when converting anonymous lifetime to `'static`

Fixes #46983.

r? @nikomatsakis

6 years agoRemove leftover Rand stuff
Fenrir [Mon, 15 Jan 2018 06:07:51 +0000 (23:07 -0700)]
Remove leftover Rand stuff

6 years agoAuto merge of #46196 - projektir:rbe-submodule, r=steveklabnik
bors [Mon, 15 Jan 2018 02:02:22 +0000 (02:02 +0000)]
Auto merge of #46196 - projektir:rbe-submodule, r=steveklabnik

Adding RBE as a submodule #46194

Adding RBE as a submodule to start issue #46194.

6 years agoMake ui-fulldeps/update-references executable
Ryan Cumming [Sun, 14 Jan 2018 21:09:55 +0000 (08:09 +1100)]
Make ui-fulldeps/update-references executable

When a ui-fulldeps comparison fails it suggests running
update-references.sh:

```
src/test/ui-fulldeps/update-references.sh 'rust/build/x86_64-apple-darwin/test/ui-fulldeps' 'resolve-error.rs'
```

This does not work as update-references.sh isn't executable. The other
update-references.sh in the ui directory is already executable so this looks
like an oversight.

6 years agoAuto merge of #46455 - petrochenkov:pimpl, r=nikomatsakis
bors [Sun, 14 Jan 2018 16:56:15 +0000 (16:56 +0000)]
Auto merge of #46455 - petrochenkov:pimpl, r=nikomatsakis

syntax: Rewrite parsing of impls

Properly parse impls for the never type `!`
Recover from missing `for` in `impl Trait for Type`
Prohibit inherent default impls and default impls of auto traits (https://github.com/rust-lang/rust/issues/37653#issuecomment-348687794, https://github.com/rust-lang/rust/issues/37653#issuecomment-348688785)
Change wording in more diagnostics to use "auto traits"
Fix some spans in diagnostics
Some other minor code cleanups in the parser
Disambiguate generics and qualified paths in impls (parse `impl <Type as Trait>::AssocTy { ... }`)
Replace the future-compatibility hack from https://github.com/rust-lang/rust/pull/38268 with actually parsing generic parameters
Add a test for https://github.com/rust-lang/rust/issues/46438

6 years agosyntax: Disambiguate generics and qualified paths
Vadim Petrochenkov [Sun, 14 Jan 2018 15:10:19 +0000 (18:10 +0300)]
syntax: Disambiguate generics and qualified paths

6 years agosyntax: Rewrite parsing of impls
Vadim Petrochenkov [Sat, 2 Dec 2017 19:15:03 +0000 (22:15 +0300)]
syntax: Rewrite parsing of impls

Properly parse impls for the never type `!`
Recover from missing `for` in `impl Trait for Type`
Prohibit inherent default impls and default impls of auto traits
Change wording in more diagnostics to use "auto traits"
Some minor code cleanups in the parser

6 years agoAuto merge of #47322 - nikomatsakis:nll-ice, r=pnkfelix
bors [Sun, 14 Jan 2018 14:11:59 +0000 (14:11 +0000)]
Auto merge of #47322 - nikomatsakis:nll-ice, r=pnkfelix

resolve type and region variables in "NLL dropck"

Fixes #47022.

r? @pnkfelix

6 years agoAuto merge of #47274 - Manishearth:rustdoc-span, r=QuietMisdreavus
bors [Sun, 14 Jan 2018 11:28:27 +0000 (11:28 +0000)]
Auto merge of #47274 - Manishearth:rustdoc-span, r=QuietMisdreavus

Use correct line offsets for doctests

Not yet tested.

This doesn't handle char positions. It could if I collected a map of char offsets and lines, but this is a bit more work and requires hooking into the parser much more (unsure if it's possible).

r? @QuietMisdreavus

(fixes #45868)

6 years agoAuto merge of #47268 - EdSchouten:cloudabi-libstd, r=alexcrichton
bors [Sun, 14 Jan 2018 08:49:10 +0000 (08:49 +0000)]
Auto merge of #47268 - EdSchouten:cloudabi-libstd, r=alexcrichton

Implement libstd for CloudABI.

Though CloudABI is strongly inspired by POSIX, its absence of features that don't work well with capability-based sandboxing makes it different enough that adding bits to `sys/unix` will make things a mess. This change therefore adds CloudABI specific platform code under `sys/cloudabi`.

One of the goals of this implementation is to build as much as possible directly on top of CloudABI's system call layer, as opposed to using the C library. This is preferred, as the system call layer is supposed to be stable, whereas the C library ABI technically is not. An advantage of this approach is that it allows us to implement certain interfaces, such as mutexes and condition variables more optimally. They can be lighter than the ones provided by pthreads.

This change disables some modules that cannot realistically be implemented right now. For example, libstd's pathname abstraction is not designed with POSIX `*at()` (e.g., `openat()`) in mind. The `*at()` functions are the only set of file system APIs available on CloudABI. There is no global file system namespace, nor a process working directory. Discussions on how to port these modules over are outside the scope of this change.

6 years agorustc_trans: rename mircx: MirContext to fx: FunctionCx.
Eduard-Mihai Burtescu [Fri, 5 Jan 2018 05:34:28 +0000 (07:34 +0200)]
rustc_trans: rename mircx: MirContext to fx: FunctionCx.

6 years agorustc_trans: rename bcx to bx.
Eduard-Mihai Burtescu [Fri, 5 Jan 2018 05:12:32 +0000 (07:12 +0200)]
rustc_trans: rename bcx to bx.

6 years agorustc_trans: rename ccx to cx.
Eduard-Mihai Burtescu [Fri, 5 Jan 2018 05:04:08 +0000 (07:04 +0200)]
rustc_trans: rename ccx to cx.

6 years agorustc_trans: rename CrateContext to CodegenCx.
Eduard-Mihai Burtescu [Fri, 5 Jan 2018 05:01:54 +0000 (07:01 +0200)]
rustc_trans: rename CrateContext to CodegenCx.

6 years agorustc_trans: access fields directly on CrateContext.
Eduard-Mihai Burtescu [Fri, 5 Jan 2018 04:58:34 +0000 (06:58 +0200)]
rustc_trans: access fields directly on CrateContext.

6 years agorustc_trans: remove unused `TargetDataRef` accessor.
Eduard-Mihai Burtescu [Fri, 5 Jan 2018 04:21:57 +0000 (06:21 +0200)]
rustc_trans: remove unused `TargetDataRef` accessor.

6 years agorustc_trans: collapse {Local,Shared}CrateContext.
Eduard-Mihai Burtescu [Fri, 5 Jan 2018 04:14:44 +0000 (06:14 +0200)]
rustc_trans: collapse {Local,Shared}CrateContext.

6 years agoAuto merge of #47261 - estebank:immutable-arg, r=petrochenkov
bors [Sun, 14 Jan 2018 06:09:14 +0000 (06:09 +0000)]
Auto merge of #47261 - estebank:immutable-arg, r=petrochenkov

Assignment to immutable argument: diagnostic tweak

Re #46659.

6 years agoAuto merge of #47223 - alexcrichton:new-target-feature, r=eddyb
bors [Sun, 14 Jan 2018 03:27:35 +0000 (03:27 +0000)]
Auto merge of #47223 - alexcrichton:new-target-feature, r=eddyb

rustc: Tweak `#[target_feature]` syntax

This is an implementation of the `#[target_feature]` syntax-related changes of
[RFC 2045][rfc]. Notably two changes have been implemented:

* The new syntax is `#[target_feature(enable = "..")]` instead of
  `#[target_feature = "+.."]`. The `enable` key is necessary instead of the `+`
  to indicate that a feature is being enabled, and a sub-list is used for
  possible expansion in the future. Additionally within this syntax the feature
  names being enabled are now whitelisted against a known set of target feature
  names that we know about.

* The `#[target_feature]` attribute can only be applied to unsafe functions. It
  was decided in the RFC that invoking an instruction possibly not defined for
  the current processor is undefined behavior, so to enable this feature for now
  it requires an `unsafe` intervention.

[rfc]: https://github.com/rust-lang/rfcs/blob/master/text/2045-target-feature.md

6 years agoAuto merge of #46832 - Diggsey:bufread-cheaper-seek, r=alexcrichton
bors [Sun, 14 Jan 2018 00:42:11 +0000 (00:42 +0000)]
Auto merge of #46832 - Diggsey:bufread-cheaper-seek, r=alexcrichton

BufRead: Only flush the internal buffer if seeking outside of it.

Fixes #31100

r? @dtolnay

6 years agorustc: Refactor attribute checking to operate on HIR
Alex Crichton [Mon, 8 Jan 2018 21:43:42 +0000 (13:43 -0800)]
rustc: Refactor attribute checking to operate on HIR

This'll enable running queries that could be cached and overall be more amenable
to the query infastructure.

6 years agoAuto merge of #47416 - petrochenkov:remove-impl-for-dot-dot, r=petrochenkov
bors [Sat, 13 Jan 2018 21:48:12 +0000 (21:48 +0000)]
Auto merge of #47416 - petrochenkov:remove-impl-for-dot-dot, r=petrochenkov

Remove `impl Foo for .. {}` in favor `auto trait Foo {}`

Rebase of https://github.com/rust-lang/rust/pull/46480 with restored parsing support.

6 years agoAdding RBE as a submodule #46194
projektir [Sat, 2 Dec 2017 02:29:12 +0000 (18:29 -0800)]
Adding RBE as a submodule #46194

6 years agoMove "no asm" check into AST validation
Vadim Petrochenkov [Sat, 13 Jan 2018 20:13:49 +0000 (23:13 +0300)]
Move "no asm" check into AST validation

6 years agoAdd note to documentation
Diggory Blake [Sat, 13 Jan 2018 18:44:25 +0000 (18:44 +0000)]
Add note to documentation

6 years agoImplement "seek_relative"
Diggory Blake [Thu, 11 Jan 2018 22:18:16 +0000 (22:18 +0000)]
Implement "seek_relative"

6 years agorustc: Tweak `#[target_feature]` syntax
Alex Crichton [Fri, 5 Jan 2018 21:26:26 +0000 (13:26 -0800)]
rustc: Tweak `#[target_feature]` syntax

This is an implementation of the `#[target_feature]` syntax-related changes of
[RFC 2045][rfc]. Notably two changes have been implemented:

* The new syntax is `#[target_feature(enable = "..")]` instead of
  `#[target_feature = "+.."]`. The `enable` key is necessary instead of the `+`
  to indicate that a feature is being enabled, and a sub-list is used for
  possible expansion in the future. Additionally within this syntax the feature
  names being enabled are now whitelisted against a known set of target feature
  names that we know about.

* The `#[target_feature]` attribute can only be applied to unsafe functions. It
  was decided in the RFC that invoking an instruction possibly not defined for
  the current processor is undefined behavior, so to enable this feature for now
  it requires an `unsafe` intervention.

[rfc]: https://github.com/rust-lang/rfcs/blob/master/text/2045-target-feature.md

6 years agoBetter Debug impl for io::Error.
Clar Charr [Tue, 2 Jan 2018 02:56:22 +0000 (21:56 -0500)]
Better Debug impl for io::Error.

6 years agoRe-add support for `impl Trait for ..` to the parser
Vadim Petrochenkov [Sat, 13 Jan 2018 16:26:49 +0000 (19:26 +0300)]
Re-add support for `impl Trait for ..` to the parser

6 years agoAddress review.
leonardo.yvens [Mon, 4 Dec 2017 22:55:14 +0000 (20:55 -0200)]
Address review.

6 years agoParse `auto trait` inside fns.
leonardo.yvens [Mon, 4 Dec 2017 18:26:20 +0000 (16:26 -0200)]
Parse `auto trait` inside fns.

Also refactored parsing auto traits.

6 years agoFix rustdoc
leonardo.yvens [Mon, 4 Dec 2017 10:07:01 +0000 (08:07 -0200)]
Fix rustdoc

6 years agoMove coherence/overlap.rs into coherence/mod.rs
leonardo.yvens [Sun, 3 Dec 2017 22:29:17 +0000 (20:29 -0200)]
Move coherence/overlap.rs into coherence/mod.rs

`fn check_impl` was feeling lonely with a file all for itself.

6 years agoRemove wfcheck for auto traits, remove dead error codes
leonardo.yvens [Sun, 3 Dec 2017 22:07:50 +0000 (20:07 -0200)]
Remove wfcheck for auto traits, remove dead error codes

The WF checks are now done as an AST validation.

6 years agoAdjust tests for removal of `impl Foo for .. {}`
leonardo.yvens [Sun, 3 Dec 2017 12:56:53 +0000 (10:56 -0200)]
Adjust tests for removal of `impl Foo for .. {}`

6 years agoRemove `impl Foo for ..` in favor of `auto trait Foo`
leonardo.yvens [Fri, 1 Dec 2017 12:01:23 +0000 (10:01 -0200)]
Remove `impl Foo for ..` in favor of `auto trait Foo`

No longer parse it.
Remove AutoTrait variant from AST and HIR.
Remove backwards compatibility lint.
Remove coherence checks, they make no sense for the new syntax.
Remove from rustdoc.

6 years agoAuto merge of #47251 - rkruppe:rm-simd-attr, r=eddyb
bors [Sat, 13 Jan 2018 15:29:31 +0000 (15:29 +0000)]
Auto merge of #47251 - rkruppe:rm-simd-attr, r=eddyb

Remove deprecated unstable attribute #[simd]

The `#[simd]` attribute has been deprecated since c8b6d5b23cc8b2d43ece9f06252c7e98280fb8e5 back in 2015. Any nightly crates using it have had ample time to switch to `#[repr(simd)]`, and if they didn't they're likely broken by now anyway.

r? @eddyb

6 years agoEnforce dashes in the unstable book file names
est31 [Sat, 13 Jan 2018 13:45:58 +0000 (14:45 +0100)]
Enforce dashes in the unstable book file names

Also rename the existing underscore using files to use dashes.

Fixes #47394.

6 years agoAuto merge of #47242 - estebank:issue-15980, r=petrochenkov
bors [Sat, 13 Jan 2018 12:42:33 +0000 (12:42 +0000)]
Auto merge of #47242 - estebank:issue-15980, r=petrochenkov

`struct` pattern parsing and diagnostic tweaks

 - Recover from struct parse error on match and point out missing match
   body.
 - Point at struct when finding non-identifier while parsing its fields.
 - Add label to "expected identifier, found {}" error.

Fix #15980.

6 years agoAdd unit tests for exact_chunks/exact_chunks_mut
Sebastian Dröge [Thu, 11 Jan 2018 10:13:45 +0000 (12:13 +0200)]
Add unit tests for exact_chunks/exact_chunks_mut

These are basically modified copies of the chunks/chunks_mut tests.

6 years agoTest the whole chunks instead of just an element in the chunks/chunks_mut tests
Sebastian Dröge [Thu, 11 Jan 2018 10:12:55 +0000 (12:12 +0200)]
Test the whole chunks instead of just an element in the chunks/chunks_mut tests

Easy enough to do and ensures that the whole chunk is as expected
instead of just the element that was looked at before.

6 years agoUse assert_eq!() instead of assert!(a == b) in slice chunks_mut() unit test
Sebastian Dröge [Thu, 11 Jan 2018 10:11:32 +0000 (12:11 +0200)]
Use assert_eq!() instead of assert!(a == b) in slice chunks_mut() unit test

This way more useful information is printed if the test ever fails.

6 years agoMention in the exact_chunks docs that this can often be optimized better by the compiler
Sebastian Dröge [Tue, 9 Jan 2018 20:58:41 +0000 (22:58 +0200)]
Mention in the exact_chunks docs that this can often be optimized better by the compiler

And also link from the normal chunks iterator to the exact_chunks one.

6 years agoImplement TrustedRandomAccess for slice::{ExactChunks, ExactChunksMut}
Sebastian Dröge [Tue, 2 Jan 2018 23:01:40 +0000 (01:01 +0200)]
Implement TrustedRandomAccess for slice::{ExactChunks, ExactChunksMut}

6 years agoRemove useless assertion
Sebastian Dröge [Tue, 2 Jan 2018 22:05:13 +0000 (00:05 +0200)]
Remove useless assertion

6 years agoApply review comments from @bluss
Sebastian Dröge [Tue, 2 Jan 2018 21:54:42 +0000 (23:54 +0200)]
Apply review comments from @bluss

- Simplify nth() by making use of the fact that the slice is evenly
  divisible by the chunk size, and calling next() instead of
  duplicating it
- Call next_back() in last(), they are equivalent
- Implement ExactSizeIterator::is_empty()

6 years agoFix doctests for slice::exact_chunks() for real
Sebastian Dröge [Tue, 2 Jan 2018 17:21:39 +0000 (19:21 +0200)]
Fix doctests for slice::exact_chunks() for real

6 years agoFix assertions in examples of the exact_chunk() documentation
Sebastian Dröge [Tue, 2 Jan 2018 12:55:25 +0000 (14:55 +0200)]
Fix assertions in examples of the exact_chunk() documentation

6 years agoAdd #![feature(exact_chunks)] to the documentation examples to fix the doc tests
Sebastian Dröge [Tue, 2 Jan 2018 12:54:18 +0000 (14:54 +0200)]
Add #![feature(exact_chunks)] to the documentation examples to fix the doc tests

6 years agoAdd slice::ExactChunks and ::ExactChunksMut iterators
Sebastian Dröge [Tue, 2 Jan 2018 00:13:20 +0000 (02:13 +0200)]
Add slice::ExactChunks and ::ExactChunksMut iterators

These guarantee that always the requested slice size will be returned
and any leftoever elements at the end will be ignored. It allows llvm to
get rid of bounds checks in the code using the iterator.

This is inspired by the same iterators provided by ndarray.

See https://github.com/rust-lang/rust/issues/47115

6 years agoAuto merge of #47181 - michaelwoerister:var-len-def-index, r=eddyb
bors [Sat, 13 Jan 2018 09:11:59 +0000 (09:11 +0000)]
Auto merge of #47181 - michaelwoerister:var-len-def-index, r=eddyb

Use DefIndex encoding that works better with on-disk variable length integer representations.

Use the least instead of the most significant bit for representing the address space.

r? @eddyb

6 years agoAuto merge of #46592 - o01eg:fix-45345, r=alexcrichton
bors [Sat, 13 Jan 2018 05:02:04 +0000 (05:02 +0000)]
Auto merge of #46592 - o01eg:fix-45345, r=alexcrichton

Fix 45345

There is a fix for https://github.com/rust-lang/rust/issues/45345

It re-introduces `CFG_LIBDIR_RELATIVE` which was broken when migration from `configure` script to `x.py`.

Other commits fix errors which happen after rustbuild cleanups.

6 years agofix off-by-one error
Bulat Musin [Wed, 10 Jan 2018 17:23:01 +0000 (20:23 +0300)]
fix off-by-one error

6 years agoAuto merge of #46461 - zackmdavis:elemental_method_suggestion_jamboree, r=estebank
bors [Sat, 13 Jan 2018 02:15:19 +0000 (02:15 +0000)]
Auto merge of #46461 - zackmdavis:elemental_method_suggestion_jamboree, r=estebank

 type error method suggestions use whitelisted identity-like conversions

![method_jamboree_summit](https://user-images.githubusercontent.com/1076988/33523646-e5c43184-d7c0-11e7-98e5-1bff426ade86.png)

Previously, on a type mismatch (and if this wasn't preëmpted by a
higher-priority suggestion), we would look for argumentless methods
returning the expected type, and list them in a `help` note. This had two
major shortcomings: firstly, a lot of the suggestions didn't really make
sense (if you used a &str where a String was expected,
`.to_ascii_uppercase()` is probably not the solution you were hoping
for). Secondly, we weren't generating suggestions from the most useful
traits! We address the first problem with an internal
`#[rustc_conversion_suggestion]` attribute meant to mark methods that keep
the "same value" in the relevant sense, just converting the type. We
address the second problem by making `FnCtxt.probe_for_return_type` pass
the `ProbeScope::AllTraits` to `probe_op`: this would seem to be safe
because grep reveals no other callers of `probe_for_return_type`.

Also, structured suggestions are pretty and good for RLS and friends.

Unfortunately, the trait probing is still not all one would hope for: at a
minimum, we don't know how to rule out `into()` in cases where it wouldn't
actually work, and we don't know how to rule in `.to_owned()` where it
would. Issues #46459 and #46460 have been filed and are ref'd in a FIXME.

This is hoped to resolve #42929, #44672, and #45777.

6 years agoAuto merge of #47392 - kennytm:rollup, r=kennytm
bors [Fri, 12 Jan 2018 20:28:19 +0000 (20:28 +0000)]
Auto merge of #47392 - kennytm:rollup, r=kennytm

Rollup of 24 pull requests

- Successful merges: #46985, #47069, #47081, #47185, #47282, #47283, #47288, #47289, #47298, #47305, #47306, #47307, #47310, #47324, #47328, #47331, #47340, #47343, #47344, #47352, #47357, #47365, #47375, #47382
- Failed merges: #47334

6 years agoRollup merge of #47382 - topecongiro:issue-43105, r=eddyb
kennytm [Fri, 12 Jan 2018 18:26:45 +0000 (02:26 +0800)]
Rollup merge of #47382 - topecongiro:issue-43105, r=eddyb

Ignore CTFE errors while lowering patterns

Closes #43105.

r? @eddyb

6 years agoRollup merge of #47375 - overvenus:duration-examples, r=dtolnay
kennytm [Fri, 12 Jan 2018 18:26:44 +0000 (02:26 +0800)]
Rollup merge of #47375 - overvenus:duration-examples, r=dtolnay

Fix examples of Duration::subsec_millis and Duration::subsec_micros

Update examples of `Duration::subsec_millis` and `Duration::subsec_micros`, because they are not for these two methods actually.

6 years agoRollup merge of #47365 - Diggsey:issue-42630, r=alexcrichton
kennytm [Fri, 12 Jan 2018 18:26:43 +0000 (02:26 +0800)]
Rollup merge of #47365 - Diggsey:issue-42630, r=alexcrichton

Re-enable num tests on wasm

Issue #42630 was closed but the tests are still ignored, supposedly they should pass now.

6 years agoRollup merge of #47357 - whentze:osstr-doc-fix, r=GuillaumeGomez
kennytm [Fri, 12 Jan 2018 18:26:42 +0000 (02:26 +0800)]
Rollup merge of #47357 - whentze:osstr-doc-fix, r=GuillaumeGomez

Fix docs for OsStr

At present, there are two small issues with the [docs](https://doc.rust-lang.org/std/ffi/struct.OsStr.html) for std::ffi::OsStr:
- The docs say "OsStr is to OsString as String is to &str: the former in each pair are borrowed references; the latter are owned strings.". The latter pair is mixed up: String is the owned variant whereas &str is the borrowed reference.
- The doc links to String and &str are broken and render as [String] and [&str].

This PR fixes these issues.

6 years agoRollup merge of #47352 - EdSchouten:cloudabi-libtest, r=kennytm
kennytm [Fri, 12 Jan 2018 18:26:41 +0000 (02:26 +0800)]
Rollup merge of #47352 - EdSchouten:cloudabi-libtest, r=kennytm

Make libtest build on CloudABI.

Just like on UNIX systems, we need to use sysconf() to obtain the number
of CPUs. Extend the existing cfg()'s to match CloudABI as well.

6 years agoRollup merge of #47344 - topecongiro:fixed-ices, r=alexcrichton
kennytm [Fri, 12 Jan 2018 18:26:40 +0000 (02:26 +0800)]
Rollup merge of #47344 - topecongiro:fixed-ices, r=alexcrichton

Add tests to fixed issues.

Closes #36792. Closes #38091. Closes #39687. Closes #42148. Closes #42956.

6 years agoRollup merge of #47343 - goffrie:master, r=jseyfried
kennytm [Fri, 12 Jan 2018 18:26:39 +0000 (02:26 +0800)]
Rollup merge of #47343 - goffrie:master, r=jseyfried

Glued tokens can themselves be joint.

When gluing two tokens, the second of which is joint, the result should also be
joint.
This fixes an issue with joining three `Dot` tokens to make a `DotDotDot` - the
intermediate `DotDot` would not be joint and therefore we would not attempt to
glue the last `Dot` token, yielding `.. .` instead of `...`.

r? @jseyfried

6 years agoRollup merge of #47340 - alercah:typo-fix, r=GuillaumeGomez
kennytm [Fri, 12 Jan 2018 18:26:38 +0000 (02:26 +0800)]
Rollup merge of #47340 - alercah:typo-fix, r=GuillaumeGomez

Fix typo.

6 years agoRollup merge of #47331 - michaelwoerister:measure-depgraph-loading, r=alexcrichton
kennytm [Fri, 12 Jan 2018 18:26:37 +0000 (02:26 +0800)]
Rollup merge of #47331 - michaelwoerister:measure-depgraph-loading, r=alexcrichton

Add -Ztime-passes line for dep-graph loading.

We measure how much time the background thread spends on loading the dep-graph but not how long the main thread is blocked while the background thread is still working. Let's change that!

6 years agoRollup merge of #47328 - mbrubeck:fs_read, r=sfackler
kennytm [Fri, 12 Jan 2018 18:26:35 +0000 (02:26 +0800)]
Rollup merge of #47328 - mbrubeck:fs_read, r=sfackler

Use the new fs_read_write functions in rustc internals

Uses `fs::read` and `fs::write` (added by #45837) where appropriate, to simplify code and dog-food these new APIs.  This also improves performance, when combined with #47324.

6 years agoRollup merge of #47324 - mbrubeck:len, r=sfackler
kennytm [Fri, 12 Jan 2018 18:26:35 +0000 (02:26 +0800)]
Rollup merge of #47324 - mbrubeck:len, r=sfackler

Pre-allocate in fs::read and fs::read_string

This is a simpler alternative to #46340 and #45928, as requested by the libs team.

6 years agoRollup merge of #47310 - bmusin:patch-1, r=sfackler
kennytm [Fri, 12 Jan 2018 18:26:34 +0000 (02:26 +0800)]
Rollup merge of #47310 - bmusin:patch-1, r=sfackler

fix typo rwlock.rs

Hi. Fixed typo: contained -> content

6 years agoRollup merge of #47307 - dlrobertson:fix_panic_strings, r=kennytm
kennytm [Fri, 12 Jan 2018 18:26:33 +0000 (02:26 +0800)]
Rollup merge of #47307 - dlrobertson:fix_panic_strings, r=kennytm

Fix panic strings.

 - Fix panic string in `check_ast_crate`.
 - Update panic string for Duration subtraction on overflow/underflow.

Not sure if the changes to `Duration` are helpful/needed. Mostly just a nit.
Otherwise this is just a one character change :)

On another note: I hit the panic in `check_ast_crate` when compiling
[m-labs/smoltcp] with the following:

```
cargo test --doc --no-default-features --features "std socket-raw"`
```

[m-labs/smoltcp]: https://github.com/m-labs/smoltcp

6 years agoRollup merge of #47306 - alexreg:dataflow-analysis, r=eddyb
kennytm [Fri, 12 Jan 2018 18:26:32 +0000 (02:26 +0800)]
Rollup merge of #47306 - alexreg:dataflow-analysis, r=eddyb

Don't track local_needs_drop separately in qualify_consts.

None

6 years agoRollup merge of #47305 - cramertj:better-calendar-alone, r=eddyb
kennytm [Fri, 12 Jan 2018 18:26:31 +0000 (02:26 +0800)]
Rollup merge of #47305 - cramertj:better-calendar-alone, r=eddyb

Use copy/clone closures to simplify calendar test

Split out from #47304

r? @eddyb

6 years agoRollup merge of #47298 - cramertj:path-as-modrs, r=nikomatsakis
kennytm [Fri, 12 Jan 2018 18:26:30 +0000 (02:26 +0800)]
Rollup merge of #47298 - cramertj:path-as-modrs, r=nikomatsakis

Treat #[path] files as mod.rs files

Fixes https://github.com/rust-lang/rust/issues/46936, cc @briansmith, @SergioBenitez, @nikomatsakis.

This (insta-stable) change treats files included via `#[path = "bla.rs"] mod foo;` as though they were `mod.rs` files. Namely, it allows them to include `mod` statements and looks for the child modules in sibling directories, rather than in relative `modname/childmodule.rs` files as happens for non-`mod.rs` files.

This change makes the `non_modrs_mods` feature backwards compatible with the existing usage in https://github.com/briansmith/ring, several versions of which are currently broken in beta. If we decide to merge, this change should be backported to beta.

cc https://github.com/rust-lang/rust/issues/37872

r? @jseyfried

6 years agoRollup merge of #47289 - etaoins:skip-linker-output-non-utf8-test-on-apple, r=kennytm
kennytm [Fri, 12 Jan 2018 18:26:29 +0000 (02:26 +0800)]
Rollup merge of #47289 - etaoins:skip-linker-output-non-utf8-test-on-apple, r=kennytm

Skip linker-output-non-utf8 test on Apple

This test fails on APFS filesystems with the following error:

```shell
mkdir: /Users/ryan/Code/rust/build/x86_64-apple-darwin/test/run-make/linker-output-non-utf8.stage2-x86_64-apple-darwin/zzz�: Illegal byte sequence
```

The mkdir does succeed on an HFS+ volume mounted on the same system:
```shell
$ mkdir zzz$$'\xff'
$ ls
zzz47432\xff
```

This is due to APFS now requiring that all paths are valid UTF-8. As APFS will be the default filesystem for all new Darwin-based systems the most straightforward fix is to skip this test on Darwin as well as Windows.

6 years agoRollup merge of #47288 - cuviper:jobserver-pipe2, r=alexcrichton
kennytm [Fri, 12 Jan 2018 18:26:28 +0000 (02:26 +0800)]
Rollup merge of #47288 - cuviper:jobserver-pipe2, r=alexcrichton

Update jobserver to 0.1.9

Fix for `ENOSYS` when calling `pipe2`, alexcrichton/jobserver-rs#5.

r? @alexcrichton

6 years agoRollup merge of #47283 - malbarbo:musl-1.1.18, r=alexcrichton
kennytm [Fri, 12 Jan 2018 18:26:27 +0000 (02:26 +0800)]
Rollup merge of #47283 - malbarbo:musl-1.1.18, r=alexcrichton

Update musl to 1.1.18

According to http://www.musl-libc.org/download.html:

This release corrects regressions in glob() and armv4t build failure
introduced in the previous release, and includes an important bug fix
for posix_spawnp in the presence of a large PATH environment variable.

6 years agoRollup merge of #47282 - malbarbo:i586-musl, r=alexcrichton
kennytm [Fri, 12 Jan 2018 18:26:26 +0000 (02:26 +0800)]
Rollup merge of #47282 - malbarbo:i586-musl, r=alexcrichton

Add i586-unknown-linux-musl target

6 years agoRollup merge of #47185 - ritiek:ui-test-failed-output, r=nikomatsakis
kennytm [Fri, 12 Jan 2018 18:26:25 +0000 (02:26 +0800)]
Rollup merge of #47185 - ritiek:ui-test-failed-output, r=nikomatsakis

Show only stderr diff when a ui test fails

Addresses #46826.

This PR will print the normalized output if expected text is empty otherwise it will just print the diff.

Should we also show a few (actual == expected) lines above & below when displaying the diff? What about indicating line numbers as well so one can quickly check mismatch lines in .stderr file?

6 years agoRollup merge of #47081 - pietroalbini:fix-nested-tree-dump, r=nrc
kennytm [Fri, 12 Jan 2018 18:26:24 +0000 (02:26 +0800)]
Rollup merge of #47081 - pietroalbini:fix-nested-tree-dump, r=nrc

Fix nested imports not included in the save_analysis output

This PR fixes #46823.

The bug was caused by the old access level checking code, which checked against the root UseTree even for nested trees. The problem with that is, for nested trees the root is lowered as an empty `ListStem`, which is not reachable by definition. The new code computes the access level with each tree's own ID, and with the root tree's visibility.

I tested this manually and it works, but I'm not really satisfied with that. I looked at the existing tests though, and no one checked for the save_analysis output as far as I can see. How should I proceed with that? I think having a test about this would be really nice.

6 years agoRollup merge of #47069 - Kagamihime:master, r=nrc
kennytm [Fri, 12 Jan 2018 18:26:23 +0000 (02:26 +0800)]
Rollup merge of #47069 - Kagamihime:master, r=nrc

rustfmt libarena/lib.rs

Note: it's my very first pull request. I'm trying to do something very simple to see how it works here, even if it's a tiny change or maybe it's not correct (sorry if it is the case).

r? @nrc

6 years agoRollup merge of #46985 - Diggsey:path-component-asref, r=alexcrichton
kennytm [Fri, 12 Jan 2018 18:26:22 +0000 (02:26 +0800)]
Rollup merge of #46985 - Diggsey:path-component-asref, r=alexcrichton

Implement AsRef<Path> for Component

Fixes #41866

6 years agoUse delay_span_bug() over debug!()
Seiichi Uchida [Fri, 12 Jan 2018 15:54:56 +0000 (00:54 +0900)]
Use delay_span_bug() over debug!()

6 years agoremove unnecessary compile-flags comments
Christopher Vittal [Fri, 12 Jan 2018 15:37:55 +0000 (10:37 -0500)]
remove unnecessary compile-flags comments

6 years agoAvoid panicking when invalid argument is passed to cfg(..)
Seiichi Uchida [Fri, 12 Jan 2018 02:41:33 +0000 (11:41 +0900)]
Avoid panicking when invalid argument is passed to cfg(..)

Closes #43925.
Closes #43926.