Commit graph

4170 commits

Author SHA1 Message Date
Michal Nazarewicz
b6a1618332 book: don’t use GNU extensions in the example unnecessarily
The use of a GNU C extension for bloc expressions is immaterial to the
actual problem with C macros that the section tries to show so don’t
use it and instead use a plain C way of writing the macro.
2017-02-15 15:57:57 +01:00
Steve Klabnik
7f1d1c6d9a Fix up links
mdbook and rustdoc generate links differently, so we need to change all
these links.
2017-02-13 13:41:24 -05:00
Steve Klabnik
22d4adf14a Port Nomicon to mdbook
1. move everything under a src directory
2. add README.md to the SUMMARY.md
2017-02-13 13:41:10 -05:00
Steve Klabnik
e943e68a47 Port TRPL to mdbook
1. move everything under a src directory
2. add README.md to the SUMMARY.md
2017-02-13 13:41:06 -05:00
Steve Klabnik
a076961fd0 Re-implement rustbook in terms of mdbook
mdbook has a lot of optional dependencies that we don't want, so instead
of using it directly, we re-build rustbook to use mdbook as a library.
For convenience' sake, we keep the same CLI interface as mdbook; the
only difference is that it only accepts build and test subcommands,
rather than the full range.
2017-02-13 13:41:01 -05:00
Jake Goulding
037ef0bbc8 Improve grammar on field init docs 2017-02-11 23:42:39 -05:00
Aaron Power
5c295110fd Updated installing nightly instructions 2017-02-10 18:44:32 +00:00
Corey Farwell
7f7dc764f5 Rollup merge of #37928 - chriskrycho:document-rfc-1623, r=steveklabnik
Document RFC 1623: static lifetime elision.

This should be the last item required for stabilizing RFC 1623 (#35897).
2017-02-08 23:55:42 -05:00
Chris Krycho
4096dd684c Add more examples, get everything passing at last. 2017-02-08 14:30:31 -05:00
Corey Farwell
68872a8a90 Rollup merge of #39620 - Gheoan:patch-1, r=steveklabnik
add missing comma
2017-02-07 22:54:30 -05:00
Corey Farwell
83595fa2f4 Rollup merge of #39593 - steveklabnik:bookshelf-landing-page, r=frewsxcv
Re-write the doc index page

Clarify and reorganize.

Add the section for the bookshelf. More to come here in the near future!

Part of #39588
2017-02-07 22:54:29 -05:00
Corey Farwell
d1f8c448ff Rollup merge of #39459 - phungleson:fix-short-hand-struct-doc, r=steveklabnik
Fix short hand struct doc

Don't want to discredit @hngiang effort on this issue.

I just want to lend a hand to fix this issue #38830, it is a very nice feature and is seemingly completed.

Fixes #39096

r? @steveklabnik
2017-02-07 22:54:26 -05:00
Alex Burka
620074df6a reference: clarify #[cfg] section 2017-02-07 15:35:54 -05:00
Steve Klabnik
78dd2ec2c2 review nits 2017-02-07 13:04:57 -05:00
Gheorghe Anghelescu
ffea076f1b add missing comma 2017-02-07 19:47:48 +02:00
Steve Klabnik
acd84c2f82 Re-write the doc index page
Clarify and reorganize.

Add the section for the bookshelf. More to come here in the near future!

Part of #39588
2017-02-06 15:05:37 -05:00
bors
4711ac314c Auto merge of #38436 - bluecereal:patch-1, r=frewsxcv
Update if-let.md

Calling if-let a combination of if and let is confusing, as some may be led to believe that it's a literal combination, instead of syntactic sugar added to the language as a convenience.  What's there to stop someone from thinking if-let is just if and let together?

I do think this article does a good job of implying what's really going on; however, I was only able to notice this after I had begun to understand if/while-let statements, courtesy of the Rust IRC chat.

Basically, this article lacks the clarity and explicitness an inexperienced programmer like me needs in order to understand the contents fully.  This is shown by my inability to understand the if-let concept from this page of the Book alone.

I think convenience, sugar, and (if-let != if + let) should all be made mention of in a clear, explicit manner. I lack confidence in my understanding of this issue, so I wrote just enough to hopefully get my thoughts across.
2017-02-06 06:55:10 +00:00
bluecereal
fb7f211c0c Update if-let.md 2017-02-05 20:20:43 -05:00
bors
696f5c1fc6 Auto merge of #38161 - durka:rustdoc-crate-attrs, r=alexcrichton
rustdoc: fix doctests with non-feature crate attrs

Fixes #38129.

The book says that any top-level crate attributes at the beginning of a doctest are moved outside the generated `fn main`, but it was only checking for `#![feature`, not `#![`.

These attributes previously caused warnings but were then ignored, so in theory this could change the behavior of doctests in the wild.
2017-02-05 05:54:44 +00:00
Son
4ddb56bf4d Simplify wording & fix test src/doc 2017-02-03 23:51:50 +11:00
bors
5de2a24b2e Auto merge of #39287 - wesleywiser:move_cell, r=aturon
Extend Cell to work with non-Copy types

I'm not sure that I did this right but all of the tests pass.

I also had to move the `new()` function so that `Cell`s with non-`Copy` `T`s could be created. That wasn't in the RFC but I assume it needed to be done?
2017-02-03 03:23:35 +00:00
Guillaume Gomez
38ae9233b5 Rollup merge of #39196 - apasel422:nomicon, r=petrochenkov
Update nomicon to describe `#[may_dangle]`

CC #34761
r? @pnkfelix
2017-02-02 22:22:21 +01:00
Guillaume Gomez
5ada328d81 Rollup merge of #38823 - Freyskeyd:doc-missingInformationCfgTest, r=steveklabnik
Improve doc cfg(test) and tests directory

Hi,

I was facing a problem with my code organisation. I was using a tests directory and i defined some `#[cfg(test)]` in my `src/`. But i was not able to use it in my `tests` folder.

```bash
.
├── Cargo.lock
├── Cargo.toml
├── src
│   ├── lib.rs
│   └── test.rs
└── tests
    └── x.rs
```
> src/lib.rs
```rust
pub mod test;

fn tesst() {
    assert!(test::t());
}
```
> src/test.rs
```rust
pub fn t() -> bool { true }
```
> test/x.rs
```rust
extern crate testt;

use testt::test;
fn tesst() {
    assert!(test::t());
}
```

I was unable to compile using `cargo test`:
```bash
error[E0432]: unresolved import `testt::test`
 --> tests/x.rs:3:5
  |
3 | use testt::test;
  |     ^^^^^^^^^^^ no `test` in `testt`
```

If i remove the `tests` directory everything works fine. To use an utils module in your `tests` directory, you need to create a module in the directory (like `tests/utils.rs`). My `tests/x.rs` look like this now:

```rust
extern crate testt;

mod utils;

fn tesst() {
    assert!(utils::t());
}
```

And my tree:
```bash
.
├── Cargo.lock
├── Cargo.toml
├── src
│   └── lib.rs
└── tests
    ├── utils.rs
    └── x.rs
```

I think that thing must be documented in the book.

Ping:
- @badboy : Because he's the one who showed me the path
- @shahn : Because he helped me too to find the solution

Signed-off-by: Freyskeyd <simon.paitrault@iadvize.com>
2017-02-02 22:22:19 +01:00
Son
c4cd4e19d9 Wrap 80 columns 2017-02-02 22:24:50 +11:00
Giang Nguyen
a7b65f1578 Add doc field init shorthand 2017-02-02 22:19:41 +11:00
Giang Nguyen
3388855443 Add explain struct field init shorthand 2017-02-02 22:19:24 +11:00
Wesley Wiser
8b947a37c8 Update Cell references in the book 2017-02-01 22:53:39 -05:00
Wilfred Hughes
87bbb3c738 Minor grammar fix 'can not' -> 'cannot'
The previous version suggested that the compiler chooses not to check, rather than being unable to check.
2017-01-29 10:51:26 +00:00
Chris Krycho
3f0ca55780 Change placement of [Unstable] marker in RFC 1623 docs. 2017-01-28 12:45:54 -05:00
Chris Krycho
e8cb83a823 Add feature flag to reference docs for RFC 1623. 2017-01-28 09:42:32 -05:00
Alex Crichton
7c75608cfb Rollup merge of #39344 - ollie27:links, r=steveklabnik
Fix a few links in the docs

r? @steveklabnik
2017-01-27 16:42:07 -08:00
Oliver Middleton
09b3903aec Fix a few links in the docs 2017-01-27 18:08:51 +00:00
est31
ff11f987c6 drop_in_place is stable now, don't #![feature] it in the nomicon and a test
It was stable since Rust 1.8.
2017-01-26 10:38:22 +01:00
Raphael Das Gupta
c4c86dd04c fix book: refer to add_two as "tested function"
rather than "test function", which would be `it_works`
2017-01-24 22:44:41 +01:00
Freyskeyd
b996a7ecec
Fix doc cfg(test) and tests directory
Signed-off-by: Freyskeyd <simon.paitrault@iadvize.com>
2017-01-24 21:04:38 +01:00
Steve Klabnik
e113038a36 Rollup merge of #39191 - cesarb:book/trait-objects-vtable-size-and-align, 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-23 16:40:49 -05:00
Steve Klabnik
9df2daf34c Rollup merge of #38993 - krdln:patch-1, r=steveklabnik
Add `&mut expr` to syntax index
2017-01-23 16:40:48 -05:00
Steve Klabnik
fb5b0d033f Rollup merge of #38956 - theduke:document-field-init-shorthand-38830, r=steveklabnik
Update struct_expr grammar for field init shorthand.

Part of the work for #38830 .

r? @steveklabnik
2017-01-23 16:40:47 -05:00
Steve Klabnik
12b46292c6 Rollup merge of #38794 - ConnyOnny:master, r=steveklabnik
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-23 16:40:46 -05:00
Eijebong
cf4d90db52 Fix minor typo 2017-01-22 17:27:29 +01:00
bluecereal
ebf07da0a5 Update if-let.md 2017-01-21 02:24:48 -05:00
Oliver Middleton
543eca2eab linkchecker: Fix checking links which are just fragments
Also fix a typo which linkchecker should have caught.
2017-01-20 08:36:09 +00:00
Cesar Eduardo Barros
c7b092b47d No need to mention how these fields are used 2017-01-19 22:45:57 -02:00
Andrew Paseltiner
65147b673b
Update nomicon to describe #[may_dangle] 2017-01-19 18:09:23 -05:00
Cesar Eduardo Barros
465d24e1a0 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.
2017-01-19 18:16:11 -02:00
Bjorn Tipling
0dad9dcf9e An update to patterns documentation
As it is written it creates a lot of confusion.
2017-01-15 12:27:41 -08:00
Guillaume Gomez
a861eb0aac Rollup merge of #39027 - behnam:typo, r=frewsxcv
[libcollections] [doc] Fix typo in documentation

Replace two instances of `an raw` with `a raw` in documentation blocks.
2017-01-13 10:42:34 +01:00
Behnam Esfahbod
6022aeb9ab [libcollections] [doc] Fix typo in documentation 2017-01-12 19:23:35 -08:00
Ben Wiederhake
09df83b247 Fix some typos in Nomicon 2017-01-11 18:07:08 +01:00
krdln
4093bafe63 Add &mut expr to syntax index 2017-01-11 15:56:06 +01:00