Commit Graph

3839 Commits

Author SHA1 Message Date
Steve Klabnik
bf9610ddbb Rollup merge of #32103 - timmontague:patch-1, r=alexcrichton
Fixed link in ownership documentation

Changed "[vector]" to a link to the vector documentation.
2016-03-08 21:44:11 +03:00
Steve Klabnik
e35e5c434b Rollup merge of #32092 - bluss:operator-overload, r=steveklabnik
Update syntax index with OpAssign traits

book: Update syntax index with OpAssign traits

The traits are stable from Rust 1.8.
2016-03-08 21:44:11 +03:00
Steve Klabnik
86fb351059 Rollup merge of #32083 - nodakai:reference-scoped-enum-alias, r=nikomatsakis
reference.md: clarify the limitation of type alias on an enum

Tentatively define the current behavior as the specification.

Cf. rust-lang/rust#26264, rust-lang/rust#28556, rust-lang/rust#30936
2016-03-08 21:44:11 +03:00
Steve Klabnik
be506b256f Rollup merge of #31772 - nodakai:patch-1, r=steveklabnik
Clarify the semantics of enum discriminants

cf. https://doc.rust-lang.org/error-index.html#E0082

> The default type for enum discriminants is isize, but it can be adjusted by adding the repr attribute to the enum declaration.

It would be great if anyone could check my English.
2016-03-08 21:44:10 +03:00
Pyfisch
d7e406eab8 Remove final note from testing chapter.
The information that documentation tests cannot be run in binary crates is already given at the beginning of the section.
2016-03-08 19:33:27 +01:00
Tang Chenglong
dc829e2b93 Update a spelling inconsistency
L26: "zero cost" -> "zero-cost"
2016-03-08 13:42:05 +08:00
NODA, Kai
790178f6e5
reference.md: clarify the limitation of type alias on an enum
Cf. rust-lang/rust#26264

Signed-off-by: NODA, Kai <nodakai@gmail.com>
2016-03-08 08:46:49 +08:00
Tim Montague
150b1c9217 Fixed link
Changed "[vector]" to a link to the vector documentation.
2016-03-07 10:30:25 -08:00
Ulrik Sverdrup
63933375e8 book: Update syntax index with OpAssign traits 2016-03-07 05:17:27 +01:00
NODA, Kai
559683cded
reference.md: clarify negation.
Signed-off-by: NODA, Kai <nodakai@gmail.com>
2016-03-07 04:42:14 +08:00
Kai Noda
969d027e35
Clarify the semantics of enum discriminants
cf. https://doc.rust-lang.org/error-index.html#E0082
2016-03-07 02:45:10 +08:00
bors
8484831d29 Auto merge of #30884 - durka:inclusive-ranges, r=aturon
This PR implements [RFC 1192](https://github.com/rust-lang/rfcs/blob/master/text/1192-inclusive-ranges.md), which is triple-dot syntax for inclusive range expressions. The new stuff is behind two feature gates (one for the syntax and one for the std::ops types). This replaces the deprecated functionality in std::iter. Along the way I simplified the desugaring for all ranges.

This is my first contribution to rust which changes more than one character outside of a test or comment, so please review carefully! Some of the individual commit messages have more of my notes. Also thanks for putting up with my dumb questions in #rust-internals.

- For implementing `std::ops::RangeInclusive`, I took @Stebalien's suggestion from https://github.com/rust-lang/rfcs/pull/1192#issuecomment-137864421. It seemed to me to make the implementation easier and increase type safety. If that stands, the RFC should be amended to avoid confusion.
- I also kind of like @glaebhoerl's [idea](https://github.com/rust-lang/rfcs/pull/1254#issuecomment-147815299), which is unified inclusive/exclusive range syntax something like `x>..=y`. We can experiment with this while everything is behind a feature gate.
- There are a couple of FIXMEs left (see the last commit). I didn't know what to do about `RangeArgument` and I haven't added `Index` impls yet. Those should be discussed/finished before merging.

cc @Gankro since you [complained](https://www.reddit.com/r/rust/comments/3xkfro/what_happened_to_inclusive_ranges/cy5j0yq)
cc #27777 #30877 rust-lang/rust#1192 rust-lang/rfcs#1254
relevant to #28237 (tracking issue)
2016-03-06 07:16:41 +00:00
Steve Klabnik
55bc488db4 Rollup merge of #32002 - srinivasreddy:vector_doc, r=Manishearth
Issue here : https://github.com/rust-lang/rust/issues/31991
2016-03-04 14:17:28 -05:00
srinivasreddy
d2df5514c0 added ignore 2016-03-03 21:54:21 +05:30
srinivasreddy
2dc723de9a made print message similar across two loops 2016-03-02 20:42:26 +05:30
srinivasreddy
a3c9afa841 addressed review comments - grammar corrections, space additions 2016-03-02 20:35:30 +05:30
srinivasreddy
9bf73d24d0 Explained the difference between ownership iteration and reference iteration 2016-03-02 09:36:30 +05:30
Evan
cf01fb6836 Make book ordering more natural
Vectors come up in sections dedicated to ownership with the assumption that we know something about it but we haven't seen it yet. On the other hand, you need not know anything about ownership or lifetimes to understand the basics of vectors covered in the vector section of the book. Additionally, by moving it where it is there is a natural progression from loops to an iterative type which discusses for loops. This kind of interaction is generally better for learning.

I would like to have moved the struct section as well but I'm less confident about how to handle it since the ownership sections discuss structs and the structs section talks about mutable borrow.
2016-03-01 19:50:11 -05:00
Steve Klabnik
0ee1b99288 Rollup merge of #31987 - gcatlin:patch-1, r=steveklabnik
r? @steveklabnik
2016-03-01 13:39:42 -05:00
Steve Klabnik
c98c1b777f Rollup merge of #31984 - xaocon:master, r=steveklabnik
Had a discussion at https://www.reddit.com/r/rust/comments/488mjv/borrowing_or_returning_ownership/ about how an example could be worded more clearly and tried to take my recommendation and expand upon it with further information provided in the post.
2016-03-01 13:39:42 -05:00
Geoff Catlin
dcb92abbe1 grammar: 'fewer' instead of 'less' 2016-03-01 08:42:34 -05:00
bors
a93bb135c8 Auto merge of #31713 - alexcrichton:rustbuild-docs, r=brson
This commit implements documentation generation of the nomicon, the book, the
style guide, and the standalone docs. New steps were added for each one as well
as appropriate makefile targets for each one as well.
2016-03-01 04:44:56 +00:00
Evan
ae9121bb6d Clarified the details of a borrowing example.
Had a discussion at https://www.reddit.com/r/rust/comments/488mjv/borrowing_or_returning_ownership/ about how an example could be worded more clearly and tried to take my recommendation and expand upon it with further information provided in the post.
2016-02-29 23:22:30 -05:00
Alex Crichton
b643782a10 std: Stabilize APIs for the 1.8 release
This commit is the result of the FCPs ending for the 1.8 release cycle for both
the libs and the lang suteams. The full list of changes are:

Stabilized

* `braced_empty_structs`
* `augmented_assignments`
* `str::encode_utf16` - renamed from `utf16_units`
* `str::EncodeUtf16` - renamed from `Utf16Units`
* `Ref::map`
* `RefMut::map`
* `ptr::drop_in_place`
* `time::Instant`
* `time::SystemTime`
* `{Instant,SystemTime}::now`
* `{Instant,SystemTime}::duration_since` - renamed from `duration_from_earlier`
* `{Instant,SystemTime}::elapsed`
* Various `Add`/`Sub` impls for `Time` and `SystemTime`
* `SystemTimeError`
* `SystemTimeError::duration`
* Various impls for `SystemTimeError`
* `UNIX_EPOCH`
* `ops::{Add,Sub,Mul,Div,Rem,BitAnd,BitOr,BitXor,Shl,Shr}Assign`

Deprecated

* Scoped TLS (the `scoped_thread_local!` macro)
* `Ref::filter_map`
* `RefMut::filter_map`
* `RwLockReadGuard::map`
* `RwLockWriteGuard::map`
* `Condvar::wait_timeout_with`

Closes #27714
Closes #27715
Closes #27746
Closes #27748
Closes #27908
Closes #29866
2016-02-29 09:05:33 -08:00
bors
504ca6f422 Auto merge of #31958 - teoryn:patch-3, r=nagisa 2016-02-29 11:12:15 +00:00
bors
776a0f2cee Auto merge of #31960 - aidanhs:aphs-tweak-aliasing-docs, r=Manishearth
See https://doc.rust-lang.org/book/unsafe.html#what-does-safe-mean for the book version of these points which already contain the T.
2016-02-29 05:03:32 +00:00
Aidan Hobson Sayers
246401367d Add the 'T' present in the rust book 2016-02-29 02:50:18 +00:00
Kevin Stock
7f59e069e8 Fix typo (an Result) 2016-02-28 20:48:17 -05:00
Kevin Stock
251f41905a Fix typo (!#[no_std]) 2016-02-28 20:46:56 -05:00
bors
d56677a187 Auto merge of #31931 - Luke-Nukem:master, r=steveklabnik
Refinement of paragraph referenced by [this issue](https://github.com/rust-lang/rust/issues/31927).

The paragraph in question had been adjusted already, but I've made some further clarifications which should help with readability and not leave the reader any `dangling pointers`.
2016-02-27 20:26:59 +00:00
Kevin Stock
9eda98a587 Resolve ambiguous documentation
See http://www.ietf.org/rfc/rfc2119.txt
2016-02-27 08:26:42 -05:00
Alex Burka
15a8a296b7 document inclusive range syntax 2016-02-27 02:01:41 -05:00
Manish Goregaokar
35b30424df Rollup merge of #31909 - benaryorg:patch-2, r=Manishearth
`continue` expression's description mentioned `break` instead of `continue`
2016-02-27 10:52:00 +05:30
Luke Jones
edd5f3328b Refinement of paragraph referenced by [this
issue](https://github.com/rust-lang/rust/issues/31927)
2016-02-27 14:41:38 +13:00
Manish Goregaokar
903798dce0 Rollup merge of #31883 - birkenfeld:doc-null-escape, r=bluss
It appears in the examples, but is not covered by any of the cases
in the prose description.
2016-02-26 17:03:40 +05:30
Katze
7a549598bb
documentation fix
`continue` expression's description mentioned `break` instead of `continue`

Signed-off-by: benaryorg <binary@benary.org>
2016-02-26 09:58:01 +01:00
Manish Goregaokar
4cfa2ee2f1 Rollup merge of #31827 - teoryn:patch-1, r=brson 2016-02-25 15:06:06 +05:30
Georg Brandl
d472b69da1 Document the null-char/null-byte escape in the reference
It appears in the examples, but is not covered by any of the cases
in the prose description.
2016-02-25 08:30:42 +01:00
Manish Goregaokar
b660ca59ff Rollup merge of #31870 - ivan:filter-explain, r=steveklabnik
As a Rust newbie, I found the book's explanation for why the `filter` closure gets a reference very confusing, and tried to figure out why `filter` is somehow less consumptive than `map` -- but it isn't; that's controlled by `iter`/`into_iter`.  I flailed around for a while until @habnabit explained it to me, and in retrospect it is quite obvious :-)
2016-02-25 04:21:11 +05:30
Manish Goregaokar
a834cd1b70 Rollup merge of #31868 - fhahn:capitalize-Rust, r=steveklabnik 2016-02-25 04:21:11 +05:30
Manish Goregaokar
f28677506c Rollup merge of #31863 - matklad:clarify-reference, r=steveklabnik
Reference implied that use declarations may appear *only* at the top of blocks and modules, but it is not the case, and the following is valid:

```Rust
fn foo() {
    let x = 92;
    use baz::bar;
}
```

r? @steveklabnik
2016-02-25 04:21:11 +05:30
Manish Goregaokar
e928297a3b Rollup merge of #31677 - ivan:doc-vtable, r=steveklabnik
I sure hope this fix is right

cc @steveklabnik
2016-02-25 04:21:10 +05:30
Ivan Kozik
7042c8ef8d book: Explain better why the filter closure gets a reference 2016-02-24 20:09:01 +00:00
Florian Hahn
145190bd2a Capitalize some occurences of Rust in documentation 2016-02-24 19:56:28 +01:00
Aleksey Kladov
397ab315e7 reference: clarify use declaration location 2016-02-24 19:13:31 +03:00
Kevin Stock
b49ce1a599 Fix warn(unused_mut) in example 2016-02-22 22:37:02 -05:00
Chad Shaffer
6e985934bd Fix number of lines and methods in guessing game 2016-02-20 17:00:54 -08:00
Ivan Kozik
58f0d72d90 reference: vtable entries: copy @nikomatsakis's wording 2016-02-18 19:17:09 +00:00
Steve Klabnik
9f0e39ba16 Rollup merge of #31565 - SDX2000:docfixes4, r=steveklabnik
See title and diff for more information.
2016-02-17 18:14:35 -05:00
Sandeep Datta
1536195ce6 Made v2 mutable so that we can actually truncate it. 2016-02-17 20:47:24 +05:30
Alex Crichton
848e78550c rustbuild: Add rustbook/standalone doc support
This commit implements documentation generation of the nomicon, the book, the
style guide, and the standalone docs. New steps were added for each one as well
as appropriate makefile targets for each one as well.
2016-02-16 10:39:55 -08:00
Dirk Gadsden
f2bea1cb70 Clarify contiguous memory array structure of vectors in documentation
Closes #31554.

Contributes to #29380.
2016-02-16 04:10:30 +05:30
Ivan Kozik
347a257a47 reference: vtable entries are resolved at runtime 2016-02-15 15:53:55 +00:00
Steve Klabnik
fb09a441c6 Rollup merge of #31658 - felgru:master, r=steveklabnik
In the Rust code above this block of compiler output, the function is called print_sum, so use the same function name in the error message.
2016-02-14 18:02:32 -05:00
Felix Gruber
3eebec697c doc: fix compiler output
In the Rust code above, the function is called print_sum, so use the
same function name in the error message.
2016-02-14 20:50:12 +01:00
fbergr
310ab5ea74 doc: Remove trailing whitespace 2016-02-14 14:31:20 +02:00
Manish Goregaokar
b34e625faf Rollup merge of #31638 - rkruppe:rm-tex, r=alexcrichton
This file is unused since #27789
2016-02-14 05:06:36 +05:30
Manish Goregaokar
34d95f498c Rollup merge of #31612 - raindev:grammar, r=steveklabnik
I feel sorry for bothering you with such a literally one character changes. If it is counter productive feel free to point it out in the comments, that would be totally understandable. I could try to pack such a changes together in one PR to make them less distractive.

r? @steveklabnik
2016-02-14 05:06:35 +05:30
Manish Goregaokar
8873732585 Rollup merge of #31610 - Manishearth:doc-clarify-txrx, r=steveklabnik
Not everyone knows this convention. We could just rename the variables in the
example, but since this notation is commonly used it's a good opportunity to
introduce it.

r? @steveklabnik
2016-02-14 05:06:35 +05:30
Manish Goregaokar
1598995766 Rollup merge of #31563 - SDX2000:docfixes1, r=steveklabnik
This is a minor change. Please see title. IMO this is important since this is the first instance when we talk about allocating a vector. Not saying that it is allocated on the stack here leaves room for speculation and this might put off some people (they might not even read the later sections which go into more detail about this).
2016-02-14 05:06:33 +05:30
Robin Kruppe
3e34519141 Remove the last remaining .tex file 2016-02-13 20:27:57 +01:00
Sandeep Datta
37a952a672 Fixed build error as per steveklabnik's suggestion and expanded on the ills of doing out of bounds accesses. 2016-02-13 18:40:24 +05:30
Andrew Barchuk
eb0f9f81f0 Remove unnecessary article 2016-02-12 21:40:02 +02:00
Manish Goregaokar
9ec112749b Clarify what tx/rx mean in concurrency docs 2016-02-13 00:57:52 +05:30
Sandeep Datta
a6fedc85bf Minor change. 2016-02-11 19:55:45 +05:30
Sandeep Datta
a8fd1bbd2f Minor change. 2016-02-11 19:44:33 +05:30
Sandeep Datta
50d179e062 Explained the data race with an example. 2016-02-11 19:40:19 +05:30
Sandeep Datta
62b3b40ade Clarified move semantics in "the details" section. 2016-02-11 12:30:53 +05:30
Sandeep Datta
8f61a4b34c Added a few words to indicate where the vector object is created. 2016-02-11 11:16:47 +05:30
Oliver Middleton
cff81d724f Fix documentation example in the book
The code sections shouldn't be inside a ```text block.
2016-02-10 17:19:27 +00:00
Steve Klabnik
6571ae28a8 Rollup merge of #31514 - cgar:spelling, r=alexcrichton 2016-02-09 16:58:59 -05:00
Carlos E. Garcia
02aa0aff2f Minor spelling fixes 2016-02-09 11:52:39 -05:00
Andrew Barchuk
422cf2d34a Clean up Error Handling case study examples
Remove unnecessary cloning and conversions. Expand tabs left in examples.
2016-02-07 23:08:46 +02:00
bors
5147c1f2c0 Auto merge of #31307 - nagisa:mir-drop-terminator, r=nikomatsakis
The scope of these refactorings is a little bit bigger than the title implies. See each commit for details.

I’m submitting this for nitpicking now (the first 4 commits), because I feel the basic idea/implementation is sound and should work. I will eventually expand this PR to cover the translator changes necessary for all this to work (+ tests), ~~and perhaps implement a dynamic dropping scheme while I’m at it as well.~~

r? @nikomatsakis
2016-02-06 01:24:22 +00:00
Steve Klabnik
09e62bac0f Rollup merge of #31413 - tshepang:improve, r=steveklabnik 2016-02-04 16:39:06 -05:00
Steve Klabnik
fc6e7698c1 Rollup merge of #31412 - tshepang:add-trailing-commas, r=steveklabnik 2016-02-04 16:39:05 -05:00
Steve Klabnik
cd418ba09b Rollup merge of #31411 - tshepang:idiom, r=steveklabnik 2016-02-04 16:39:05 -05:00
Tshepang Lekhonkhobe
a2f22a00ec reference: add trailing commas 2016-02-04 22:44:32 +02:00
Tshepang Lekhonkhobe
69b1d75b76 reference: make the line a little more readable 2016-02-04 22:39:15 +02:00
Tshepang Lekhonkhobe
85b19d8aa3 reference: explicit return at function end is not idiomatic 2016-02-04 22:32:53 +02:00
Simonas Kazlauskas
432460a6fc Synthesize calls to box_free language item
This gets rid of Drop(Free, _) MIR construct by synthesizing a call to language item which
takes care of dropping instead.
2016-02-04 15:56:01 +02:00
Matt Brubeck
7b3ea40500 Remove redundant semicolon from "block_expr" in grammar reference
"stmt" already includes the terminating semicolon.
2016-02-03 13:43:52 -08:00
bors
a9922419cf Auto merge of #31370 - Manishearth:rollup, r=Manishearth
- Successful merges: #27499, #31220, #31329, #31332, #31347, #31351, #31352, #31366
- Failed merges:
2016-02-03 00:58:37 +00:00
Manish Goregaokar
1a21dabf27 Rollup merge of #31366 - paulsmith:patch-1, r=steveklabnik
The context of the link is `Result` but it points to the docs on `Option`'s `expect`.
2016-02-03 02:54:25 +05:30
Manish Goregaokar
86650211a9 Rollup merge of #31352 - steveklabnik:gh31154, r=nikomatsakis
Fixes #31154
2016-02-03 02:54:25 +05:30
bors
2dc132e4d2 Auto merge of #31312 - alexcrichton:no-le-in-powerpc64le, r=alexcrichton
Currently the `mipsel-unknown-linux-gnu` target doesn't actually set the
`target_arch` value to `mipsel` but it rather uses `mips`. Alternatively the
`powerpc64le` target does indeed set the `target_arch` as `powerpc64le`,
causing a bit of inconsistency between theset two.

As these are just the same instance of one instruction set, let's use
`target_endian` to switch between them and only set the `target_arch` as one
value. This should cut down on the number of `#[cfg]` annotations necessary and
all around be a little more ergonomic.
2016-02-02 17:11:48 +00:00
Steve Klabnik
6c907212b4 Add note about temporaries 2016-02-02 11:15:45 -05:00
Paul Smith
b2e887f0aa Fix reference to expect
The context of the link is `Result` but it points to the docs on `Option`'s `expect`.
2016-02-02 08:47:23 -06:00
Steve Klabnik
c3f6122215 Rollup merge of #31348 - alexcrichton:shuffle-tiers, r=steveklabnik
Some other shufflings as well:

* Three powerpc triples for Linux have been added recently
* An armv7 linux triple was added recently
* The 64-bit Solaris triple is now mentioned in tier 3

We are currently now also building nightlies for iOS, powerpc triples, and
armv7, but there hasn't been much vetting of the triples themselves so I've left
them in tier 3 for now.
2016-02-02 00:32:20 -05:00
Steve Klabnik
5f0d8ea1bd Rollup merge of #31345 - kamalmarhubi:book-docs-special-section-errors, r=steveklabnik
This matches the usage in the standard library's documentation.
2016-02-02 00:32:19 -05:00
Steve Klabnik
9eb417b17f Rollup merge of #31344 - steveklabnik:gh31334, r=alexcrichton
Fixes #31334

This is just a quicker fix for this issue; since I'm working on the next draft of the book, I don't want to put a huuuge amount of work into improving it here.
2016-02-02 00:32:19 -05:00
Steve Klabnik
0b8c71379c Rollup merge of #31340 - pra85:patch-1, r=alexcrichton
Spelling mistake -
`familliar` > `familiar`
2016-02-02 00:32:19 -05:00
Steve Klabnik
78afc78d9d Rollup merge of #30971 - SDX2000:docfixes, r=steveklabnik
Updated documentation to clarify the difference between `and_then` and `map`. This also explains why we need `and_then` in addition to `map`. Please look at the diff for more information.

r?  @alexcrichton
2016-02-02 00:32:17 -05:00
Alex Crichton
8f803c2026 Remove "powerpc64le" and "mipsel" target_arch
Currently the `mipsel-unknown-linux-gnu` target doesn't actually set the
`target_arch` value to `mipsel` but it rather uses `mips`. Alternatively the
`powerpc64le` target does indeed set the `target_arch` as `powerpc64le`,
causing a bit of inconsistency between theset two.

As these are just the same instance of one instruction set, let's use
`target_endian` to switch between them and only set the `target_arch` as one
value. This should cut down on the number of `#[cfg]` annotations necessary and
all around be a little more ergonomic.
2016-02-01 20:39:07 -08:00
Steve Klabnik
dc3a39d807 Explain behavior of _
Fixes #31154
2016-02-01 18:49:47 -05:00
Alex Crichton
0574b395ef doc: Move 32-bit MSVC to a tier 1 platform
Some other shufflings as well:

* Three powerpc triples for Linux have been added recently
* An armv7 linux triple was added recently
* The 64-bit Solaris triple is now mentioned in tier 3

We are currently now also building nightlies for iOS, powerpc triples, and
armv7, but there hasn't been much vetting of the triples themselves so I've left
them in tier 3 for now.
2016-02-01 12:53:38 -08:00
Kamal Marhubi
49fe519791 book: Change "Failures" to "Errors" in doc special sections chapter
This matches the usage in the standard library's documentation.
2016-02-01 12:26:51 -05:00
Steve Klabnik
7df3bf1860 make this example more obvious
Fixes #31334
2016-02-01 12:19:33 -05:00
Prayag Verma
2043cd8623 Fix typo in doc/book/getting-started.md
Spelling mistake -
`familliar` > `familiar`
2016-02-01 12:15:33 +05:30
jocki84
46885ee084 Reword explanation of 'size' types.
Do not reference machine 'pointers' in explanation of 'size' types.
2016-01-30 17:43:03 +01:00
Manish Goregaokar
f66d3c5566 Rollup merge of #31296 - steveklabnik:gh31249, r=alexcrichton
Rustdoc will automatically wrap things in main, but this doesn't work
here.

Fixes #31249
2016-01-30 17:57:17 +05:30
Manish Goregaokar
cf0f7a30f4 Rollup merge of #31295 - steveklabnik:gh31266, r=alexcrichton
These are free functions in the text, but methods in the standard
library.

Fixes #31266
2016-01-30 17:57:17 +05:30
Manish Goregaokar
ee7670ef34 Rollup merge of #31294 - steveklabnik:gh31284, r=alexcrichton
This code was refactored, but the words were not

Fixes #31284
2016-01-30 17:57:17 +05:30
Sandeep Datta
0922d7e68f Ignoring demo code with compilation error. 2016-01-30 13:43:02 +05:30
Steve Klabnik
919ea47356 Add main() so that examples work
Rustdoc will automatically wrap things in main, but this doesn't work
here.

Fixes #31249
2016-01-29 17:53:35 -05:00
Steve Klabnik
a2c328661b Make note that this is different in std
These are free functions in the text, but methods in the standard
library.

Fixes #31266
2016-01-29 17:48:22 -05:00
Steve Klabnik
24c928b99a Fix number of methods in guessing game
This code was refactored, but the words were not

Fixes #31284
2016-01-29 17:45:05 -05:00
Manish Goregaokar
37316e8d05 Rollup merge of #31264 - est31:block_coment_parent, r=alexcrichton
Block comments don't have to be in the format `/*! ... !*/`
in order to be read as doc comments about the parent block.
The format `/*! ... */` is enough.
2016-01-29 20:19:39 +05:30
est31
205f836ab8 Fix reference info about parent doc block comments
Block comments don't have to be in the format `/*! ... !*/`
in order to be read as doc comments about the parent block.
The format `/*! ... */` is enough.
2016-01-28 18:39:39 +01:00
bors
035f4cca00 Auto merge of #31240 - durka:follow-set-docs, r=pnkfelix
Missed as part of #31152, but the list had other mistakes as well.

r? @pnkfelix
2016-01-28 07:06:29 +00:00
Manish Goregaokar
5e7dfa7094 Rollup merge of #31226 - steveklabnik:gh30954, r=Manishearth
Fixes #30954
2016-01-28 00:48:32 +05:30
Manish Goregaokar
d7c57e1fdd Rollup merge of #31222 - durka:patch-15, r=steveklabnik
r? @steveklabnik
2016-01-28 00:48:32 +05:30
Manish Goregaokar
3e56732322 Rollup merge of #31219 - mbrubeck:missing-docs, r=steveklabnik
The missing_docs lint only applies to public items in public modules, so this
example code did not actually generate any warnings or errors.
2016-01-28 00:48:32 +05:30
Manish Goregaokar
b29628ac91 Rollup merge of #30689 - Manishearth:lifetime-bound, r=steveklabnik
We should have stuff on this in the book somewhere too

r? @steveklabnik
2016-01-28 00:48:31 +05:30
Alex Burka
fd4d013a2c trpl: fix macro follow sets 2016-01-27 13:26:47 -05:00
Steve Klabnik
5c61be68d0 Mention that globs import public symbols
Fixes #30954
2016-01-26 17:47:01 -05:00
Alex Burka
2f633b2204 capitalization and associated types 2016-01-26 14:36:48 -05:00
Alex Burka
638555e64d book: cover UFCS in Syntax Index 2016-01-26 13:43:43 -05:00
Matt Brubeck
e23f8b095b Fix examples that use missing_docs lint
The missing_docs lint only applies to public items in public modules, so this
example code did not actually generate any warnings or errors.
2016-01-26 09:49:26 -08:00
Manish Goregaokar
486fd89b34 Rollup merge of #31199 - steveklabnik:gh31181, r=Manishearth
Fixes #31181
2016-01-26 13:11:58 +05:30
Manish Goregaokar
24931a32e8 Rollup merge of #31197 - apasel422:issue-31195, r=steveklabnik
Closes #31195

r? @steveklabnik
2016-01-26 13:11:57 +05:30
Steve Klabnik
6c56260b30 Mention the need for a linker
Fixes #31181
2016-01-25 22:26:56 -05:00
Andrew Paseltiner
b3ebe949e2 Fix typo in "Loops" section of the book
Closes #31195
2016-01-25 21:33:23 -05:00
Oliver Middleton
ace39cbc15 Replace link to learn-rust in the book
It was removed in #30595.
Also delete the old learn-rust.md.
2016-01-25 18:40:28 +00:00
Oliver Middleton
03681b16ce Fix link to hello-cargo in the book
It was moved in #29538.
2016-01-25 18:34:34 +00:00
Dirk Gadsden
a469cef1ab Clarify when Cargo.lock is created by cargo build in the book
Also remove a "finally" in the section about building for release
to make it feel a bit friendlier.
2016-01-23 23:39:38 -05:00
Steve Klabnik
4d99bad158 Rollup merge of #31145 - D101101:patch-1, r=steveklabnik
r? @steveklabnik
2016-01-23 09:38:44 -05:00
Steve Klabnik
fc8ef6cae7 Rollup merge of #31128 - kamalmarhubi:book-trait-impl-clarify, r=steveklabnik 2016-01-23 09:38:44 -05:00
Steve Klabnik
c9c754990e Rollup merge of #31113 - steveklabnik:master, r=alexcrichton
r? @alexcrichton
2016-01-23 09:38:43 -05:00
Steve Klabnik
9bc29a9908 Rollup merge of #31111 - apasel422:issue-31103, r=steveklabnik
Closes #31103

r? @steveklabnik
2016-01-23 09:38:43 -05:00
Steve Klabnik
b4311b70e1 Rollup merge of #31061 - brson:bib, r=steveklabnik 2016-01-23 09:38:42 -05:00
Steve Klabnik
b1e5af4872 Rollup merge of #31055 - steveklabnik:alt-tags, r=alexcrichton 2016-01-23 09:38:42 -05:00
Sergey Veselkov
6a6e9a987a Fix the missing line in the guessing-game.md
r? @steveklabnik
2016-01-23 12:19:11 +03:00
bors
228afd7251 Auto merge of #30807 - kolloch:patch-1, r=steveklabnik
When I read the book, the following sentence of the reference documentation helped me greatly to understand slices:

"Slices are a view into a block of memory represented as a pointer and a length."

In this commit, I tried to integrate the gist of that into the slice section inside of "primitive-types.md". I am not a native speaker, so feel very free to improve the wording.

r? @steveklabnik
2016-01-23 07:44:17 +00:00
Kamal Marhubi
a559577c2f Forward reference crates and modules chapter 2016-01-22 15:18:00 -05:00
Kamal Marhubi
9624b68207 book: Clarify that trait or type must be in same crate as impl 2016-01-22 14:37:37 -05:00
Steve Klabnik
c94b14ade4 update link to unwind in book 2016-01-22 09:50:43 -05:00
Andrew Paseltiner
48aa5ef16f Fix typo in "Getting Started" section of the book
Closes #31103
2016-01-22 08:59:05 -05:00
Brian Anderson
c158fd93b8 Add Alexis thesis to bibliography 2016-01-20 19:27:05 +00:00
Steve Klabnik
5763b86792 Add alt tags for logos 2016-01-20 11:53:20 -05:00
Sandeep Datta
5f20143ccf Fixed line wrapping. 2016-01-20 19:48:00 +05:30
Manish Goregaokar
49474313fd Rollup merge of #30988 - bluss:doc-space-t-bound, r=apasel422
Fix spacing style of `T: Bound` in docs

The space between `T` and `Bound` is the typical style used in code and
produced by rustdoc's rendering. Fixed first in Reflect's docs and then
I fixed all occurrences in docs I could find.
2016-01-19 04:08:59 +05:30
Ulrik Sverdrup
f4fac9b0fa Fix spacing style of T: Bound in docs
The space between `T` and `Bound` is the typical style used in code and
produced by rustdoc's rendering. Fixed first in Reflect's docs and then
I fixed all occurrences in docs I could find.
2016-01-17 23:44:33 +01:00
Stephen (Ziyun) Li
8a829704cb Fix C macro example 2016-01-17 14:56:23 -05:00
Manish Goregaokar
dbca989721 Rollup merge of #30952 - jonastepe:nomicon_vec_zst_code_fix, r=Gankro
* Moved semicolon to the right place in the `let` statement in the ZST section.
* Fixed the missing ZST additions for `RawValIter<T>` from this section in the final code section.
2016-01-17 17:25:48 +05:30
Sandeep Datta
25d068e36e Showed the difference between map and and_then with an example. 2016-01-17 14:08:01 +05:30
bors
077f4eeb84 Auto merge of #30567 - steffengy:master, r=alexcrichton
Add support to use functions exported using vectorcall.
This essentially only allows to pass a new LLVM calling convention
from rust to LLVM.

```rust
extern "vectorcall" fn abc(param: c_void);
```

references
----
http://llvm.org/docs/doxygen/html/CallingConv_8h_source.html
https://msdn.microsoft.com/en-us/library/dn375768.aspx
2016-01-16 23:30:30 +00:00
Jonas Tepe
5c62178658 Fixed indent from tabs to spaces 2016-01-16 20:51:55 +01:00
Jonas Tepe
9c5b296dd3 added zst iterator additions to final code 2016-01-16 13:13:44 +01:00
Jonas Tepe
b3f44c1335 Semicolon was at wrong place in let statement 2016-01-16 13:07:46 +01:00
Manish Goregaokar
d9d902ef99 Rollup merge of #30836 - Luke-Nukem:master, r=steveklabnik
Ref issue [30825](https://github.com/rust-lang/rust/issues/30825)

This commit should suffice to add a concise introduction to the concept of crates.
My only worry, is that it is maybe too concise; but, the book seems to be written with the understanding that the new Rust user is coming from another language, and so will understand what a Library or Code Package is.
2016-01-15 17:28:28 +05:30
Manish Goregaokar
7208d25003 Rollup merge of #30776 - antonblanchard:powerpc64_merge, r=alexcrichton
This adds support for big endian and little endian PowerPC64.
make check runs clean apart from one big endian backtrace issue.
2016-01-15 17:28:28 +05:30
Luke Jones
52786de3ed Clarify what a crate is, within the "Getting Started" chapter.
* ref: Issue #30825
Small punctuation change in "Crates and Modules".
2016-01-15 14:18:50 +13:00
Steve Klabnik
9b10d0e1e5 Rollup merge of #30911 - tshepang:missing-word, r=Manishearth
Also, whitespace fixes
2016-01-14 14:58:35 -05:00
Steve Klabnik
f1a0fd127a Rollup merge of #30903 - steveklabnik:no_std_stable, r=alexcrichton
This feature is partially stabilized, so describe each part in the appropriate place.

r? @alexcrichton @brson

It would be nice to backport this to beta, since this is the first release where this is true. I try really hard to not do doc backports, but this isn't very large, and might be worth making an exception, I dunno.
2016-01-14 14:58:34 -05:00
Steve Klabnik
e26279db48 Rollup merge of #30712 - LawrenceWoodman:patch-3, r=steveklabnik
This also repeats the case analysis used.
2016-01-14 14:58:34 -05:00
Tshepang Lekhonkhobe
049b9e4e80 doc: add missing word
Also, whitespace fixes
2016-01-14 20:56:38 +02:00
Steve Klabnik
0394418752 Move some #[no_std] info to stable book.
This feature is partially stabilized, so describe each part in the appropriate place.
2016-01-14 10:45:40 -05:00
Manish Goregaokar
9cb4350e63 Rollup merge of #30871 - oli-obk:fix/reference, r=steveklabnik
r? @steveklabnik
2016-01-14 19:12:28 +05:30
Manish Goregaokar
7893031d92 Rollup merge of #30869 - D101101:patch-3, r=huonw
r? @steveklabnik
2016-01-14 19:12:28 +05:30
Manish Goregaokar
07aaca3a07 Rollup merge of #30821 - steveklabnik:gh30819, r=nikomatsakis
Fixes #30819
2016-01-14 19:12:28 +05:30
Oliver 'ker' Schneider
3ae71b1b69 the reference was inferring values that didn't fit into their target type 2016-01-13 14:50:04 +01:00
Sergey Veselkov
b986698bc4 Fix typo in bibliography.md 2016-01-13 09:14:21 +03:00
Anton Blanchard
b372910476 Add powerpc64 and powerpc64le support
This adds support for big endian and little endian PowerPC64.
make check runs clean apart from one big endian backtrace issue.
2016-01-13 01:39:00 +00:00
Steffen
8cdad627ae add feature gate "abi_vectorcall" for the vectorcall calling convention 2016-01-11 23:45:33 +01:00
Steve Klabnik
eb2343f25b Be a bit more correct about segfault causality
Fixes #30819
2016-01-11 14:19:51 -05:00
Simonas Kazlauskas
8dd7eabad7 Rollup merge of #30814 - brson:docidx, r=steveklabnik
These are the same descriptions as on the website.

re https://www.reddit.com/r/rust/comments/409nlo/i_just_noticed_the_docs_nightly_all_docs_got_more/cytc4ab

r? @steveklabnik
2016-01-11 21:17:54 +02:00
Simonas Kazlauskas
0b8370c397 Rollup merge of #30812 - D101101:patch-2, r=steveklabnik
r? @steveklabnik
2016-01-11 21:17:53 +02:00
Brian Anderson
bcf20a7cb1 doc: Add descriptions to links in the index
These are the same descriptions as on the website.
2016-01-10 22:30:09 +00:00
Sergey Veselkov
8cc149dbc1 Fix link in getting-started.md 2016-01-11 00:13:54 +03:00
Peter Kolloch
235bdf1f3b Book on slices: Mention internal representation
When I read the book, the following sentence of the reference documentation helped me greatly to understand slices:

"Slices are a view into a block of memory represented as a pointer and a length."

In this commit, I tried to integrate the gist of that into the slice section inside of "primitive-types.md".
2016-01-10 10:54:25 +01:00
Steve Klabnik
b2e670a7f3 Rollup merge of #30789 - D101101:patch-1, r=steveklabnik 2016-01-09 14:04:20 -05:00
Steve Klabnik
6ba952020f Remove many instances of 'just'
Doing so is considered weaker writing. Thanks @Charlotteis!

Fixes #28810
2016-01-09 14:03:58 -05:00
Sergey Veselkov
31e39cd05c Remove unused link from enums.md 2016-01-09 12:17:44 +03:00
Steve Klabnik
2908385fc7 Rollup merge of #30760 - jonastepe:nomicon_vec_insert_remove_len, r=apasel422
len needs to be prefixed by self for this to work. That is something which trips me up all the time. It's reassuring to see that happening to seasoned Rust programmers.
2016-01-08 13:02:31 -05:00
Steve Klabnik
0b5f7946d8 Rollup merge of #30755 - datagrok:master, r=steveklabnik
I'm working my way through TRPL beginning at "Syntax and Semantics" as was recommended in a previous version.

I'm expecting the chapter to incrementally build up my knowledge of the language section by section, assuming no prior Rust experience. So it was a bit of a speed-bump to encounter references and the vector type in a code example long before they had been defined and explained.

Another commit in this PR tries to make consistent what is a "chapter" of TRPL versus a "section." Just a nit-pick, but not thinking about that stuff keeps my focus on the important material.

My background: Python programmer since ~2000, with moderate exposure to C, C++, assembly, operating systems, and system architecture in university several years ago.

For your kind consideration, feel welcome to use or drop or rework any part of this.
2016-01-08 13:02:31 -05:00
Michael F. Lamb
fcc356373b Remove extraneous [], replace accidental removed link to heap section 2016-01-07 11:44:03 -08:00
jonastepe
a0731008fd len needs to be prefixed by self for this to work. The final code in this section of the book is correct. 2016-01-07 12:13:22 +01:00
Michael F. Lamb
3a6dbb30a2 Be consistent about what is a "chapter" versus a "section" 2016-01-06 16:06:55 -08:00
Michael F. Lamb
936678adb1 Link to section on references when we use the term prior to defining it 2016-01-06 16:06:55 -08:00
Michael F. Lamb
3557e6941d Link to references section when they first appear
In a straight-through read of "Syntax and Semantics," the concept of a
"reference" is used here before it is explained. Mention that and link to
the section explaining references.
2016-01-06 16:06:55 -08:00
Michael F. Lamb
e22ceea1a7 Explain surprising new syntax appearing in example code
In a straight-through read of "Syntax and Semantics," the first time we
meet a generic, and the first time we meet a vector, is when a Vec<T> shows
up in this example. I'm not sure that I could argue that the whole section
should appear later in the book than the ones on vectors and generics, so
instead just give the reader a brief introduction to both and a promise to
follow up later.
2016-01-06 16:06:55 -08:00
Steve Klabnik
e78de13783 Rollup merge of #30735 - jonastepe:nomicon_vec_dealloc_pointer_type, r=steveklabnik
heap::deallocate expects a *mut u8, but here a *mut T is given as the type of the argument. This would not compile. The final code is correct, however.
2016-01-06 18:31:58 -05:00
Steve Klabnik
fcb1ccf8c0 Rollup merge of #30727 - tbu-:pr_doc_escaped_newline, r=steveklabnik
Rust differs in that behavior from C: In C, the newline escapes are resolved
before anything else, and in Rust this depends on whether the backslash is
escaped itself.

A difference can be observed in the following two programs:

```c
int main()
{
	printf("\\
n\n");
	return 0;
}
```

```rust
fn main() {
	println!("\\
n");
}
```

The first program prints two newlines, the second one prints a backslash, a
newline, the latin character n and a final newline.
2016-01-06 18:31:58 -05:00
Steve Klabnik
eb41060ce2 Rollup merge of #30720 - BChip:patch-1, r=steveklabnik
Declare what LIFO stands for
2016-01-06 18:31:57 -05:00
Steve Klabnik
ba41e3c292 Rollup merge of #30699 - steveklabnik:gh30254, r=apasel422
Fixes #30254
2016-01-06 18:31:57 -05:00
Steve Klabnik
4c90f5dc9f Rollup merge of #30683 - LawrenceWoodman:patch-1, r=steveklabnik
I noticed the alignment was off in the error handling part of the book.  This was caused because two tabs had crept into the file.  I have changed these for spaces.
2016-01-06 18:31:56 -05:00
jonastepe
eb30c661c0 heap::deallocate expects a *mut u8 but here a *mut T is given. The final code is correct, the example here would not compile without the cast. I used *mut _ instead of *mut u8 to be consistent with the final code. 2016-01-06 12:13:47 +01:00
Lawrence Woodman
0ca33adabf Add missing semi-colon 2016-01-06 06:27:29 +00:00
Tobias Bucher
ce6baa77fe Clarify how Rust treats backslashes at end of line in string literals
Rust differs in that behavior from C: In C, the newline escapes are resolved
before anything else, and in Rust this depends on whether the backslash is
escaped itself.

A difference can be observed in the following two programs:

```c
#include <stdio.h>
int main()
{
	printf("\\
n\n");
	return 0;
}
```

```rust
fn main() {
	println!("\\
n");
}
```

The first program prints two newlines, the second one prints a backslash, a
newline, the latin character n and a final newline.
2016-01-06 00:04:25 +01:00
BChip
7d6d39bcd9 Clarify What LIFO Is
Declare what LIFO stands for
2016-01-05 15:32:54 -05:00
Lawrence Woodman
ca1f0c9b64 Add correct use for Error and io
This also repeated the case analysis used.
2016-01-05 11:09:39 +00:00
bors
803c3e2ee8 Auto merge of #30595 - steveklabnik:remove_learn_rust, r=gankro
Some history:

While getting Rust to 1.0, it was a struggle to keep the book in a
working state. I had always wanted a certain kind of TOC, but couldn't
quite get it there.

At the 11th hour, I wrote up "Rust inside other langauges" and "Dining
Philosophers" in an attempt to get the book in the direction I wanted to
go. They were fine, but not my best work. I wanted to further expand
this section, but it's just never going to end up happening. We're doing
the second draft of the book now, and these sections are basically gone
already.

Here's the issues with these two sections, and removing them just fixes
it all:

// Philosophers

There was always controversy over which ones were chosen, and why. This
is kind of a perpetual bikeshed, but it comes up every once in a while.

The implementation was originally supposed to show off channels, but
never did, due to time constraints. Months later, I still haven't
re-written it to use them.

People get different results and assume that means they're wrong, rather
than the non-determinism inherent in concurrency. Platform differences
aggrivate this, as does the exact amount of sleeping and printing.

// Rust Inside Other Languages

This section is wonderful, and shows off a strength of Rust. However,
it's not clear what qualifies a language to be in this section. And I'm
not sure how tracking a ton of other languages is gonna work, into the
future; we can't test _anything_ in this section, so it's prone to
bitrot.

By removing this section, and making the Guessing Game an initial
tutorial, we will move this version of the book closer to the future
version, and just eliminate all of these questions.

In addition, this also solves the 'split-brained'-ness of having two
paths, which has endlessly confused people in the past.

I'm sad to see these sections go, but I think it's for the best.

Fixes #30471
Fixes #30163
Fixes #30162
Fixes #25488
Fixes #30345
Fixes #29590
Fixes #28713
Fixes #28915

And probably others. This lengthy list alone is enough to show that
these should have been removed.

RIP.
2016-01-05 03:32:12 +00:00
Steve Klabnik
723ead6c9c Mention that structs can contain &mut Ts
Fixes #30254
2016-01-04 14:06:54 -05:00
Lawrence Woodman
0c3d6b46ac Add missing use statements
fs::File was being referenced without either calling via std::fs::File or by using File after having used fs::File.  Also Path was being referenced without first having used std::path::Path.
2016-01-04 07:21:48 +00:00
Manish Goregaokar
5a14f3791d Improve syntax-index entry for lifetime bounds 2016-01-04 09:34:32 +05:30
Lawrence Woodman
e5a846e90e Correct formatting use of tab instead of spaces 2016-01-03 08:15:24 +00:00
Steve Klabnik
a73df6bf24 Rollup merge of #30620 - salty-horse:an_mut, r=brson
As discussed in issue #30568.
2015-12-30 09:24:24 -05:00
Steve Klabnik
f37e69ebb0 Rollup merge of #30502 - Luke-Nukem:master, r=steveklabnik
Rewrite of a paragraph in in the `match` section.

The colon `:` should be used only when the sentence preceeding it is a
complete sentence. If this is not the case, then a `;` should be used;
this denotes that the following fragment is a part of the previous
fragment.

I got a new bike; it has two wheels. (Similar to I got a new bike, it has two wheels)
The ice cream truck has great flavours; blueberry, blackberry, berryberry.

Writing a complete sentence:
- with a list under it
- You can join two sentences with it: Much like this.

r? @steveklabnik
2015-12-30 09:24:24 -05:00
Ori Avtalion
e8e649239c book: Replace "an &mut" with "a mut". Fixes #30568 2015-12-29 23:13:23 +02:00
Steve Klabnik
ccaa7e5146 Rollup merge of #30405 - durka:patch-12, r=steveklabnik
Fixes #30217.
2015-12-29 15:55:09 -05:00
Steve Klabnik
0c6c34de87 Remove "Learn Rust" from TRPL.
Some history:

While getting Rust to 1.0, it was a struggle to keep the book in a
working state. I had always wanted a certain kind of TOC, but couldn't
quite get it there.

At the 11th hour, I wrote up "Rust inside other langauges" and "Dining
Philosophers" in an attempt to get the book in the direction I wanted to
go. They were fine, but not my best work. I wanted to further expand
this section, but it's just never going to end up happening. We're doing
the second draft of the book now, and these sections are basically gone
already.

Here's the issues with these two sections, and removing them just fixes
it all:

// Philosophers

There was always controversy over which ones were chosen, and why. This
is kind of a perpetual bikeshed, but it comes up every once in a while.

The implementation was originally supposed to show off channels, but
never did, due to time constraints. Months later, I still haven't
re-written it to use them.

People get different results and assume that means they're wrong, rather
than the non-determinism inherent in concurrency. Platform differences
aggrivate this, as does the exact amount of sleeping and printing.

// Rust Inside Other Languages

This section is wonderful, and shows off a strength of Rust. However,
it's not clear what qualifies a language to be in this section. And I'm
not sure how tracking a ton of other languages is gonna work, into the
future; we can't test _anything_ in this section, so it's prone to
bitrot.

By removing this section, and making the Guessing Game an initial
tutorial, we will move this version of the book closer to the future
version, and just eliminate all of these questions.

In addition, this also solves the 'split-brained'-ness of having two
paths, which has endlessly confused people in the past.

I'm sad to see these sections go, but I think it's for the best.

Fixes #30471
Fixes #30163
Fixes #30162
Fixes #25488
Fixes #30345
Fixes #28713
Fixes #28915

And probably others. This lengthy list alone is enough to show that
these should have been removed.

RIP.
2015-12-29 10:58:31 -05:00
bors
ded10f4313 Auto merge of #30575 - jswalden:error-handling-typo, r=apasel422
Didn't build/test the change, but if that one-character fix isn't correct, I'll eat my hat.  :-)  Found this reading the book over the last week or two since Mozlando -- much enjoying the book so far.
2015-12-27 19:50:09 +00:00
Jeff Walden
68c0f024cf Change the typo 'that' to 'than' in the book error-handling chapter. 2015-12-27 00:24:45 -06:00
Steffen
9af75d2bec llvm: Add support for vectorcall (X86_VectorCall) convention 2015-12-26 21:40:40 +01:00
Ori Avtalion
d6d949a62a book: Fix typo 2015-12-26 22:29:02 +02:00
Manish Goregaokar
288a7e52ee Rollup merge of #30545 - bluss:operator-overload, r=steveklabnik
book: Some operator fixes for the syntax index

- Correct the names of the comparison traits (PartialOrd)
- Mention only the traits that overload the operator (PartialOrd,
  PartialEq), not operator-unrelated traits (Ord, Eq).
- Add `!=` operator.
2015-12-25 18:39:56 +05:30
Ulrik Sverdrup
1b438314a0 book: Some operator fixes for the syntax index
- Correct the names of the comparison traits (PartialOrd)
- Mention only the traits that overload the operator (PartialOrd,
  PartialEq), not operator-unrelated traits (Ord, Eq).
- Add `!=` operator.
2015-12-24 00:41:10 +01:00
Steve Klabnik
944b337c95 Rollup merge of #30543 - brson:doc, r=steveklabnik
The website will [shortly](https://github.com/rust-lang/rust-www/pull/241) provide the main documentation landing page as well as the [FAQ](https://github.com/rust-lang/rust-www/issues/202). All of the content here will be there.

This strips out everything and makes the index *just* an index into the in-tree content. My only real qualm with this is that this will become the content on doc.rust-lang.org (a sweet URL), while the main documentation page will be www.rust-lang.org/documentation.html.

r? @steveklabnik
2015-12-23 18:09:12 -05:00
Steve Klabnik
cc2731222b Rollup merge of #30473 - nwin:patch-2, r=steveklabnik
Clarify the difference between compiler-panic and libcore-panic.
2015-12-23 18:09:11 -05:00
Steve Klabnik
884021b79a Rollup merge of #30461 - lnmx:doc-typo, r=steveklabnik 2015-12-23 18:09:11 -05:00
Brian Anderson
9e99a27907 Strip the documentation index down to the essentials.
The main documentation page is now www.rust-lang.org/documentation.html
2015-12-23 14:15:13 -08:00
Brian Anderson
6c65cc1f8f Remove links to out-of-tree docs 2015-12-23 14:04:43 -08:00
Brian Anderson
2f3c472d10 Remove the FAQs in favor of the website 2015-12-23 14:03:45 -08:00
bors
da4a21e91a Auto merge of #30400 - fbergr:master, r=steveklabnik
See: https://github.com/rust-lang/rust/issues/30397

r? @steveklabnik
2015-12-21 06:02:13 +00:00
Luke Jones
1522350ecc Revert to colon. The text is introducing a list. 2015-12-21 16:24:17 +13:00
Luke Jones
1bb131cdca Update patterns.md 2015-12-21 16:20:56 +13:00
Luke Jones
fc4bb5f770 Correct line wrap 2015-12-21 16:20:20 +13:00
Luke Jones
981ac6d332 Rewrite paragraph in 'match' to be more concise and readable. Start
correcting use of ':' in sentences.
The colon `:` should be used only when the sentence preceeding it is a
complete sentence. If this is not the case, then a `;` should be used;
this denotes that the following fragment is a part of the previous
fragment.
2015-12-21 09:53:07 +13:00
nwin
aacdfb8a2a Update no-stdlib.md
Clarify the difference between compiler-panic and libcore-panic.
2015-12-19 09:19:05 +01:00
bors
440ef8b154 Auto merge of #30184 - petrochenkov:ascr, r=nikomatsakis
This PR is a rebase of the original PR by @eddyb https://github.com/rust-lang/rust/pull/21836 with some unrebasable parts manually reapplied, feature gate added + type equality restriction added as described below.

This implementation is partial because the type equality restriction is applied to all type ascription expressions and not only those in lvalue contexts. Thus, all difficulties with detection of these contexts and translation of coercions having effect in runtime are avoided.
So, you can't write things with coercions like `let slice = &[1, 2, 3]: &[u8];`. It obviously makes type ascription less useful than it should be, but it's still much more useful than not having type ascription at all.
In particular, things like `let v = something.iter().collect(): Vec<_>;` and `let u = t.into(): U;` work as expected and I'm pretty happy with these improvements alone.

Part of https://github.com/rust-lang/rust/issues/23416
2015-12-19 02:45:15 +00:00
bors
ef91cdb140 Auto merge of #29973 - petrochenkov:privinpub, r=nikomatsakis
Some notes:
This patch enforces the rules from [RFC 136](https://github.com/rust-lang/rfcs/blob/master/text/0136-no-privates-in-public.md) and makes "private in public" a module-level concept and not crate-level. Only `pub` annotations are used by the new algorithm, crate-level exported node set produced by `EmbargoVisitor` is not used. The error messages are tweaked accordingly and don't use the word "exported" to avoid confusing people (https://github.com/rust-lang/rust/issues/29668).

The old algorithm tried to be extra smart with impls, but it mostly led to unpredictable behavior and bugs like https://github.com/rust-lang/rust/issues/28325.
The new algorithm tries to be as simple as possible - an impl is considered public iff its type is public and its trait is public (if presents).
A type or trait is considered public if all its components are public, [complications](https://internals.rust-lang.org/t/limits-of-type-inference-smartness/2919) with private types leaking to other crates/modules through trait impls and type inference are deliberately ignored so far.

The new algorithm is not recursive and uses the nice new facility `Crate::visit_all_items`!

Obsolete pre-1.0 feature `visible_private_types` is removed.

This is a [breaking-change].
The two main vectors of breakage are type aliases (https://github.com/rust-lang/rust/issues/28450) and impls (https://github.com/rust-lang/rust/issues/28325).
I need some statistics from a crater run (cc @alexcrichton) to decide on the breakage mitigation strategy.
UPDATE: All the new errors are reported as warnings controlled by a lint `private_in_public` and lint group `future_incompatible`, but the intent is to make them hard errors eventually.

Closes https://github.com/rust-lang/rust/issues/28325
Closes https://github.com/rust-lang/rust/issues/28450
Closes https://github.com/rust-lang/rust/issues/29524
Closes https://github.com/rust-lang/rust/issues/29627
Closes https://github.com/rust-lang/rust/issues/29668
Closes https://github.com/rust-lang/rust/issues/30055

r? @nikomatsakis
2015-12-18 18:54:52 +00:00
Vadim Petrochenkov
95fdaf2375 Require exact type equality + add tests
+ Rebase fixes
2015-12-18 20:00:19 +03:00
lnmx
49dc357e3e doc: minor format fixes in book/error-handling 2015-12-18 10:27:39 -05:00
Manish Goregaokar
4f8b32c96f Rollup merge of #30447 - Xmasreturns:Docu, r=steveklabnik
Added sentences for description of code and changed x in the example to an int
2015-12-18 20:02:14 +05:30
Manish Goregaokar
158a1bdd7d Rollup merge of #30406 - durka:patch-13, r=sanxiyn
The previous example had no chance of compiling in either form, due to the restrictive follow set for `ty`. This one has the desired behavior: http://is.gd/kYdw4g (well, I don't exactly desire this behavior at all, but it's true at least :p )
2015-12-18 16:47:38 +05:30
Vadim Petrochenkov
f3f27a5c64 Rewrite VisiblePrivateTypesVisitor 2015-12-18 04:12:31 +03:00
Xmasreturns
2a23e4a5b0 Clarified shadowing example
Added some additional descriptive sentences and changed x to an int in
the example
2015-12-17 14:31:31 -08:00
Steve Klabnik
8cd237427c Rollup merge of #30439 - swooster:swooster-nomicon-patch-1, r=steveklabnik
The Rustonomicon's Lifetimes chapter uses the idiom "big ask", which is obscure compared to "tall order" (check [Google ngrams](https://books.google.com/ngrams/graph?content=big+ask%2C+tall+order&year_start=1800)). Also, it's easily mistaken for a typo; either "a big task" or "a big thing to ask" could plausibly work there.

r? @steveklabnik
2015-12-17 14:47:14 -05:00
Steve Klabnik
7963529b6b Rollup merge of #30404 - Shiney:ImprovedStackHeap, r=steveklabnik
…entation clearer

I could not use colors as suggested for #29854 because Github doesn't support these in markdown, however this solution may be better for color-blind readers.
2015-12-17 14:47:13 -05:00
Steve Wooster
fc862182c9 Change "big ask" to "tall order" in Rustonomicon.
The Rustonomicon's Lifetimes chapter uses the idiom "big ask", which is obscure compared to "tall order" (check Google ngrams). Also, it's easily mistaken for a typo; either "a big task" or "a big thing to ask" could plausibly work there.
2015-12-17 09:40:02 -08:00
Shiney
62fa40f87a Used bold and italic in the markdown to make the stack and heap documentation clearer 2015-12-16 20:54:02 +00:00
bors
ac2c5ff024 Auto merge of #30206 - petrochenkov:newdepr, r=brson
Closes https://github.com/rust-lang/rust/issues/29935

The attributes `deprecated` and `rustc_deprecated` are completely independent in this implementation and it leads to some noticeable code duplication. Representing `deprecated` as
```
Stability {
    level: Stable { since: "" },
    feature: "",
    depr: Some(Deprecation),
}
```
or, contrariwise, splitting rustc_deprecation from stability makes most of the duplication go away.
I can do this refactoring, but before doing it I must be sure, that further divergence of `deprecated` and `rustc_deprecated` is certainly not a goal.

cc @llogiq
2015-12-16 08:15:23 +00:00
Alex Burka
d91b256fe5 change macro ambiguity example from ty to ident
The previous example had no chance of compiling in either form, due to the restrictive follow set for `ty`. This one has the desired behavior: http://is.gd/kYdw4g (well, I don't exactly desire this behavior at all, but it's true at least :p )
2015-12-15 20:48:25 -05:00
Alex Burka
74c384bc8e remove claim that $crate is a single identifier
Fixes #30217.
2015-12-15 20:26:10 -05:00
fbergr
b9005dd472 Book: Fix link anchor in Syntax Index 2015-12-15 21:47:21 +02:00
bors
5a1045699d Auto merge of #30332 - bluss:nomicon-variance, r=gankro
Update nomicon for variance typo & contravariance

Fixes #28704
Fixes #28100
2015-12-13 11:44:39 +00:00
bors
5de242f1b2 Auto merge of #30329 - salty-horse:punctuation, r=steveklabnik
Missing period at the end of a sentence.
2015-12-13 09:57:35 +00:00
bors
35b6461b6e Auto merge of #30310 - mbrubeck:doc-vec-bounds, r=steveklabnik
r? @steveklabnik

Currently neither the API docs nor the book clearly explain that out-of-bounds array indexing causes a panic.  Since this is fairly important and seems to surprise a number of new Rust programmers, I think it's worth adding to both places.  (But if you think it would be better to put this info in the API docs only, that's fine too.)

Some specific things I'd like feedback on:

* The new text here talks about panicking, which hasn't been formally introduced at this point in chapter 5 (though it has been mentioned in previous sections too).
* Similarly the `Vec::get` example uses `Option<T>` which hasn't been fully introduced yet.  Should we leave out this example?
2015-12-13 01:53:06 +00:00
bors
1ddaf8bdf4 Auto merge of #30309 - alexcrichton:more-tier-two, r=steveklabnik
We've got lots of new automation set up in the past few months, so these
platforms are now all tier 2 as we're building artifacts and gating on them.
2015-12-12 23:50:03 +00:00
Vadim Petrochenkov
e3ed7b0501 Implement #[deprecated] attribute (RFC 1270) 2015-12-12 19:39:37 +03:00
Ulrik Sverdrup
2a30f0ea41 nomicon: Mention contravariance 2015-12-12 06:14:06 +01:00
Ulrik Sverdrup
a0101624ad nomicon: Fix variance in example
&'b mut B was described incorrectly (just in this example, is correct in
the actual text).
2015-12-11 18:24:10 +01:00
Ori Avtalion
bb3360adde book: Add missing punctuation 2015-12-11 18:18:13 +02:00
Matt Brubeck
5b9dd6a016 Document bounds checking in the book 2015-12-11 06:18:18 -08:00
Alex Crichton
453375b4d2 book: Update Tier 2 platforms
We've got lots of new automation set up in the past few months, so these
platforms are now all tier 2 as we're building artifacts and gating on them.
2015-12-10 11:50:20 -08:00
bors
ee597a8ee1 Auto merge of #30292 - Xmasreturns:patch-3, r=steveklabnik
Updated structs.md in the book
2015-12-10 04:54:03 +00:00
Xmasreturns
2adba31682 Fixes from review
Traits -> Field labels
Revert a change to convention
2015-12-09 13:25:53 -08:00
Xmasreturns
6bbe6759a5 Grammar and slight ordering changes 2015-12-09 11:37:57 -08:00
Xmasreturns
99fdf3414f Grammar changes for readability 2015-12-09 10:07:02 -08:00