Commit Graph

58732 Commits

Author SHA1 Message Date
Eduard-Mihai Burtescu
2321d11b8c Rollup merge of #37134 - GuillaumeGomez:display_tag, r=steveklabnik
Print more tags in rustdoc

r? @steveklabnik

cc @frewsxcv

A little screenshot:

<img width="1440" alt="screen shot 2016-10-13 at 01 41 53" src="https://cloud.githubusercontent.com/assets/3050060/19331745/873cd71e-90e6-11e6-88f8-715668366a3f.png">
2016-11-09 20:51:15 +02:00
Eduard-Mihai Burtescu
f433209248 Rollup merge of #36868 - petrochenkov:adtstab, r=nikomatsakis
Partially stabilize RFC 1506 "Clarify relationships between ADTs"

Lifted restrictions on tuple structs/variants are stabilized, i.e. `S{..}` can be used with any structs and empty tuple structs are permitted without feature gate.
Numeric fields in struct expressions/patterns `S { 0: a, 1: b }` are **NOT** stabilized.
This was implemented 1.5 months ago in Rust 1.12, but this is a tiny technical change that could probably go even without RFC/stabilization period.

cc https://github.com/rust-lang/rust/issues/35626 https://github.com/rust-lang/rust/pull/36871
r? @nikomatsakis
2016-11-09 20:51:15 +02:00
Alex Crichton
cc2c812701 rustc_llvm: Require 3.9 for --link-static
Apparently stock Ubuntu 16.04 includes LLVM 3.8 which doesn't have this flag.
2016-11-09 09:12:38 -08:00
bors
bca365e688 Auto merge of #36520 - estebank:dataless-enum, r=brson
Reword error when data-less enum variant called as function

Given a file like:

``` rust
enum Test {
    Variant,
    Variant2 {a: u32},
}

fn main(){
    let x = Test::Variant("Hello");
    let y = Test::Variant2("World");
}
```

Both errors now look similar:

``` bash
error[E0423]: `Test::Variant2` is the name of a struct or struct variant, but this expression uses it like a function name
  --> file3.rs:10:13
   |
10 |     let y = Test::Variant2("Hello");
   |             ^^^^^^^^^^^^^^ struct called like a function
   |
   = help: did you mean to write: `Test::Variant2 { /* fields */ }`?

error: `Test::Variant` is the name of a data-less enum, but this expression uses it like a function name
 --> file3.rs:9:13
  |
9 |     let x = Test::Variant("World");
  |             ^^^^^^^^^^^^^^^^^^^^^^ data-less enum called like a function
  |
  = help: did you mean to write: `Test::Variant`?
note: defined here
 --> file3.rs:2:5
  |
2 |     Variant,
  |     ^^^^^^^

error: aborting due to previous error
```

Re: #28533
2016-11-09 08:51:23 -08:00
Jonas Schievink
fb7a8294f8 proc_macro_plugin: Wrap nonexistent filename in <>
I'm not sure how big of an issue this can become in practice, but `FileMap`s made from something that's not a file are supposed to wrap the file name in `<>`.

For an example fix, see kevinmehall/rust-peg@332fd4dbae. There, it caused cargo to always recompile a crate using rust-peg, even when nothing was changed, because cargo sees that the dummy file doesn't exist.
2016-11-09 14:55:39 +01:00
bors
02aa42860d Auto merge of #37657 - steveklabnik:rollup, r=steveklabnik
Rollup of 8 pull requests

- Successful merges: #35102, #37425, #37483, #37588, #37601, #37610, #37650, #37652
- Failed merges:
2016-11-09 05:35:23 -08:00
bors
966c70085a Auto merge of #37651 - alexcrichton:fix-deps, r=alexcrichton
rustbuild: Fix dependencies of check-error-index

This depends on the error index actually existing rather than just the tool to
generate the error index.
2016-11-09 01:15:20 -08:00
Abhishek Chanda
50bfc23816 Clarify that send_to might return an error in certain cases
Closes #34202
2016-11-09 09:03:33 +00:00
est31
1e9aad752b Document the question mark operator 2016-11-09 08:37:05 +01:00
Wesley Wiser
a62a67cc6a Add documentation for some of the add/sub/mul intrinsics
Part of #34338
2016-11-08 22:03:27 -05:00
Wesley Wiser
a3f75fb072 Add documentation for the volatile_read and volatile_write intrinsics
Part of #34338
2016-11-08 22:03:23 -05:00
Wesley Wiser
bc4fc6567c Add documentation for many of the atomic_* intrinsics
Part of #34338
2016-11-08 22:03:08 -05:00
Brian Anderson
ba92b01e9a question_mark was stabilized in 1.13 2016-11-09 02:35:36 +00:00
Esteban Küber
a820d99eb2 Group unused import warnings per path list
Given a file

```rust
use std::collections::{BinaryHeap, BTreeMap, BTreeSet};

fn main() {}
```

Show a single warning, instead of three for each unused import:

```nocode
warning: unused imports, #[warn(unused_imports)] on by default
 --> foo.rs:1:24
  |
1 | use std::collections::{BinaryHeap, BTreeMap, BTreeSet};
  |                        ^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^
```

Include support for lints pointing at `MultilineSpan`s, instead of just
`Span`s.
2016-11-08 17:44:21 -08:00
Niko Matsakis
c4285359a4 introduce a fudge_regions_if_ok to address false region edges
Fixes #37655.
2016-11-08 18:58:12 -05:00
Esteban Küber
3edb4fc563 Point to type argument span when used as trait
Given the following code:

```rust
struct Foo<T: Clone>(T);

use std::ops::Add;

impl<T: Clone, Add> Add for Foo<T> {
    type Output = usize;

    fn add(self, rhs: Self) -> Self::Output {
      unimplemented!();
    }
}
```

present the following output:

```nocode
error[E0404]: `Add` is not a trait
 --> file3.rs:5:21
  |
5 | impl<T: Clone, Add> Add for Okok<T> {
  |                ---  ^^^ expected trait, found type parameter
  |                |
  |                type parameter defined here
```
2016-11-08 14:17:18 -08:00
Alex Crichton
860c6ab3c1 rustbuild: Fix check-error-index step
If it ran too soon there wasn't a `test` directory lying around but we'll need
one!
2016-11-08 13:49:48 -08:00
Mikhail Modin
cfdf7633f0 Improve "Doesn't live long enough" error
case with temporary variable
2016-11-09 00:28:50 +03:00
Steve Klabnik
5c92c2c6a9 Rollup merge of #37652 - SimonSapin:arc-count-doc, r=alexcrichton
More proeminent warning in Arc::{strong,weak}_count docs.

CC https://github.com/rust-lang/rust/issues/28356#issuecomment-259212258
2016-11-08 16:20:58 -05:00
Steve Klabnik
48c4d1740e Rollup merge of #37650 - GuillaumeGomez:missing_urls_product, r=steveklabnik
Add missing urls for Sum and Product traits

r? @steveklabnik
2016-11-08 16:20:57 -05:00
Steve Klabnik
5bfc21dcb6 Rollup merge of #37610 - oldmanmike:unary-and-binary-tests, r=michaelwoerister
Add unary and binary tests for incr-comp

This is my draft of tests for unary and binary expressions as desired by #37520 for use in the test suite for hashes in incremental compilation. Feedback would be wonderful, if there's any changes I need to make I would appreciate the code review.

?r @michaelwoerister
2016-11-08 16:20:57 -05:00
Steve Klabnik
d2fd20152b Rollup merge of #37601 - brson:book-without-tiers, r=steveklabnik
book: Removed platform compatibility table, link to the forge

The content is duplicated, and it doesn't need to be in this location.
It's mostly trivia that doesn't apply to most of the audience.

The forge is up to date.

r? @steveklabnik cc @alexcrichton
2016-11-08 16:20:57 -05:00
Steve Klabnik
e6b6586667 Rollup merge of #37588 - GuillaumeGomez:missing_io_urls, r=frewsxcv
Add missing urls on io structs

r? @steveklabnik
2016-11-08 16:20:57 -05:00
Steve Klabnik
2b2e9fc400 Rollup merge of #37483 - xfix:patch-1, r=steveklabnik
Match guessing game output to newest language version

Cargo now informs that it has finished, and there is new error format.
2016-11-08 16:20:56 -05:00
Steve Klabnik
b2db5b9ffa Rollup merge of #37425 - polo-language:doc, r=GuillaumeGomez
Add error note to illegal code snippet

Mark intentionally invalid code snippet in documentation as such with a comment. Similar comments used elsewhere in this file.

r? @steveklabnik
2016-11-08 16:20:56 -05:00
Steve Klabnik
8fd202615f Rollup merge of #35102 - steveklabnik:ref_warning, r=aturon
Make it clear that the reference isn't normative

Any time someone edits the reference, it has to be taken very seriously,
since it's the closest thing we have to a specification. This commit
adds language which indicates that this is not a normative document,
which makes it easier to make tweaks without worrying about forever
harming the future of Rust by painting ourselves in a corner.

r? @aturon
2016-11-08 16:20:56 -05:00
Michael Woerister
5d186d0ddd ICH: Add test case for match-expressions 2016-11-08 15:58:06 -05:00
Michael Woerister
f7d2a813d5 ICH: Add test case for let-expressions. 2016-11-08 15:57:56 -05:00
Ariel Ben-Yehuda
1dad4b6bb5 add more comment 2016-11-08 22:55:57 +02:00
Guillaume Gomez
f2ff9857cd Add missing urls and few local rewrites 2016-11-08 21:30:17 +01:00
bors
0491a23177 Auto merge of #37192 - cristicbz:rust-rc-into-raw, r=brson
Add `{into,from}_raw` to Rc and Arc

These methods convert to and from a `*const T` for `Rc` and `Arc` similar to the way they work on `Box`. The only slight complication is that `from_raw` needs to offset the pointer back to find the beginning of the `RcBox`/`ArcInner`.

I felt this is a fairly small addition, filling in a gap (when compared to `Box`) so it wouldn't need an RFC. The motivation is primarily for FFI.

(I'll create an issue and update a PR with the issue number if reviewers agree with the change in principle **Edit: done #37197**)

~~Edit: This was initially `{into,from}_raw` but concerns were raised about the possible footgun if mixed with the methods of the same name of `Box`.~~

Edit: This was went from `{into,from}_raw` to `{into,from}_inner_raw` then back to `{into,from}_raw` during review.
2016-11-08 12:13:45 -08:00
Vadim Petrochenkov
ab5ba049bc Partially stabilize RFC 1506 "Clarify relationships between ADTs" 2016-11-08 22:34:05 +03:00
Simon Sapin
93571537e3 More proeminent warning in Arc::{strong,weak}_count docs. 2016-11-08 20:15:20 +01:00
Guillaume Gomez
7ee4386667 Add missing urls for Sum and Product traits 2016-11-08 18:33:04 +01:00
Oliver Middleton
18f5f9960f Slightly optimise CString
Avoid a reallocation in CString::from and CStr::to_owned.
2016-11-08 16:55:24 +00:00
Alex Crichton
31a8638e5e rustbuild: Tweak for vendored dependencies
A few changes are included here:

* The `winapi` and `url` dependencies were dropped. The source code for these
  projects is pretty weighty, and we're about to vendor them, so let's not
  commit to that intake just yet. If necessary we can vendor them later but for
  now it shouldn't be necessary.

* The `--frozen` flag is now always passed to Cargo, obviating the need for
  tidy's `cargo_lock` check.

* Tidy was updated to not check the vendor directory

Closes #34687
2016-11-08 07:32:05 -08:00
Alex Crichton
319f46fba3 rustbuild: Vendor all dependencies
This commit vendors all dependencies when using rustbuild to ensure that we
don't hit the network during a build and can build as a self-contained unit.
2016-11-08 07:32:05 -08:00
Trotter Cashion
b1d0c5bb38 Update testing.md to reflect changes to cargo new
`cargo new` now creates a `src/lib.rs` with a `tests` module by default. I've updated the earlier examples in this doc to reflect this. However, I don't know how we want to approach the "introduction" to idiomatic testing that follows in "the tests module" section. I _think_ it should be broken apart, with the module concept being introduced early on, and the `super` concept being addressed when we hit the `add_two` example. I'd like to get agreement on that being the right approach before I do it though.

I _also_ removed the `#fn main() {}` hidden at the beginning of each example, as these cause Rust Playground to not treat the file as a set of tests that it can run. Removing it _should_ cause Rust Playground to display a "Test >" button in the top left when a user runs the code, which will allow them to see the test runner output.
2016-11-08 07:04:12 -08:00
karpinski
c670293630 Adding a deprecation warning for no-stack-check codegen option. 2016-11-08 13:45:07 +01:00
abhijeetbhagat
c2a1c7f44f Change description of no-stack-check (#34915) 2016-11-08 13:45:07 +01:00
Josh Driver
134ef4f793 Revert "Point macros 1.1 errors to the input item"
This reverts commit 3784067edc.
Any errors in the derived output now point at the derive attribute
instead of the item.
2016-11-08 23:03:56 +10:30
Josh Driver
31a508e118 Allow proc_macro functions to whitelist specific attributes
By using a second attribute `attributes(Bar)` on
proc_macro_derive, whitelist any attributes with
the name `Bar` in the deriving item. This allows
a proc_macro function to use custom attribtues
without a custom attribute error or unused attribute
lint.
2016-11-08 23:03:56 +10:30
bors
38a959a543 Auto merge of #36843 - petrochenkov:dotstab, r=nikomatsakis
Stabilize `..` in tuple (struct) patterns

I'd like to nominate `..` in tuple and tuple struct patterns for stabilization.
This feature is a relatively small extension to existing stable functionality and doesn't have known blockers.
The feature first appeared in Rust 1.10 6 months ago.
An example of use: https://github.com/rust-lang/rust/pull/36203

Closes https://github.com/rust-lang/rust/issues/33627
r? @nikomatsakis
2016-11-08 02:06:45 -08:00
Nicholas Nethercote
00e48affde Replace FnvHasher use with FxHasher.
This speeds up compilation by 3--6% across most of rustc-benchmarks.
2016-11-08 15:14:59 +11:00
Nicholas Nethercote
eca1cc957f Add FxHasher, a faster alternative to FnvHasher. 2016-11-08 15:14:00 +11:00
Nick Cameron
4b20221e14 save-analysis: don't choke on stripped doc attributes 2016-11-08 15:28:00 +13:00
Brian Anderson
0f817a0dd9 Add release notes for 1.13.0 2016-11-07 23:53:32 +00:00
Josh Driver
d377cf5b3f Rename KNOWN_ATTRS to BUILT_ATTRS, and create KNOWN_ATTRS
KNOWN_ATTRIBUTES should really be named BUILT_ATTRIBUTES,
while KNOWN_ATTRIBUTES should be used to mark attributes
as known, similar to USED_ATTRIBUTES.
2016-11-08 08:30:26 +10:30
bors
57f971bc16 Auto merge of #36365 - matthew-piziak:silent-overflow, r=eddyb
fix silent overflows on `Step` impls

Part of https://github.com/rust-lang/rust/issues/36110

r? @eddyb
2016-11-07 11:48:16 -08:00
oldmanmike
5a2997d3d8 Fix typos and redundant code 2016-11-07 13:59:48 -05:00