summary refs log tree commit diff
path: root/src/doc/book
AgeCommit message (Collapse)AuthorLines
2017-01-29Minor grammar fix 'can not' -> 'cannot'Wilfred Hughes-3/+3
The previous version suggested that the compiler chooses not to check, rather than being unable to check.
2017-01-27Fix a few links in the docsOliver Middleton-1/+1
2017-01-24fix book: refer to `add_two` as "tested function"Raphael Das Gupta-1/+1
rather than "test function", which would be `it_works`
2017-01-23Rollup merge of #39191 - cesarb:book/trait-objects-vtable-size-and-align, ↵Steve Klabnik-4/+1
r=steveklabnik book: size and align in trait object vtables are used The book currently claims that the `size` and `align` fields in the trait object vtable are not used, but this is false. These two fields are used by the stable `mem::size_of_val` and `mem::align_of_val` functions. See the `ty::TyDynamic` case of the `glue::size_and_align_of_dst` function in librustc_trans, which is used to implement both intrinsics in the unsized case. r? @steveklabnik
2017-01-23Rollup merge of #38993 - krdln:patch-1, r=steveklabnikSteve Klabnik-1/+1
Add `&mut expr` to syntax index
2017-01-23Rollup merge of #38794 - ConnyOnny:master, r=steveklabnikSteve Klabnik-1/+1
book: match enum warning Matching enums with named fields in the previous way yielded the "non_shorthand_field_patterns" warning. The new code shows the shorthand syntax as well as field renaming, so it should be exhaustive ;-)
2017-01-19No need to mention how these fields are usedCesar Eduardo Barros-2/+1
2017-01-19book: size and align in trait object vtables are usedCesar Eduardo Barros-3/+1
The book currently claims that the `size` and `align` fields in the trait object vtable are not used, but this is false. These two fields are used by the stable `mem::size_of_val` and `mem::align_of_val` functions. See the `ty::TyDynamic` case of the `glue::size_and_align_of_dst` function in librustc_trans, which is used to implement both intrinsics in the unsized case.
2017-01-15An update to patterns documentationBjorn Tipling-0/+27
As it is written it creates a lot of confusion.
2017-01-12[libcollections] [doc] Fix typo in documentationBehnam Esfahbod-1/+1
2017-01-11Add `&mut expr` to syntax indexkrdln-1/+1
2017-01-10Auto merge of #38138 - rkruppe:no_std-no_loop, r=steveklabnikbors-11/+10
book: use abort() over loop {} for panic Due to #28728 `loop {}` is very risky and can lead to fun debugging experiences such as #38136. Besides, aborting is probably better behavior than an infinite loop. r? @steveklabnik
2017-01-04book: use abort() over loop {} for panicRobin Kruppe-11/+10
Due to #28728 loop {} is very risky and can lead to fun debugging experiences like in #38136. Besides, aborting is probably better behavior than an infinite loop.
2017-01-04Document custom derive.Steve Klabnik-0/+214
These are some bare-bones documentation for custom derive, needed to stabilize "macros 1.1", https://github.com/rust-lang/rust/issues/35900 The book chapter is based off of a blog post by @cbreeden, https://cbreeden.github.io/Macros11/ Normally, we have a policy of not mentioning external crates in documentation. However, given that syn/quote are basically neccesary for properly using macros 1.1, I feel that not including them here would make the documentation very bad. So the rules should be bent in this instance.
2017-01-03Auto merge of #38066 - bluss:string-slice-error, r=sfacklerbors-2/+2
Use more specific panic message for &str slicing errors Separate out of bounds errors from character boundary errors, and print more details for character boundary errors. It reports the first error it finds in: 1. begin out of bounds 2. end out of bounds 3. begin <= end violated 3. begin not char boundary 5. end not char boundary. Example: &"abcαβγ"[..4] thread 'str::test_slice_fail_boundary_1' panicked at 'byte index 4 is not a char boundary; it is inside 'α' (bytes 3..5) of `abcαβγ`' Fixes #38052
2017-01-03book: match enum warning removedConstantin-1/+1
Matching enums with named fields in the previous way yielded the "non_shorthand_field_patterns" warning. The new code shows the shorthand syntax as well as field renaming, so it should be exhaustive ;-)
2016-12-29Rollup merge of #38662 - agl:patch-2, r=frewsxcvAlex Crichton-2/+2
Use "an" before "i32" (Minor typo fix.) Since the word `i32` starts with a vowel, the indefinite article should use "an", not "a" \[[1](http://www.dictionary.com/browse/an)\]. (Previously there was one instance of "an i32" and two instances of "a i32", so at least something is wrong!) Since I believe that "an" is the correct form, I aligned everything with that.
2016-12-29Rollup merge of #38659 - agl:patch-1, r=apasel422Alex Crichton-1/+1
Add missing apostrophe. (Minor typo fix.) The "support" in this case is possessed by the "programmer", and that ownership should be indicated by an apostrophe.
2016-12-29Rollup merge of #38630 - frewsxcv:variadic, r=steveklabnikAlex Crichton-0/+25
Document foreign variadic functions in TRPL and the reference. Fixes https://github.com/rust-lang/rust/issues/38485.
2016-12-28Use "an" before "i32"Adam Langley-2/+2
(Minor typo fix.) Since the word `i32` starts with a vowel, the indefinite article should use "an", not "a" \[[1](http://www.dictionary.com/browse/an)\]. (Previously there was one instance of "an i32" and two instances of "a i32", so at least something is wrong!) Since I believe that "an" is the correct form, I aligned everything with that.
2016-12-28Add missing apostrophe.Adam Langley-1/+1
(Minor typo fix.) The "support" in this case is possessed by the "programmer", and that ownership should be indicated by an apostrophe.
2016-12-27Document foreign variadic functions in TRPL and the reference.Corey Farwell-0/+25
Fixes https://github.com/rust-lang/rust/issues/38485.
2016-12-27And suddenly a german word :Okellerkindt-1/+1
"verboten" is german for "forbidden"
2016-12-24Rollup merge of #38568 - chris-morgan:fix-markdown-lists, r=frewsxcvSteve Klabnik-9/+9
Fix Markdown list formatting. The Markdown engine used by the book can cope with a single leading space on the list marker: Like this: * List item Rather than like this: * List item … but it’s not the typical convention employed in the book, and moreover the Markdown engine used for producing the error index *can’t* cope with it (its behaviour looks like a bug, as it appears to lose one of the two line breaks as well, but that’s immaterial here). So, we shift to a single convention which doesn’t trigger bugs in the Markdown renderer. ---- See https://doc.rust-lang.org/error-index.html#E0458 and https://doc.rust-lang.org/error-index.html#E0101 for the bad current rendering in the error index.
2016-12-24Rollup merge of #38013 - wezm:simplify-test-notes, r=steveklabnikSteve Klabnik-5/+4
Simplify notes on testing and concurrency The start of the notes on tests running concurrently, added in https://github.com/rust-lang/rust/pull/37766 read a little awkwardly. This PR fixes that and simplifies the wording a bit. r? @steveklabnik
2016-12-24Rollup merge of #37956 - tshepang:patch-2, r=steveklabnikSteve Klabnik-2/+3
book: replace example I do not understand
2016-12-23book: replace example I do not understandTshepang Lekhonkhobe-2/+3
2016-12-22Fix Markdown list formatting.Chris Morgan-9/+9
The Markdown engine used by the book can cope with a single leading space on the list marker: Like this: * List item Rather than like this: * List item … but it’s not the typical convention employed in the book, and moreover the Markdown engine used for producing the error index *can’t* cope with it (its behaviour looks like a bug, as it appears to lose one of the two line breaks as well, but that’s immaterial here). So, we shift to a single convention which doesn’t trigger bugs in the Markdown renderer.
2016-12-16Update book for rustupBrian Anderson-9/+23
2016-12-16Book: rustup.sh -> rustup.rsSteve Klabnik-21/+7
Fixes #35653 cc https://github.com/rust-lang/rust-www/pull/621
2016-12-13Simplify notes on testing and concurrencyWesley Moore-5/+4
2016-12-07Update book/ffi to use catch_unwindCobrand-9/+14
r? @GuillaumeGomez The doc mentioned to spawn a new thread instead of using catch_unwind, which has been the recommended way to catch panics for foreign function interfaces for a few releases now.
2016-12-01Minor fix to testing concurrency sectionSteve Smith-5/+5
2016-11-30Use more specific panic message for &str slicing errorsUlrik Sverdrup-2/+2
Separate out of bounds errors from character boundary errors, and print more details for character boundary errors. Example: &"abcαβγ"[..4] thread 'str::test_slice_fail_boundary_1' panicked at 'byte index 4 is not a char boundary; it is inside `α` (bytes 3..5) of `abcαβγ`'
2016-11-23Use literal 5 instead of five in book section 4.1Sam Estep-1/+1
2016-11-20Rollup merge of #37840 - brcooley:patch-1, r=steveklabnikGuillaume Gomez-1/+1
Fix grammar error in lifetimes.md
2016-11-17Fix grammar error in lifetimes.mdBrett Cooley-1/+1
2016-11-17Rollup merge of #37766 - tarka:book-testing-concurrency-capture, r=steveklabnikGuillaume Gomez-0/+42
Add sections about testing concurrency and stdout/err capture
2016-11-14Remove thread-per-CPU bit as it may not be accurate.Steve Smith-6/+5
2016-11-14Typo in new sectionSteve Smith-1/+1
2016-11-14Auto merge of #37755 - polo-language:doc-punct, r=GuillaumeGomezbors-183/+184
Improved punctuation, capitalization, and sentence structure of code snippet comments r? @GuillaumeGomez
2016-11-14Add sections about concurrency and stdout/err capture to the Testing chapter ↵Steve Smith-0/+43
of the book.
2016-11-13Improved punctuation, capitalization, and sentence structure of code snippet ↵Angelo Polo-183/+184
comments
2016-11-12Minor grammar fix to ffi.mdReza Akhavan-1/+1
2016-11-12Rollup merge of #37708 - oli-obk:box_free, r=eddybEduard-Mihai Burtescu-2/+2
change the `box_free` lang item to accept pointers to unsized types in miri we use the `box_free` lang item as the destructor for `Box` objects, since the function's api matches that of an `fn drop(&mut self)` in a hypothetical `impl<T: ?Sized> Drop for Box<T>` exactly. This works fine except if we insert a check in the `size_of` intrinsic to ensure that it is only called with sized types, since the `box_free` lang item calls that intrinsic. cc @eddyb no clue who to r? here, probably lang team?
2016-11-12Rollup merge of #37503 - nwin:patch-3, r=steveklabnikEduard-Mihai Burtescu-14/+8
Remove remark about poor code style The current wording [seems to be confusing](https://www.reddit.com/r/rust/comments/5aat03/why_is_implementing_traits_on_primitive_types/). As an explanation when and why this could be considered as poor style would go beyond of the scope of this chapter I suggest to remove this remark.
2016-11-12Rollup merge of #37368 - trotter:patch-1, r=steveklabnikEduard-Mihai Burtescu-31/+92
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-11Update patch with example.nwin-1/+15
2016-11-11[breaking-change] change the `box_free` item to accept pointers to unsized typesOliver 'ker' Schneider-2/+2
2016-11-10Ignore tests failing due to lack of `fn main`Trotter Cashion-7/+9
While the commit message on this one sounds terrible, it's really not so bad. The issue is that our test runner _expects_ a `fn main() {}` in code blocks that it'll test, but this code really shouldn't have them. If it did, then clicking the "play" link in the docs would result in play.rust-lang.org not treating this code as a test example to be run.