]> git.lizzy.rs Git - rust.git/log
rust.git
7 years agoUse UI test to test spans, instead of forced line break
Seo Sanghyeon [Tue, 16 Aug 2016 11:14:41 +0000 (20:14 +0900)]
Use UI test to test spans, instead of forced line break

7 years agoRangeFull for-loop iteration fails because of IntoIterator
Matthew Piziak [Tue, 16 Aug 2016 10:54:45 +0000 (06:54 -0400)]
RangeFull for-loop iteration fails because of IntoIterator

Saying that "[for-loop iteration] fails because .. has no IntoIterator
impl" is more direct than saying "...no Iterator impl" because for loops
sugar into IntoIterator invocations. It just happens that the other
Range* operators implement Iterator and rely on the fact that
`IntoIterator` is implemented for `T: Iterator`.

7 years agoRUST_NEW_ERROR_FORMAT is no more
Seo Sanghyeon [Tue, 16 Aug 2016 07:52:30 +0000 (16:52 +0900)]
RUST_NEW_ERROR_FORMAT is no more

7 years agoAuto merge of #35162 - canndrew:bang_type_coerced, r=nikomatsakis
bors [Tue, 16 Aug 2016 07:12:12 +0000 (00:12 -0700)]
Auto merge of #35162 - canndrew:bang_type_coerced, r=nikomatsakis

Implement the `!` type

This implements the never type (`!`) and hides it behind the feature gate `#[feature(never_type)]`. With the feature gate off, things should build as normal (although some error messages may be different). With the gate on, `!` is usable as a type and diverging type variables (ie. types that are unconstrained by anything in the code) will default to `!` instead of `()`.

7 years agoImplement `Debug` for `std::vec::IntoIter`.
Corey Farwell [Tue, 16 Aug 2016 03:45:12 +0000 (23:45 -0400)]
Implement `Debug` for `std::vec::IntoIter`.

Display all the remaining items of the iterator, similar to the `Debug`
implementation for `core::slice::Iter`:

https://github.com/rust-lang/rust/blob/f0bab98695f0a4877daabad9a5b0ba3e66121392/src/libcore/slice.rs#L930-L937

Using the `as_slice` method that was added in:

https://github.com/rust-lang/rust/pull/35447

7 years agotest that a no_builtins crate is passed to the linker
Jorge Aparicio [Mon, 15 Aug 2016 02:56:48 +0000 (21:56 -0500)]
test that a no_builtins crate is passed to the linker

7 years agoexplicitly show how iterating over `..` fails
Matthew Piziak [Mon, 15 Aug 2016 22:46:19 +0000 (18:46 -0400)]
explicitly show how iterating over `..` fails

I've also removed the `main()` wrapper, which I believe is extraneous.
LMK if that's incorrect.

7 years agoremove `.take(10)` from `Range` example
Matthew Piziak [Mon, 15 Aug 2016 22:30:25 +0000 (18:30 -0400)]
remove `.take(10)` from `Range` example

7 years agoaccumulate into vector and assert, instead of printing
Matthew Piziak [Mon, 15 Aug 2016 22:03:11 +0000 (18:03 -0400)]
accumulate into vector and assert, instead of printing

I'm only making this change in one place so that people can express
their preferences for this stylistic change. If/when this change is
approved I'll go ahead and translate the rest of the `std::ops`
examples.

7 years agoexpound on limitations of Rust's trait-based operator overloading
Matthew Piziak [Mon, 15 Aug 2016 19:34:02 +0000 (15:34 -0400)]
expound on limitations of Rust's trait-based operator overloading

Part of #29330

7 years agoAuto merge of #35680 - GuillaumeGomez:err_codes, r=jonathandturner
bors [Mon, 15 Aug 2016 18:35:01 +0000 (11:35 -0700)]
Auto merge of #35680 - GuillaumeGomez:err_codes, r=jonathandturner

Err codes

r? @jonathandturner

7 years agoupdate E0375 to new format
Mikhail Modin [Mon, 15 Aug 2016 17:37:03 +0000 (20:37 +0300)]
update E0375 to new format

7 years agoAuto merge of #35340 - michaelwoerister:incr-comp-cli-args, r=nikomatsakis
bors [Mon, 15 Aug 2016 15:35:18 +0000 (08:35 -0700)]
Auto merge of #35340 - michaelwoerister:incr-comp-cli-args, r=nikomatsakis

Take commandline arguments into account for incr. comp.

Implements the conservative strategy described in https://github.com/rust-lang/rust/issues/33727.

From now one, every time a new commandline option is added, one has to specify if it influences the incremental compilation cache. I've tried to implement this as automatic as possible: One just has to added either the `[TRACKED]` or the `[UNTRACKED]` marker next to the field. The `Options`, `CodegenOptions`, and `DebuggingOptions` definitions in `session::config` show plenty of examples.

The PR removes some cruft from `session::config::Options`, mostly unnecessary copies of flags also present in `DebuggingOptions` or `CodeGenOptions` in the same struct.

One notable removal is the `cfg` field that contained the values passed via `--cfg` commandline arguments. I chose to remove it because (1) its content is only a subset of what later is stored in `hir::Crate::config` and it's pretty likely that reading the cfgs from `Options` would not be what you wanted, and (2) we could not incorporate it into the dep-tracking hash of the `Options` struct because of how the test framework works, leaving us with a piece of untracked but vital data.

It is now recommended (just as before) to access the crate config via the `krate()` method in the HIR map.

Because the `cfg` field is not present in the `Options` struct any more, some methods in the `CompilerCalls` trait now take the crate config as an explicit parameter -- which might constitute a breaking change for plugin authors.

7 years agoA disclaimer about keywords.
Steve Klabnik [Sun, 19 Jun 2016 20:27:37 +0000 (16:27 -0400)]
A disclaimer about keywords.

Some people cite this list as "zomg Rust has so many keywords," so make
it clear that these aren't all used by the language today.

7 years agoAdd new error code tests
Guillaume Gomez [Mon, 15 Aug 2016 11:58:28 +0000 (13:58 +0200)]
Add new error code tests

7 years agoAdd E0394 error explanation
Guillaume Gomez [Mon, 15 Aug 2016 11:57:10 +0000 (13:57 +0200)]
Add E0394 error explanation

7 years agoFix spacing in code of closures.md
Phil Ruffwind [Mon, 11 Jul 2016 19:25:12 +0000 (15:25 -0400)]
Fix spacing in code of closures.md

The spacing seems inconsistent with existing style conventions.

7 years agoAuto merge of #35567 - creativcoder:e0261, r=jonathandturner
bors [Mon, 15 Aug 2016 12:12:35 +0000 (05:12 -0700)]
Auto merge of #35567 - creativcoder:e0261, r=jonathandturner

Update E0261 and E0262 to new error format

Fixes #35516 and  #35517 . Part of #35233
r? @jonathandturner

7 years agoUpdate compiler error 0030 to use new error format.
silenuss [Mon, 15 Aug 2016 06:21:13 +0000 (00:21 -0600)]
Update compiler error 0030 to use new error format.

7 years agoFix bug for ! in old trans
Andrew Cann [Mon, 15 Aug 2016 05:32:12 +0000 (13:32 +0800)]
Fix bug for ! in old trans

7 years agoAuto merge of #35638 - ahmedcharles:url, r=alexcrichton
bors [Mon, 15 Aug 2016 04:38:21 +0000 (21:38 -0700)]
Auto merge of #35638 - ahmedcharles:url, r=alexcrichton

Upgrade linkchecker to url 1.2.0.

7 years agorefactor: use CStore::is_no_builtins
Jorge Aparicio [Mon, 15 Aug 2016 02:56:26 +0000 (21:56 -0500)]
refactor: use CStore::is_no_builtins

7 years agoAuto merge of #35427 - cardoe:arm-musl-targets, r=alexcrichton
bors [Mon, 15 Aug 2016 01:36:33 +0000 (18:36 -0700)]
Auto merge of #35427 - cardoe:arm-musl-targets, r=alexcrichton

add GNU make files for arm-unknown-linux-musleabi

For Yocto (Embedded Linux meta distro) Rust is provided via the [meta-rust layer](https://github.com/meta-rust/meta-rust). In this project there have been patches to add `arm-unknown-linux-musleabi`. Rust recently acquired that support via #35060 but only for rustbuild. meta-rust is currently only able to build Rust support with the existing GNU Makefiles. This adds `arm-unknown-linux-musleabi` support to Rust for the GNU Makefiles until meta-rust is able to sort out why using rustbuild does not work for it.

/cc @srwalter @derekstraka @jmesmon @japaric

7 years agoAuto merge of #35666 - eddyb:rollup, r=eddyb
bors [Sun, 14 Aug 2016 22:27:15 +0000 (15:27 -0700)]
Auto merge of #35666 - eddyb:rollup, r=eddyb

Rollup of 30 pull requests

- Successful merges: #34941, #35392, #35444, #35447, #35491, #35533, #35539, #35558, #35573, #35574, #35577, #35586, #35588, #35594, #35596, #35597, #35598, #35606, #35611, #35615, #35616, #35620, #35622, #35640, #35643, #35644, #35646, #35647, #35648, #35661
- Failed merges: #35395, #35415

7 years agoUpdate E0392 to new error format
Nazım Can Altınova [Sun, 14 Aug 2016 21:12:42 +0000 (00:12 +0300)]
Update E0392 to new error format

7 years agoUpdate error E0365 to new format
Alexandre Oliveira [Sun, 14 Aug 2016 19:30:50 +0000 (16:30 -0300)]
Update error E0365 to new format

7 years agoAuto merge of #35409 - eddyb:mir-storage-stmts, r=nikomatsakis
bors [Sun, 14 Aug 2016 19:28:48 +0000 (12:28 -0700)]
Auto merge of #35409 - eddyb:mir-storage-stmts, r=nikomatsakis

[MIR] Add Storage{Live,Dead} statements to emit llvm.lifetime.{start,end}.

Storage live ranges are tracked for all MIR variables and temporaries with a drop scope.
`StorageLive` is lowered to `llvm.lifetime.start` and `StorageDead` to `llvm.lifetime.end`.

There are some improvements possible here, such as:
* pack multiple storage liveness statements by using the index of first local + `u64` bitset
* enforce that locals are not directly accessed outside their storage live range
* shrink storage live ranges for never-borrowed locals to initialization -> last use
* emit storage liveness statements for *all* temporaries
 * however, the remaining ones are *always* SSA immediates, so they'd be noop in MIR trans
 * could have a flag on the temporary that its storage is irrelevant (a la C's old `register`)
   * would also deny borrows if necessary
    * this seems like an overcompliation and with packing & optimizations it may be pointless

Even in the current state, it helps stage2 `rustc` compile `boiler` without overflowing (see #35408).

A later addition fixes #26764 and closes #27372 by emitting `.section` directives for dylib metadata to avoid them being allocated into memory or read as `.note`. For this PR, those bugs were tripping valgrind.

7 years agoUpdate E0322 to new format
Yossi Konstantinovsky [Sun, 14 Aug 2016 18:57:33 +0000 (21:57 +0300)]
Update E0322 to new format

7 years agoRollup merge of #35661 - IvanUkhov:raw-vec, r=alexcrichton
Eduard-Mihai Burtescu [Sun, 14 Aug 2016 17:29:53 +0000 (20:29 +0300)]
Rollup merge of #35661 - IvanUkhov:raw-vec, r=alexcrichton

Fix a couple of typos in RawVec

Hi,

The pull request is to fix a couple of typos in `liballoc/raw_vec.rs`.

Regards,
Ivan

7 years agoRollup merge of #35648 - ahmedcharles:pred, r=alexcrichton
Eduard-Mihai Burtescu [Sun, 14 Aug 2016 17:29:53 +0000 (20:29 +0300)]
Rollup merge of #35648 - ahmedcharles:pred, r=alexcrichton

Predicates haven't existed in almost 5 years.

This test probably adds negative value other than historical amusement.

7 years agoRollup merge of #35647 - ahmedcharles:spelling, r=alexcrichton
Eduard-Mihai Burtescu [Sun, 14 Aug 2016 17:29:53 +0000 (20:29 +0300)]
Rollup merge of #35647 - ahmedcharles:spelling, r=alexcrichton

Ensure that attributes are spelled properly.

7 years agoRollup merge of #35646 - theypsilon:master, r=jonathandturner
Eduard-Mihai Burtescu [Sun, 14 Aug 2016 17:29:52 +0000 (20:29 +0300)]
Rollup merge of #35646 - theypsilon:master, r=jonathandturner

E0094 error message updated

Part of #35233
Fixes #35231

r? @jonathandturner

7 years agoRollup merge of #35644 - garekkream:update-E0302-new-error-format, r=jonathandturner
Eduard-Mihai Burtescu [Sun, 14 Aug 2016 17:29:52 +0000 (20:29 +0300)]
Rollup merge of #35644 - garekkream:update-E0302-new-error-format, r=jonathandturner

Update E0302 to the new format

Part of #35233.
Fixes #35523.

r? @jonathandturner

7 years agoRollup merge of #35643 - garekkream:update-E0301-new-error-format, r=jonathandturner
Eduard-Mihai Burtescu [Sun, 14 Aug 2016 17:29:52 +0000 (20:29 +0300)]
Rollup merge of #35643 - garekkream:update-E0301-new-error-format, r=jonathandturner

Update E0301 to the new format

Part of #35233.
Fixes #35522.

r? @jonathandturner

7 years agoRollup merge of #35640 - ahmedcharles:dead, r=alexcrichton
Eduard-Mihai Burtescu [Sun, 14 Aug 2016 17:29:52 +0000 (20:29 +0300)]
Rollup merge of #35640 - ahmedcharles:dead, r=alexcrichton

compiletest: Remove dead code.

7 years agoRollup merge of #35622 - matthew-piziak:convert-docs-typos, r=apasel422
Eduard-Mihai Burtescu [Sun, 14 Aug 2016 17:29:52 +0000 (20:29 +0300)]
Rollup merge of #35622 - matthew-piziak:convert-docs-typos, r=apasel422

fix small typos in std::convert documentation

Fix subject-verb agreement in copypasta: "`AsRef` dereference" to
"`AsRef` dereferences".

Formalize "eg" to "e.g." Italicization of common Latin abbreviations
seems to be going out of style in written English, so I left it plain.

7 years agoRollup merge of #35620 - cvubrugier:master, r=Manishearth
Eduard-Mihai Burtescu [Sun, 14 Aug 2016 17:29:51 +0000 (20:29 +0300)]
Rollup merge of #35620 - cvubrugier:master, r=Manishearth

book: fix the hidden find() functions in error-handling.md

The hidden find() functions always returns None. Consequently, one of the
examples using find() prints "No file extension found" instead of
"File extension: rs" which is the expected output.

This patch fixes the issue by implementing find() with std::str::find().

Signed-off-by: Christophe Vu-Brugier <cvubrugier@fastmail.fm>
7 years agoRollup merge of #35616 - clementmiao:E0067_new_error_format, r=jonathandturner
Eduard-Mihai Burtescu [Sun, 14 Aug 2016 17:29:51 +0000 (20:29 +0300)]
Rollup merge of #35616 - clementmiao:E0067_new_error_format, r=jonathandturner

changed E0067 to new error format

Updated E0067 to new error format.
Part of #35233
Fixes #35502

Passes all the tests when running:
`python src/bootstrap/bootstrap.py --step check-cfail --stage 1`

**This seems strange, given that the format for E0067 has been changed.**
It feels like it should fail some unit tests maybe?

Let me know if I'm mistaken. Otherwise I can create a unit test for it.

Thanks for letting me help!

r? @jonathandturner

7 years agoRollup merge of #35615 - clementmiao:E0070_new_error_format, r=jonathandturner
Eduard-Mihai Burtescu [Sun, 14 Aug 2016 17:29:51 +0000 (20:29 +0300)]
Rollup merge of #35615 - clementmiao:E0070_new_error_format, r=jonathandturner

Update E0070 to new error format

Updated E0070 to new error format.
Part of #35233
Fixes #35503

Thanks for letting me help!

r? @jonathandturner

7 years agoRollup merge of #35611 - jonathandturner:ptr-helper, r=nikomatsakis
Eduard-Mihai Burtescu [Sun, 14 Aug 2016 17:29:51 +0000 (20:29 +0300)]
Rollup merge of #35611 - jonathandturner:ptr-helper, r=nikomatsakis

Improve &-ptr printing

This PR replaces printing `&-ptr` with a more readable description.  To do so it uses a few heuristics.

If the name of the type is unknown, too long (longer than just saying "reference"), or too complex (a type with explicit lifetime annotations), it will instead opt to print either "reference" or "mutable reference", depending on the mutability of the type.

Before:

```
error[E0308]: mismatched types
  --> src/test/compile-fail/issue-7061.rs:14:46
   |
14 |     fn foo(&'a mut self) -> Box<BarStruct> { self }
   |                                              ^^^^ expected box, found &-ptr
   |
   = note: expected type `Box<BarStruct>`
   = note:    found type `&'a mut BarStruct`

error: aborting due to previous error
```

After:

```
error[E0308]: mismatched types
  --> src/test/compile-fail/issue-7061.rs:14:46
   |
14 |     fn foo(&'a mut self) -> Box<BarStruct> { self }
   |                                              ^^^^ expected box, found mutable reference
   |
   = note: expected type `Box<BarStruct>`
   = note:    found type `&'a mut BarStruct`

error: aborting due to previous error
```

7 years agoRollup merge of #35606 - Mark-Simulacrum:no-std-fix, r=brson
Eduard-Mihai Burtescu [Sun, 14 Aug 2016 17:29:51 +0000 (20:29 +0300)]
Rollup merge of #35606 - Mark-Simulacrum:no-std-fix, r=brson

Change stabilization version of no_std from 1.0 to 1.6.

I don't know if more than this is needed.

Fixes #35579.

7 years agoRollup merge of #35598 - tshepang:needless-binding, r=steveklabnik
Eduard-Mihai Burtescu [Sun, 14 Aug 2016 17:29:50 +0000 (20:29 +0300)]
Rollup merge of #35598 - tshepang:needless-binding, r=steveklabnik

string: remove needless binding

7 years agoRollup merge of #35597 - tshepang:it-is-a-slice, r=steveklabnik
Eduard-Mihai Burtescu [Sun, 14 Aug 2016 17:29:50 +0000 (20:29 +0300)]
Rollup merge of #35597 - tshepang:it-is-a-slice, r=steveklabnik

doc: a value of type `&str` is called a "string slice"

7 years agoRollup merge of #35596 - crypto-universe:E0254_style_and_tests, r=jonathandturner
Eduard-Mihai Burtescu [Sun, 14 Aug 2016 17:29:50 +0000 (20:29 +0300)]
Rollup merge of #35596 - crypto-universe:E0254_style_and_tests, r=jonathandturner

Add label to E0254

This issue #35513 is a part of #35233.
r? @jonathandturner

7 years agoRollup merge of #35594 - shepmaster:configure-llvm-39, r=alexcrichton
Eduard-Mihai Burtescu [Sun, 14 Aug 2016 17:29:50 +0000 (20:29 +0300)]
Rollup merge of #35594 - shepmaster:configure-llvm-39, r=alexcrichton

Allow compiling against a custom LLVM 3.9 installation

7 years agoRollup merge of #35588 - Antti:fix-atomics-docs, r=alexcrichton
Eduard-Mihai Burtescu [Sun, 14 Aug 2016 17:29:50 +0000 (20:29 +0300)]
Rollup merge of #35588 - Antti:fix-atomics-docs, r=alexcrichton

Use an existing constant name as an example.

By reading atomics documentation I tried to use `INIT_ATOMIC_BOOL`, which I couldn't find. Turns out it was renamed to `ATOMIC_BOOL_INIT`.

7 years agoRollup merge of #35586 - shyaamsundhar:SqushCom, r=jonathandturner
Eduard-Mihai Burtescu [Sun, 14 Aug 2016 17:29:49 +0000 (20:29 +0300)]
Rollup merge of #35586 - shyaamsundhar:SqushCom, r=jonathandturner

E0248, E0267 & E0268 Change into issue format

r? @jonathandturner  Part of #35391, #35519 and #35520. I have squashed all changes into a single commit. Please review the changes.

E0248 Change in issue format

E0267 UT New Format

E0268 UT New Format

E0267 & E0268 New Error Format

7 years agoRollup merge of #35577 - japaric:relax, r=alexcrichton
Eduard-Mihai Burtescu [Sun, 14 Aug 2016 17:29:49 +0000 (20:29 +0300)]
Rollup merge of #35577 - japaric:relax, r=alexcrichton

add -mrelax-relocations=no to i686-musl and i586-gnu

I've been experiencing #34978 with these two targets. This applies the
hack in #35178 to these targets as well.

r? @alexcrichton

7 years agoRollup merge of #35574 - badboy:emscripten-test-fixes, r=brson
Eduard-Mihai Burtescu [Sun, 14 Aug 2016 17:29:49 +0000 (20:29 +0300)]
Rollup merge of #35574 - badboy:emscripten-test-fixes, r=brson

Emscripten test fixes

This picks up parts of #31623 to disable certain tests that emscripten can't run, as threads/processes are not supported.
I re-applied @tomaka's changes manually, I can rebase those commits with his credentials if he wants.

It also disables jemalloc for emscripten (at least in Rustbuild, I have to check if there is another setting for the same thing in the old makefile approach).

This should not impact anything for normal builds.

7 years agoRollup merge of #35573 - wdv4758h:E0138, r=jonathandturner
Eduard-Mihai Burtescu [Sun, 14 Aug 2016 17:29:49 +0000 (20:29 +0300)]
Rollup merge of #35573 - wdv4758h:E0138, r=jonathandturner

Update E0138 to new format

Part of #35233
Fix #35510
r? @jonathandturner

![e0138](https://cloud.githubusercontent.com/assets/2716047/17562415/7200d93c-5f5d-11e6-98ff-e15c29f40e03.png)

Question: How can I only underline the function name ? I have observed the debug output and the struct of item, but I can't find the `Span` for function name. Should I modify the struct I get to save function name's position or there is another way to get it ? (I can only find `Span`s for function attributes, inputs, outputs, blocks)

7 years agoRollup merge of #35558 - lukehinds:master, r=nikomatsakis
Eduard-Mihai Burtescu [Sun, 14 Aug 2016 17:29:49 +0000 (20:29 +0300)]
Rollup merge of #35558 - lukehinds:master, r=nikomatsakis

Update error message for E0253 #35512

Fixes #35512. Part of #35233.

7 years agoRollup merge of #35539 - cgswords:ts_concat, r=nrc
Eduard-Mihai Burtescu [Sun, 14 Aug 2016 17:29:49 +0000 (20:29 +0300)]
Rollup merge of #35539 - cgswords:ts_concat, r=nrc

Implemented a smarter TokenStream concatenation system

The new algorithm performs 'aggressive compacting' during concatenation as follows:

- If the nodes' combined total total length is less than 32, we copy both of
   them into a new vector and build a new leaf node.
- If one node is an internal node and the other is a 'small' leaf (length<32),
   we recur down the internal node on the appropriate side.
 - Otherwise, we construct a new internal node that points to them as left and
 right.

This should produce notably better behavior than the current concatenation implementation.

7 years agoRollup merge of #35533 - frewsxcv:22984, r=brson
Eduard-Mihai Burtescu [Sun, 14 Aug 2016 17:29:48 +0000 (20:29 +0300)]
Rollup merge of #35533 - frewsxcv:22984, r=brson

Add regression test for #22894.

None

7 years agoRollup merge of #35491 - sanxiyn:pub-restricted-span, r=nikomatsakis
Eduard-Mihai Burtescu [Sun, 14 Aug 2016 17:29:48 +0000 (20:29 +0300)]
Rollup merge of #35491 - sanxiyn:pub-restricted-span, r=nikomatsakis

Correct span for pub_restricted field

Fix #35435.

7 years agoRollup merge of #35447 - frewsxcv:vec-into-iter-as-slice, r=alexcrichton
Eduard-Mihai Burtescu [Sun, 14 Aug 2016 17:29:48 +0000 (20:29 +0300)]
Rollup merge of #35447 - frewsxcv:vec-into-iter-as-slice, r=alexcrichton

Introduce `as_slice`/`as_mut_slice` methods on `std::vec::IntoIter` struct.

Similar to the `as_slice` method on `core::slice::Iter` struct.

7 years agoRollup merge of #35444 - alexcrichton:optimize-catch-unwind, r=brson
Eduard-Mihai Burtescu [Sun, 14 Aug 2016 17:29:48 +0000 (20:29 +0300)]
Rollup merge of #35444 - alexcrichton:optimize-catch-unwind, r=brson

std: Optimize panic::catch_unwind slightly

The previous implementation of this function was overly conservative with
liberal usage of `Option` and `.unwrap()` which in theory never triggers. This
commit essentially removes the `Option`s in favor of unsafe implementations,
improving the code generation of the fast path for LLVM to see through what's
happening more clearly.

cc #34727

7 years agoRollup merge of #35392 - malbarbo:cell-from, r=brson
Eduard-Mihai Burtescu [Sun, 14 Aug 2016 17:29:47 +0000 (20:29 +0300)]
Rollup merge of #35392 - malbarbo:cell-from, r=brson

Implement From for Cell, RefCell and UnsafeCell

Considering that `From` is implemented for `Box`, `Rc` and `Arc`, it seems [reasonable](https://internals.rust-lang.org/t/implementing-from-t-for-other-std-types/3744) to implement it for `Cell`, `RefCell` and `UnsafeCell`.

7 years agoRollup merge of #34941 - qolop:patch-2, r=apasel422
Eduard-Mihai Burtescu [Sun, 14 Aug 2016 17:29:47 +0000 (20:29 +0300)]
Rollup merge of #34941 - qolop:patch-2, r=apasel422

Fix typo (privledge->privilege)

7 years agoAuto merge of #34366 - Diggsey:rust-src-pkg, r=brson
bors [Sun, 14 Aug 2016 16:34:18 +0000 (09:34 -0700)]
Auto merge of #34366 - Diggsey:rust-src-pkg, r=brson

Produce source package in rust-installer format

See rust-lang/rust-buildbot#102

There may be a better way to do this, wasn't sure how to clean-up the `rust-src-image` directory when it's used by multiple make rules.

7 years agoAuto merge of #35534 - michaelwoerister:fix-const-collection2, r=nikomatsakis
bors [Sun, 14 Aug 2016 13:42:16 +0000 (06:42 -0700)]
Auto merge of #35534 - michaelwoerister:fix-const-collection2, r=nikomatsakis

Make the translation item collector handle *uses* of 'const' items instead of declarations.

This should fix issue #34754.

7 years agoImprove `No stdlib` and related Documentation
Christopher Serr [Sun, 14 Aug 2016 11:33:53 +0000 (13:33 +0200)]
Improve `No stdlib` and related Documentation

7 years agoAuto merge of #34206 - petrochenkov:pipdeny, r=nikomatsakis
bors [Sun, 14 Aug 2016 10:50:50 +0000 (03:50 -0700)]
Auto merge of #34206 - petrochenkov:pipdeny, r=nikomatsakis

Make `private_in_public` compatibility lint deny-by-default

In accordance with the [plan](https://internals.rust-lang.org/t/fcp-for-various-future-compatibility-warnings/3590/5?u=petrochenkov).

r? @nikomatsakis

7 years agoupdated compile-fail tests
Rahul Sharma [Sun, 14 Aug 2016 10:48:58 +0000 (16:18 +0530)]
updated compile-fail tests

7 years agoGet rid of the .note interpretation of rustc dylib metadata.
Eduard Burtescu [Sun, 14 Aug 2016 08:16:28 +0000 (11:16 +0300)]
Get rid of the .note interpretation of rustc dylib metadata.

7 years agoAuto merge of #35453 - jseyfried:hygienize_metavariables, r=nrc
bors [Sun, 14 Aug 2016 06:37:11 +0000 (23:37 -0700)]
Auto merge of #35453 - jseyfried:hygienize_metavariables, r=nrc

macros: Make metavariables hygienic

This PR makes metavariables hygienic. For example, consider:
```rust
macro_rules! foo {
    ($x:tt) => { // Suppose that this token tree argument is always a metavariable.
        macro_rules! bar { ($x:expr, $y:expr) => { ($x, $y) } }
    }
}

fn main() {
    foo!($z); // This currently compiles.
    foo!($y); // This is an error today but compiles after this PR.
}
```
Today, the `macro_rules! bar { ... }` definition is only valid when the metavariable passed to `foo` is not `$y` (since it unhygienically conflicts with the `$y` in the definition of `bar`) or `$x` (c.f. #35450).

After this PR, the definition of `bar` is always valid (and `bar!(a, b)` always expands to `(a, b)` as expected).

This can break code that was allowed in #34925 (landed two weeks ago). For example,
```rust
macro_rules! outer {
    ($t:tt) => {
        macro_rules! inner { ($i:item) => { $t } }
    }
}

outer!($i); // This `$i` should not interact with the `$i` in the definition of `inner!`.
inner!(fn main() {}); // After this PR, this is an error ("unknown macro variable `i`").
```

Due to the severe limitations on nested `macro_rules!` before #34925, this is not a breaking change for stable/beta.

Fixes #35450.

r? @nrc

7 years agoFix a couple of typos in RawVec
Ivan Ukhov [Sun, 14 Aug 2016 04:59:43 +0000 (06:59 +0200)]
Fix a couple of typos in RawVec

7 years ago[MIR] Add Storage{Live,Dead} statements to emit llvm.lifetime.{start,end}.
Eduard Burtescu [Sun, 14 Aug 2016 03:34:14 +0000 (06:34 +0300)]
[MIR] Add Storage{Live,Dead} statements to emit llvm.lifetime.{start,end}.

7 years agoUpdate E0207 label to report parameter type
Terry Sun [Sun, 14 Aug 2016 01:57:13 +0000 (21:57 -0400)]
Update E0207 label to report parameter type

Fixes #35642.

7 years agoFix make-tidy lock file checks
Diggory Blake [Sat, 13 Aug 2016 21:36:04 +0000 (22:36 +0100)]
Fix make-tidy lock file checks

7 years agoAdd regression test.
Jeffrey Seyfried [Fri, 12 Aug 2016 08:30:48 +0000 (08:30 +0000)]
Add regression test.

7 years agoAllow attributes to be marked used before `cfg` proccessing.
Jeffrey Seyfried [Fri, 12 Aug 2016 08:15:40 +0000 (08:15 +0000)]
Allow attributes to be marked used before `cfg` proccessing.

7 years agoAuto merge of #35414 - jupp0r:feature/test-threads-flag, r=alexcrichton
bors [Sat, 13 Aug 2016 16:52:49 +0000 (09:52 -0700)]
Auto merge of #35414 - jupp0r:feature/test-threads-flag, r=alexcrichton

Add --test-threads option to test binaries

This change allows parallelism of test runs to be specified by a
command line flag names --test-threads in addition to the existing
environment variable RUST_TEST_THREADS. Fixes #25636.

7 years agoRemove diagnostic E0166
Andrew Cann [Sat, 13 Aug 2016 16:30:05 +0000 (00:30 +0800)]
Remove diagnostic E0166

7 years agorustdoc: Don't include the path for primitive methods in the search results
Oliver Middleton [Sat, 13 Aug 2016 14:54:14 +0000 (15:54 +0100)]
rustdoc: Don't include the path for primitive methods in the search results

Displaying `std::u32::max_value` is misleading so just display
`u32::max_value`.

7 years agorustdoc: Fix links to static items in the search results
Oliver Middleton [Sat, 13 Aug 2016 14:48:38 +0000 (15:48 +0100)]
rustdoc: Fix links to static items in the search results

7 years agoFix bug in PostExpansionVisitor
Andrew Cann [Sat, 13 Aug 2016 10:02:13 +0000 (18:02 +0800)]
Fix bug in PostExpansionVisitor

7 years agoFix build after rebase
Andrew Cann [Sat, 13 Aug 2016 06:13:39 +0000 (14:13 +0800)]
Fix build after rebase

7 years agoImprove comments on ! tests
Andrew Cann [Thu, 11 Aug 2016 18:59:19 +0000 (02:59 +0800)]
Improve comments on ! tests

7 years agoFix `make tidy`
Andrew Cann [Thu, 11 Aug 2016 17:42:24 +0000 (01:42 +0800)]
Fix `make tidy`

7 years agoAdd explanations to tests
Andrew Cann [Thu, 11 Aug 2016 17:22:34 +0000 (01:22 +0800)]
Add explanations to tests

7 years agoPermit `! as T` with test
Andrew Cann [Thu, 11 Aug 2016 11:28:52 +0000 (19:28 +0800)]
Permit `! as T` with test

7 years agoAdd another test for !
Andrew Cann [Thu, 11 Aug 2016 11:28:28 +0000 (19:28 +0800)]
Add another test for !

7 years agoAdd tests for ! type
Andrew Cann [Thu, 11 Aug 2016 09:06:39 +0000 (17:06 +0800)]
Add tests for ! type

7 years agoAdd some tests for ! type
Andrew Cann [Wed, 10 Aug 2016 14:22:45 +0000 (22:22 +0800)]
Add some tests for ! type

7 years agoRevert Ty::is_uninhabited to its original state
Andrew Cann [Wed, 3 Aug 2016 06:34:22 +0000 (14:34 +0800)]
Revert Ty::is_uninhabited to its original state

7 years agoMinor fixups based on feedback
Andrew Cann [Wed, 3 Aug 2016 05:59:27 +0000 (13:59 +0800)]
Minor fixups based on feedback

7 years agoAdd run-pass/never_coercions.rs test
Andrew Cann [Wed, 3 Aug 2016 05:58:59 +0000 (13:58 +0800)]
Add run-pass/never_coercions.rs test

7 years agoCorrectly handle AdjustNeverToAny in try_find_coercion_lub
Andrew Cann [Wed, 3 Aug 2016 05:10:39 +0000 (13:10 +0800)]
Correctly handle AdjustNeverToAny in try_find_coercion_lub

7 years agoMinor fixup.
Andrew Cann [Tue, 2 Aug 2016 18:29:14 +0000 (02:29 +0800)]
Minor fixup.

7 years agoLookup node type in map rather than using write_ty_expr
Andrew Cann [Tue, 2 Aug 2016 16:43:19 +0000 (00:43 +0800)]
Lookup node type in map rather than using write_ty_expr

7 years agoDefault diverging types based on feature gate.
Andrew Cann [Tue, 2 Aug 2016 11:56:33 +0000 (19:56 +0800)]
Default diverging types based on feature gate.

Default to either `!` or `()` depending on whether feature(never_type)
is on or not.

7 years agoMinor fix
Andrew Cann [Tue, 2 Aug 2016 08:51:11 +0000 (16:51 +0800)]
Minor fix

7 years agoUn-improve Ty::is_uninabited
Andrew Cann [Tue, 2 Aug 2016 08:08:12 +0000 (16:08 +0800)]
Un-improve Ty::is_uninabited

7 years agoRename empty/bang to never
Andrew Cann [Tue, 2 Aug 2016 07:56:20 +0000 (15:56 +0800)]
Rename empty/bang to never

Split Ty::is_empty method into is_never and is_uninhabited

7 years agoMinor fixups based on @eddyb's feedback
Andrew Cann [Tue, 2 Aug 2016 05:46:39 +0000 (13:46 +0800)]
Minor fixups based on @eddyb's feedback

Mainly, remove mk_empty() method and replace with tcx.types.empty

7 years agoControl usage of `!` through a feature gate.
Andrew Cann [Mon, 1 Aug 2016 12:15:54 +0000 (20:15 +0800)]
Control usage of `!` through a feature gate.

Adds the `bang_type` feature gate. `!` in a non-return-type position now
relies on that feature.

7 years agoMake AdjustEmptyToAny actually perform the adjustment
Andrew Cann [Mon, 1 Aug 2016 06:44:29 +0000 (14:44 +0800)]
Make AdjustEmptyToAny actually perform the adjustment

7 years agoRemove invalid compile-fail tests related to `!`
Andrew Cann [Mon, 1 Aug 2016 04:58:01 +0000 (12:58 +0800)]
Remove invalid compile-fail tests related to `!`

These tests check for the old error messages "`return` in a function
declared as diverging" and "computation may converge in a function
declared as diverging". The first of these is now invalid as `return` is
permitted in functions that return `!`. The second of these is subsumed
by the "mismatched types" error.

7 years agoimplement std::cmp::* traits for `!`
Andrew Cann [Mon, 1 Aug 2016 04:56:43 +0000 (12:56 +0800)]
implement std::cmp::* traits for `!`

7 years agoFix build after rebase to lastest master
Andrew Cann [Mon, 1 Aug 2016 04:56:23 +0000 (12:56 +0800)]
Fix build after rebase to lastest master