Commit Graph

4042 Commits

Author SHA1 Message Date
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
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
bors 161f2623bd Auto merge of #37386 - johnthagen:Self-reference-example, r=GuillaumeGomez
Add example using Self to reference

When I first came across `Self` I had a hard time finding references to it in the docs (and it's also been asked about on [StackOverflow](http://stackoverflow.com/questions/32304595/whats-the-difference-between-self-and-self).

I hope this example provides someone who comes across it for the first time a little more help.  If there is a better way to show an example actually using `Self`, I'm happy to modify this.  It was just the simplest place to start I could see.
2016-11-06 02:28:58 -08:00
johnthagen 434c314405 Use From trait as an example usage of Self. 2016-11-05 18:21:17 -04:00
Alex Crichton c0bc35a364 Rollup merge of #37255 - mbrubeck:doc-edit, r=steveklabnik
Fix some mistakes in HRTB docs

The example code for higher-ranked trait bounds on closures had an unnecessary `mut` which was confusing, and the text referred to an mutable reference which does not exist in the code (and isn't needed).  Removed the `mut`s and fixed the text to better describe the actual error for the failing example.

Thanks to csd_ on IRC for pointing out these problems!

r? @steveklabnik
2016-11-04 16:49:28 -07:00
Vadim Petrochenkov 74bb594563 Stabilize .. in tuple (struct) patterns 2016-11-03 01:38:15 +03:00
Guillaume Gomez f5c192a4b7 Rollup merge of #37495 - buntine:master, r=steveklabnik
Commented out final 'main' function in order to fit within pattern of…

… other examples and prevent incorrect indentation
2016-11-01 16:15:52 +01:00
Guillaume Gomez d2f5d26a71 Rollup merge of #37485 - xfix:patch-2, r=steveklabnik
Don't mention "*" dependency version in guessing game example

It's a bad practice as far [RFC 1241](https://github.com/rust-lang/rfcs/blob/master/text/1241-no-wildcard-deps.md) is concerned, and introducing it in early tutorial may as well make it feel legitimate.
2016-11-01 16:15:52 +01:00
Bunts Thy Unholy 8483732c9a Removed commented main functions entirely. This fits in with other examples in the Closures section 2016-10-31 23:41:38 +11:00
Bunts Thy Unholy 32fb2527d9 Commented out final 'main' function in order to fit within pattern of other examples and prevent incorrect indentation 2016-10-31 22:45:03 +11:00
Konrad Borowski 9cc98612d7 Don't mention "*" dependency version in guessing game example
It's a bad practice as far [RFC 1241] is concerned, and introducing it
in early tutorial may as well make it feel legitimate.

[RFC 1241]: https://github.com/rust-lang/rfcs/blob/master/text/1241-no-wildcard-deps.md
2016-10-30 15:24:13 +01:00
Pieter Frenssen 956d44fb17 Update "Testing" chapter for 1.12
I followed the "Testing" chapter using Rust 1.12.1 but there are some differences. By default the `tests` module is now also generated by `cargo new`, and the console output is updated.
2016-10-30 15:42:31 +02:00
bors 75a87c54d0 Auto merge of #37378 - petrochenkov:nopat, r=eddyb
Prohibit patterns in trait methods without bodies

They are not properly type checked
```rust
trait Tr {
    fn f(&a: u8); // <- This compiles
}
```
, mostly rejected by the parser already and generally don't make much sense.
This PR is kind of a missing part of https://github.com/rust-lang/rust/pull/35015.

Given the [statistics from crater](https://github.com/rust-lang/rust/pull/37378#issuecomment-256154994), the effect of this PR is mostly equivalent to improving `unused_mut` lint.

cc https://github.com/rust-lang/rust/issues/35078#issuecomment-255707355 https://github.com/rust-lang/rust/pull/35015 https://github.com/rust-lang/rfcs/pull/1685 https://github.com/rust-lang/rust/issues/35203
r? @eddyb
2016-10-29 05:41:05 -07:00
Federico Mena Quintero 9f8d4ee74d reference: Mention --crate-type=cdylib in the Linkage section 2016-10-27 20:23:23 -05:00
Vadim Petrochenkov 811a2b91de Prohibit patterns in trait methods without bodies 2016-10-26 20:55:16 +03:00
Zoffix Znet 22ce98d0e7 Fix typo 2016-10-25 10:03:55 -04:00
Jonathan Turner 91c7a8270b Rollup merge of #37228 - loggerhead:patch-1, r=steveklabnik
Fix a error of 'book/deref-coercions.html'

The original sentence is:

> This example has two conversions: `Rc<String>` to `String` and then `String` to `&str`.

But it should be

> This example has two conversions: `Rc<String>` to `String` and then `String` to `str`.

or

> This example has two conversions: `&Rc<String>` to `&String` and then `&String` to `&str`.

I think the latter is more clearly.

r? @steveklabnik
2016-10-24 15:41:28 -07:00
Vangelis Katsikaros cf0fc72a3e TRPL: guessing game: minor clarification 2016-10-20 18:00:12 +03:00
Paul Osborne d79ec7e310 Fix grammatical errors in tests directory docs 2016-10-19 13:39:27 -05:00
Matt Brubeck f89ba5da4a Fix some mistakes in HRTB docs
The example code for higher-ranked trait bounds on closures had an
unnecessary `mut` which was confusing, and the text referred to an
mutable reference which does not exist in the code (and isn't needed).
Removed the `mut`s and fixed the text to better describe the actual
error for the failing example.
2016-10-18 10:56:12 -07:00
Guillaume Gomez 9569ea0d2f Rollup merge of #37194 - johnthagen:fix-const-static-header, r=bluss
Remove un-rendered ticks from "const and static" doc title

Related to #37116 and #37119.

Ticks in the titles are not correctly rendered

![const-static-render](https://cloud.githubusercontent.com/assets/10340167/19412643/63e385a2-92e8-11e6-81f1-16802f803aad.png)
2016-10-17 23:07:53 +02:00
loggerhead 0d3bdc6c3e Fix a error of 'book/deref-coercions.html'
The original sentence is:

> This example has two conversions: `Rc<String>` to `String` and then `String` to `&str`. 

But it should be

> This example has two conversions: `Rc<String>` to `String` and then `String` to `str`. 

or 

> This example has two conversions: `&Rc<String>` to `&String` and then `&String` to `&str`. 

I think the latter is more clearly.
2016-10-17 11:16:36 +08:00
johnthagen d001e8ad17 Remove un-rendered ticks from title. 2016-10-15 15:00:37 -04:00
Oliver Middleton 0b2746c8db rustdoc: Improve playground run buttons
The main change is to stop using javascript to generate the URLs and use
rustdoc instead.

This also adds run buttons to the error index examples.
2016-10-15 18:32:03 +01:00
Jonathan Turner 6822769263 Rollup merge of #37119 - durka:patch-31, r=steveklabnik
book: remove backticks in Type Aliases header

Fix #37116.
2016-10-14 12:07:08 -07:00
Jonathan Turner 71a183f8e9 Rollup merge of #36755 - Rantanen:master, r=GuillaumeGomez
Explain motivation behind lifetimes

Start the lifetime section with an explanation of the issues that lack of explicit lifetimes cause and how the explicit lifetimes solve these.

----------------

I had really hard time figuring out why I would need to care about the explicit reference lifetimes when going through the book at first. With strong background in C++, I'm familiar with the dangling reference problem - but given the section seems to focus more on the lifetime syntax and various ways to define lifetimes on functions and structs, I was unable to understand how they are used to solve the reference problem.

This PR is an attempt at getting the reader to understand what the explicit lifetimes are used for and why they are an awesome thing instead of a bit of syntax that just has to be written.

It's been less than a week that I've been diving into Rust so I'm far from certain about the terminology and technical correctness. I tried mimicking the existing terminology from the lifetimes section, but still no promises on getting it right.
2016-10-14 12:07:07 -07:00
Mikko Rantanen cb90723f90 Explain motivation behind lifetimes
Start the lifetime section with an explanation of the issues that
lack of explicit lifetimes cause and how lifetimes alleviate these.
2016-10-13 01:37:13 +03:00
Alex Crichton 9d70ff384f Rollup merge of #36995 - nrc:stable, r=@nikomatsakis
stabilise ?, attributes on stmts, deprecate Reflect

r? @nikomatsakis
2016-10-12 14:07:55 -07:00
Alex Burka 1eb36b80a4 book: remove backticks in Type Aliases header
Fix #37116.
2016-10-12 13:44:08 -04:00
Nick Cameron a94f5934cd Stabilise attributes on statements.
Note that attributes on expressions are still unstable and are behind the `stmt_expr_attributes` flag.

cc [Tracking issue](https://github.com/rust-lang/rust/issues/15701)
2016-10-12 08:40:22 +13:00
Guillaume Gomez 97e9eac8bf Rollup merge of #36997 - KillTheMule:patch-1, r=steveklabnik
Book: Be very explicit of lifetimes being descriptive

... not prescriptive. Pointed out in https://users.rust-lang.org/t/what-if-i-get-lifetimes-wrong/7535/4, which was a revelation to me and made me think this should be more clear in the book. I'm not sure if I got this entirely right or if the wording is good, but I figured a PR is more helpful than a simple issue.

r? @steveklabnik

Small Note: There's also https://github.com/rust-lang/book, should I have sent the PR there? It doesn't coincide with the online book though, so I figured it's better of here.
2016-10-11 17:51:26 +02:00
Guillaume Gomez 3e6307644a Rollup merge of #37008 - tshepang:quotes, r=steveklabnik
reference: use ticks instead of quotes
2016-10-07 11:45:05 +02:00
Guillaume Gomez bf41e9fee2 Rollup merge of #36929 - angelsl:issue-36683, r=steveklabnik
Reference: Mention `move` keyword for lambdas

From issue #36683
2016-10-07 11:45:04 +02:00
KillTheMule 0d0cdb77df Wrap & improve 2016-10-07 08:48:19 +02:00
Tshepang Lekhonkhobe 13f9dae8e9 reference: use ticks instead of quotes 2016-10-06 22:29:05 +02:00
Jonathan Turner 534a2b5b3b Rollup merge of #36957 - cynicaldevil:docs, r=frewsxcv
Minor modifications in concurrency section of the Rust book

Fixes #36939
r? @steveklabnik
2016-10-06 08:35:42 -07:00
KillTheMule 2a0bd6db85 Typos 2016-10-06 11:53:53 +02:00
KillTheMule a542302393 Another shot at clarity 2016-10-06 11:52:30 +02:00
KillTheMule 7f02eb387d Distinguish lifetimes and their annotations
Also, emphasize differently.
2016-10-06 11:15:47 +02:00
KillTheMule 2130637301 Book: Be very explicit of lifetimes being descriptive
... no prescriptive. Pointed out in https://users.rust-lang.org/t/what-if-i-get-lifetimes-wrong/7535/4, which was a revelation to me and made me think this should be more clear in the book.
2016-10-06 10:47:55 +02:00
Nikhil Shagrithaya 335d393114 Minor modifications in concurrency section of the Rust book 2016-10-04 22:09:29 +00:00
angelsl 58190ccb63 reference: mention move keyword for lambdas 2016-10-05 00:59:13 +08:00
Philip Davis bcac486117 Avoid introducing run twice
As it stands, getting-started and guessing-game both introduce `run` as
a new command. The second should probably make it clear that the reader
has seen it before :)
2016-10-02 15:33:41 -07:00
Steve Klabnik af1df9880f Rollup merge of #36860 - wesleywiser:patch-2, r=Manishearth
Add `Send` and `Sync` traits to the reference

Fixes #36859
2016-09-30 13:44:48 -04:00
Steve Klabnik 431c037b94 Rollup merge of #36711 - pcn:patch-1, r=steveklabnik
Suggesting a change to a comment that puzzled me

While reading this, the comment made it difficult for me to simply absorb the concept.  It interrupted my reading flow, and I think this expresses the same meaning, but reads a bit better.  It's trivial, but makes it easier for me to move on to the next line.
2016-09-30 13:44:46 -04:00
Wesley Wiser a5244dd66c Add Send and Sync traits to the reference
Fixes #36859
2016-09-30 09:56:58 -04:00
Jonathan Turner 83c54dc971 Rollup merge of #35286 - dns2utf8:doc_never_expression, r=nikomatsakis
Add docs for "!" Never type (rfc 1216)

Pull Request: https://github.com/rust-lang/rfcs/pull/1216
Tracking Issue: #35121
2016-09-28 20:21:50 -07:00
Jonathan Turner f7f1903b89 Rollup merge of #36769 - nathanmusoke:master, r=apasel422
doc: Fix minor typo in book/variable-bindings.md

r? @steveklabnik
2016-09-28 10:33:57 -07:00
Paulo Matos cb3b03c2a9 Improve documention troubleshooting missing linker. Fix #32208. 2016-09-27 16:45:36 -04:00
Nathan Musoke 73e5a98e71 doc: Fix minor typo in book/variable-bindings.md 2016-09-27 23:20:50 +13:00