Commit Graph

43228 Commits

Author SHA1 Message Date
bors
25fc917c65 Auto merge of #25747 - SimonSapin:map_ref, r=alexcrichton
For slightly complex data structures like `rustc_serialize::json::Json`, it is often convenient to have helper methods like `Json::as_string(&self) -> Option<&str>`  that return a borrow of some component of `&self`.

However, when `RefCell`s are involved, keeping a `Ref` around is required to hold a borrow to the insides of a `RefCell`. But `Ref` so far only references the entirety of the contents of a `RefCell`, not a component. But there is no reason it couldn’t: `Ref` internally contains just a data reference and a borrow count reference. The two can be dissociated.

This adds a `map_ref` function that creates a new `Ref` for some other data, but borrowing the same `RefCell` as an existing `Ref`.

Example:

```rust
struct RefCellJson(RefCell<Json>);

impl RefCellJson {
    fn as_string(&self) -> Option<Ref<str>> {
        map_ref(self.borrow(), |j| j.as_string())
    }
}
```

r? @alexcrichton
2015-05-29 07:07:07 +00:00
Simon Sapin
d0afa6ede3 Add map and filter_map associated functions to std::cell::Ref and RefMut
See design discussion in https://github.com/rust-lang/rust/pull/25747
2015-05-29 08:39:07 +02:00
bors
42a59aef71 Auto merge of #25832 - edunham:document-gh-issue-tags, r=alexcrichton
I took a guess at what they mean, but could be totally wrong. Please comment, and I'll update the PR with corrections!
2015-05-29 05:34:28 +00:00
Steven Fackler
69a0e1af95 Implement RFC 1047 - socket timeouts
Closes #25619
2015-05-28 20:03:20 -07:00
Nick Hamann
fdf3ce76cf Change E0015 and E0378 explanations to link to text of RFC 911, not rfc PR. 2015-05-28 21:12:46 -05:00
Nick Hamann
364035497c Revise E0015 according to feedback. 2015-05-28 21:02:13 -05:00
bors
99c2f779d2 Auto merge of #25816 - sfackler:io-error-delegation, r=alexcrichton
The first commit simply forwards `io::Error`'s `cause` implementation to the inner error.

The second commit adds accessor methods for the inner error. Method names mirror those used elsewhere like `BufReader`.

r? @alexcrichton
2015-05-29 01:09:48 +00:00
Nick Hamann
7e78e708fb Convert mutable statics error to have error code and add explanation.
Also changes 'owned pointers' => 'boxes' in the error message.
2015-05-28 19:28:07 -05:00
Alex Crichton
2627ae32f2 rustc: Fixup verbatim UNC paths as well on Windows
The compiler already has special support for fixing up verbatim paths with disks
on Windows to something that can be correctly passed down to gcc, and this
commit adds support for verbatim UNC paths as well.

Closes #25505
2015-05-28 16:49:42 -07:00
Nils Liberg
adac861db2 Fix link to newtypes page 2015-05-29 01:02:24 +02:00
Nils Liberg
d0744ba3e7 Fix mistake: "to to" -> "to" 2015-05-29 01:02:24 +02:00
David Campbell
31a007af19 remove extra space from "over" code as well 2015-05-29 01:02:24 +02:00
David Campbell
4d90b4d9b8 Update let.md -- follow whitespace style guideline
"Idiomatic code should not use extra whitespace in the middle of a line to provide alignment."
2015-05-29 01:02:24 +02:00
Corey Farwell
06706510cb Make adjancent code examples more similar 2015-05-29 01:02:24 +02:00
David Campbell
19cb2a7707 add newline before list in functions-and-methods
The current version of hoedown treats lists interrupting paragraphs in the Markdown.pl style rather than CommonMark, so a newline is needed for the list to be rendered properly.
2015-05-29 01:02:24 +02:00
edunham
177531e3d5 Document issue tracker tags
A discussion at https://github.com/rust-lang/rust/pull/25832 established what
the abbreviations mean.
2015-05-28 16:00:04 -07:00
Nick Hamann
eb15030dc1 Add error explanations for E0040, E0087, E0378, E0379, E0394. 2015-05-28 17:54:19 -05:00
Nick Hamann
f6074406db Update E0015 explanation, fix E0053. 2015-05-28 17:54:13 -05:00
Mathieu David
15aeea5477 Corrected typo
"workd" corrected to "world"
2015-05-29 00:43:39 +02:00
bors
53941be981 Auto merge of #25744 - SimonSapin:cell-eq, r=alexcrichton
`core::cell::Cell<T>` and `core::cell::RefCell<T>` currently implement `PartialEq` when `T` does, and just defer to comparing `T` values. There is no reason the same shouldn’t apply to `Eq`.

This enables `#[derive(Eq, PartialEq)]` on e.g. structs that have a `RefCell` field.

r? @alexcrichton 

I’m unsure what to do with `#[stable]` attributes on `impl`s. `impl`s generated by `#[derive]` don’t have them.
2015-05-28 21:48:40 +00:00
Mathieu David
15ab481322 removed lonely closing parenthesis
There was no opening parenthesis for this closing parenthesis...
2015-05-28 23:47:27 +02:00
Simon Sapin
c516eee503 Move std::cell::clone_ref to a clone associated function on std::cell::Ref
... and generalize the bounds on the value type.
2015-05-28 23:01:36 +02:00
bors
efebe45cc0 Auto merge of #25856 - bluss:binary-heap-hole, r=Gankro
collections: Make BinaryHeap panic safe in sift_up / sift_down

Use a struct called Hole that keeps track of an invalid location
in the vector and fills the hole on drop.

I include a run-pass test that the current BinaryHeap fails, and the new
one passes.

NOTE: The BinaryHeap will still be inconsistent after a comparison fails. It will
not have the heap property. What we fix is just that elements will be valid
values.

This is actually a performance win -- the new code does not bother to write in `zeroed()`
values in the holes, it just leaves them as they were.

Net result is something like a 5% decrease in runtime for `BinaryHeap::from_vec`. This
can be further improved by using unchecked indexing (I confirmed it makes a difference,
not a surprise with the non-sequential access going on), but let's leave that for another PR.
Safety first 😉 

Fixes #25842
2015-05-28 20:16:08 +00:00
Steve Klabnik
977d40fbfa Improve Debug documentation 2015-05-28 15:25:35 -04:00
Ulrik Sverdrup
5249cbb7fa collections: Make BinaryHeap panic safe in sift_up / sift_down
Use a struct called Hole that keeps track of an invalid location
in the vector and fills the hole on drop.

I include a run-pass test that the current BinaryHeap fails, and the new
one passes.

Fixes #25842
2015-05-28 20:24:47 +02:00
Steven Fackler
aebf331431 Mention UFCS sadness in instability messages 2015-05-28 10:34:40 -07:00
bors
621a10e7f3 Auto merge of #25829 - steveklabnik:ioresult_fixes, r=alexcrichton
This is now std::io::Result
2015-05-28 17:34:30 +00:00
Ms2ger
b700b37094 Return a TaggedDocsIterator from each_reexport. 2015-05-28 19:24:43 +02:00
Alex Crichton
1b5f9cb1f1 std: Add an option to disable ELF based TLS
This commit adds a ./configure option called `--disable-elf-tls` which disables
ELF based TLS (that which is communicated to LLVM) on platforms which already
support it. OSX 10.6 does not support this form of TLS, and some users of Rust
need to target 10.6 and are unable to do so due to the usage of TLS. The
standard library will continue to use ELF based TLS on OSX by default (as the
officially supported platform is 10.7+), but this adds an option to compile the
standard library in a way that is compatible with 10.6.
2015-05-28 10:14:42 -07:00
Steve Klabnik
16a47c2d91 remove references to IoResult
This is now std::io::Result
2015-05-28 12:51:01 -04:00
bors
9c303944a7 Auto merge of #25835 - steveklabnik:gh25438, r=alexcrichton
Fixes #25438
2015-05-28 15:29:15 +00:00
Pascal Hertleif
2a63cc7715 TRPL: Fix Unescaped URL 2015-05-28 16:18:26 +02:00
bors
a5a5fcee38 Auto merge of #25834 - steveklabnik:gh25326, r=alexcrichton
Fixes #25326
2015-05-28 13:57:36 +00:00
bors
4233cbda8a Auto merge of #25849 - reinh:patch-1, r=huonw
Thanks for the awesome book!

r? @steveklabnik
2015-05-28 11:24:38 +00:00
Liigo Zhuang
d061a0f8d5 floating-point types are machine types, not machine-dependent types 2015-05-28 18:11:32 +08:00
bors
4f66d881a5 Auto merge of #25843 - shepmaster:remove-public-int-and-uint, r=huonw 2015-05-28 09:20:49 +00:00
bors
448ce12bc1 Auto merge of #25783 - nrc:save-api-2, r=@huonw
A little more work on the save-analysis API.

r? @huonw
2015-05-28 06:54:57 +00:00
Steven Fackler
f65ba38cc4 Add a test for downcasting
Ergonomics are a bit crappy right now because method resolution isn't
smart enough to drop bounds, unfortunately.
2015-05-27 23:03:04 -07:00
Rein Henrichs
23ec00751e TRPL: fix typo, borow for borrow 2015-05-27 22:35:46 -07:00
Nick Cameron
b2c8719341 save-analysis: move another couple of things to the API 2015-05-28 17:25:50 +12:00
Steven Fackler
b529a7837b Add accessors for io::Error's inner error.
error::Error itself has downcasting methods, so there's no need to
duplicate those here.
2015-05-27 21:53:54 -07:00
Steven Fackler
4458b5a9d5 Delegate io::Error::cause to inner error 2015-05-27 21:53:54 -07:00
bors
6a3d55abf0 Auto merge of #25840 - arielb1:ptr-compare-fixes, r=nrc
Fixes #25826.
2015-05-28 03:51:58 +00:00
Alex Crichton
b8c59211ed mk: Fix MSVC bootstrapping itself
Now that MSVC support has landed in the most recent nightlies we can now have
MSVC bootstrap itself without going through a GNU compiler first. Unfortunately,
however, the bootstrap currently fails due to the compiler not being able to
find the llvm-ar.exe tool during the stage0 libcore compile. The compiler cannot
find this tool because it's looking inside a directory that does not exist:

    $SYSROOT/rustlib/x86_64-pc-windows-gnu/bin

The `gnu` on this triple is because the bootstrap compiler's host architecture
is GNU. The build system, however, only arranges for the llvm-ar.exe tool to be
available in this location:

    $SYSROOT/rustlib/x86_64-pc-windows-msvc/bin

To resolve this discrepancy, the build system has been modified to understand
triples that are bootstrapped from another triple, and in this case copy the
native tools to the right location.
2015-05-27 19:36:28 -07:00
bors
1a3cffbddf Auto merge of #25824 - alexcrichton:fix-deadlocking-test-on-windows, r=nikomatsakis
Windows tests can often deadlock if a child thread continues after the main
thread and then panics, and a `println!` executed in a child thread after the
main thread has exited is at risk of panicking.
2015-05-28 02:17:48 +00:00
Ariel Ben-Yehuda
080311d1f9 Prevent comparison and dereferencing of raw pointers in constexprs
Fixes #25826.
2015-05-28 03:22:44 +03:00
bors
f76d9bcfc2 Auto merge of #25805 - jooert:colorized_tests, r=alexcrichton
The output of individual tests can be captured now so it's safe to use
colorized output even when running tests in parallel. Closes #782.
2015-05-28 00:15:47 +00:00
Jake Goulding
a959cc435f Remove mentions of int / uint from public documentation 2015-05-27 19:26:18 -04:00
Jake Goulding
875d356245 Remove mentions of int / uint from the isize / usize docs 2015-05-27 19:16:00 -04:00
bors
f3819f063c Auto merge of #25796 - arielb1:default-assoc, r=eddyb
r? @eddyb

Fixes #19476.
2015-05-27 22:05:09 +00:00