Commit Graph

41792 Commits

Author SHA1 Message Date
Erick Tryzelaar
a4541b02a3 syntax: remove #![feature(box_syntax, box_patterns)] 2015-04-21 10:07:48 -07:00
John Van Enk
5f7556cd39 Add an example of completely slicing an object. 2015-04-21 09:21:52 -07:00
Simon Sapin
16181e686a Pick a feature name for write_char 2015-04-21 18:16:08 +02:00
Brian Campbell
3cc84efcdd Deprecate std::fs::soft_link in favor of platform-specific versions
On Windows, when you create a symbolic link you must specify whether it
points to a directory or a file, even if it is created dangling, while
on Unix, the same symbolic link could point to a directory, a file, or
nothing at all.  Furthermore, on Windows special privilege is necessary
to use a symbolic link, while on Unix, you can generally create a
symbolic link in any directory you have write privileges to.

This means that it is unlikely to be able to use symbolic links purely
portably; anyone who uses them will need to think about the cross
platform implications.  This means that using platform-specific APIs
will make it easier to see where code will need to differ between the
platforms, rather than trying to provide some kind of compatibility
wrapper.

Furthermore, `soft_link` has no precedence in any other API, so to avoid
confusion, move back to the more standard `symlink` terminology.

Create a `std::os::unix::symlink` for the Unix version that is
destination type agnostic, as well as `std::os::windows::{symlink_file,
symlink_dir}` for Windows.

Because this is a stable API, leave a compatibility wrapper in
`std::fs::soft_link`, which calls `symlink` on Unix and `symlink_file`
on Windows, preserving the existing behavior of `soft_link`.
2015-04-21 12:14:22 -04:00
Felix S. Klock II
2b3cd40f82 add notes clarifying introduction of warnings for a pair of run-pass tests. 2015-04-21 18:09:46 +02:00
Felix S. Klock II
ccc9f5eb84 Tests for shadowing between lifetimes and loop labels within function bodies. 2015-04-21 18:09:46 +02:00
Felix S. Klock II
dd24070799 Check for shadowing between lifetimes and loop labels in function bodies.
Note: this Warns rather than error on shadowing problems involving labels.
We took this more conservative option mostly due to issues with
hygiene being broken for labels and/or lifetimes.

Add FIXME regarding non-hygienic comparison.
2015-04-21 18:09:41 +02:00
Simon Sapin
19cc9435d9 write_char is unlikely to make it for 1.0, it’ll be 1.1 2015-04-21 18:06:00 +02:00
Tamir Duberstein
71bc70ea1b Remove references to old_{path,io} 2015-04-21 08:16:03 -07:00
Tamir Duberstein
fe7f95fb3c Remove dead test
This was moved to https://github.com/rust-lang/term/issues/12
2015-04-21 08:16:02 -07:00
Tamir Duberstein
32e5f4948f Remove unused files
Looks like these were missed in bf4e77d.
2015-04-21 08:16:02 -07:00
Young Wu
7a0df61ab1 add TCP_* consts for linux 2015-04-21 22:42:34 +08:00
bors
7397bdc9c5 Auto merge of #24620 - pczarn:model-lexer-issues, r=cmr
Fixes #15679
Fixes #15878
Fixes #15882
Closes #15883
2015-04-21 14:37:53 +00:00
Tamir Duberstein
ba276adab5 LLVM < 3.5 is unsupported since bb18a3c 2015-04-21 07:20:48 -07:00
Simon Sapin
265a7cc3bd Add a write_char method to std::fmt::Write
as accepted in [RFC 526](https://github.com/rust-lang/rfcs/blob/master/text/0526-fmt-text-writer.md).
2015-04-21 14:51:28 +02:00
Steve Klabnik
9cc0af8d69 Refocus unsafe code chapter on unsafe itself. 2015-04-21 08:28:06 -04:00
bors
77acda1c8e Auto merge of #24598 - lfairy:impl-debug-for-file, r=alexcrichton
This patch adds a `Debug` impl for `std::fs::File`.

On all platforms (Unix and Windows) it shows the file descriptor.

On Linux, it displays the path and access mode as well.

Ideally we should show the path/mode for all platforms, not just Linux,
but this will do for now.

cc #24570
2015-04-21 11:46:15 +00:00
Piotr Czarnecki
13bc8afa4b Model lexer: Fix remaining issues 2015-04-21 12:02:12 +02:00
P1start
7d2231aa22 Change a few error messages to give code suggestions
PR #24242 added the ability to the compiler to directly give suggestions about
how to modify code to fix an error. The new errors look like this:

    foobar.rs:5:12: 5:25 error: expected a path on the left-hand side of `+`,
                                not `&'static Copy` [E0178]
    foobar.rs:5     let x: &'static Copy + 'static;
                           ^~~~~~~~~~~~~
    foobar.rs:5:12: 5:35 help: try adding parentheses (per RFC 438):
    foobar.rs:      let x: &'static (Copy + 'static);

    foobar.rs:2:13: 2:23 error: cast to unsized type: `&_` as `core::marker::Copy`
    foobar.rs:2     let x = &1 as Copy;
                            ^~~~~~~~~~
    foobar.rs:2:19: 2:23 help: try casting to a reference instead:
    foobar.rs:      let x = &1 as &Copy;

    foobar.rs:7:24: 7:25 error: expected expression, found `;`
    foobar.rs:7     let x = box (1 + 1);
                                       ^
    foobar.rs:7:13: 7:16 help: try using `box()` instead:
    foobar.rs:      let x = box() (1 + 1);

This also modifies compiletest to give the ability to directly test suggestions
given by error messages.
2015-04-21 21:13:42 +12:00
bors
3860240b0e Auto merge of #24646 - brson:stab, r=alexcrichton 2015-04-21 07:24:09 +00:00
Nick Hamann
ba4d55d130 Separate code into two code blocks 2015-04-21 01:15:51 -05:00
Chris Wong
1131bc0a0f Implement Debug for File
This patch adds a `Debug` impl for `std::fs::File`.

On all platforms (Unix and Windows) it shows the file descriptor.

On Linux, it displays the path and access mode as well.

Ideally we should show the path/mode for all platforms, not just Linux,
but this will do for now.

cc #24570
2015-04-21 17:13:36 +12:00
mdinger
dc596695c9 Fix typos 2015-04-21 01:05:26 -04:00
Nick Hamann
e178495a5e Address some nits 2015-04-20 21:01:13 -05:00
Nick Hamann
db2f308a46 Add two examples for Path::new 2015-04-20 20:45:02 -05:00
bors
21c48c3e82 Auto merge of #24648 - steveklabnik:rollup, r=steveklabnik
- Successful merges: #24514, #24516, #24571, #24577, #24625, #24627, #24628, #24629, #24630, #24631, #24632, #24642, #24643, #24647
- Failed merges: #24640
2015-04-21 01:18:15 +00:00
Steve Klabnik
9ddcc38b6e Refocus unsafe code chapter on unsafe itself. 2015-04-20 21:17:46 -04:00
Steve Klabnik
550c8d87a7 Rollup merge of #24647 - mbrubeck:doc-edit, r=steveklabnik
None
2015-04-20 21:15:55 -04:00
Steve Klabnik
1d082de2d9 Rollup merge of #24643 - steveklabnik:doc_if_let, r=jakub-
and while let
2015-04-20 21:15:54 -04:00
Steve Klabnik
d09a0cda3a Rollup merge of #24642 - tshepang:why-be-negative, r=huonw 2015-04-20 21:15:54 -04:00
Steve Klabnik
52ec8bdf73 Rollup merge of #24632 - steveklabnik:casting_guide, r=alexcrichton
Due to documenting `transmute`, addresses part of #12905
2015-04-20 21:15:54 -04:00
Steve Klabnik
9f87362308 Rollup merge of #24631 - steveklabnik:unsafe_guide, r=alexcrichton
Many unsafe features are now in the unstable section, so this section is
really just about raw pointers now. That also makes sense for its place
in the TOC.

This addresses part of #12905.
2015-04-20 21:15:54 -04:00
Steve Klabnik
05ee6f0709 Rollup merge of #24630 - steveklabnik:quickfix, r=alexcrichton 2015-04-20 21:15:53 -04:00
Steve Klabnik
77fee7db49 Rollup merge of #24629 - steveklabnik:gh24511, r=alexcrichton
Without the `box` keyword, one of these two reasons is not correct, so
let's just eliminate this section and elaborate on the reason for the
legit use case inline.

Fixes #24511
2015-04-20 21:15:53 -04:00
Steve Klabnik
5de4e87f27 Rollup merge of #24628 - steveklabnik:gh24173, r=alexcrichton
Fixes #24173 

These docs could all use examples, so for now, let's just remove the bad one, and when I go over this whole module I'll put in better ones.
2015-04-20 21:15:53 -04:00
Steve Klabnik
417ff8a404 Rollup merge of #24627 - steveklabnik:gh24008, r=alexcrichton
Fixes #24008.
2015-04-20 21:15:53 -04:00
Steve Klabnik
3e8d099648 Rollup merge of #24625 - frewsxcv:patch-16, r=steveklabnik
As far as I can tell, this conversion to integer to floating point does not need to happen and is beside the point
2015-04-20 21:15:53 -04:00
Steve Klabnik
81b603e7a5 Rollup merge of #24577 - steveklabnik:gh24573, r=alexcrichton
Fixes #24573
2015-04-20 21:15:52 -04:00
Steve Klabnik
ff12b7b308 Rollup merge of #24571 - steveklabnik:editing, r=alexcrichton
A bunch of chapters, fixes an issue or two as well.

r? @alexcrichton
2015-04-20 21:15:52 -04:00
Steve Klabnik
de13f95f21 Rollup merge of #24516 - steveklabnik:gh22621, r=alexcrichton
Fixes #22621
2015-04-20 21:15:52 -04:00
Steve Klabnik
75998b569a Rollup merge of #24514 - krzysz00:no-warnings-in-liballoc, r=alexcrichton
When `liballoc` is compiled with `--cfg feature=\"external_features\"`, several `improper_ctypes` warnings are generated. Since these warnings are harmless, I have added a directive to suppress them.
2015-04-20 21:15:52 -04:00
Matt Brubeck
d8943e1fa3 Update reference to old_io in fmt docs 2015-04-20 17:51:56 -07:00
Brian Anderson
bb407b1e9d Make stability attributes an error. #22830 2015-04-20 17:33:31 -07:00
Steve Klabnik
570b250b8f TRPL: if let
and while let
2015-04-20 19:48:24 -04:00
Tshepang Lekhonkhobe
298a6e6657 lint: explain the non-obvious need for a negative test 2015-04-20 23:11:58 +02:00
bors
f46c4e158d Auto merge of #24606 - bombless:doc-result, r=alexcrichton
Get rid of the confusion that what does "custom" mean in this context.
2015-04-20 18:43:34 +00:00
Steve Klabnik
1e29abec59 Add common macros to TRPL
Fixes #22621
2015-04-20 14:40:54 -04:00
Steve Klabnik
1150fb0f88 TRPL: unsafe -> raw pointers
Many unsafe features are now in the unstable section, so this section is
really just about raw pointers now. That also makes sense for its place
in the TOC.

This addresses part of #12905.
2015-04-20 13:38:05 -04:00
Steve Klabnik
0f20c9d8b7 Remove feature gated examples from the reference.
The slice patterns example was nice, so let's put it with the other
slice pattern feature gate documentation.

Fixes #24573
2015-04-20 13:33:57 -04:00
Steve Klabnik
9a65045611 TRPL: casting
Due to documenting `transmute`, addresses part of #12905
2015-04-20 11:55:29 -04:00