Commit Graph

39270 Commits

Author SHA1 Message Date
bors
84254948c2 Auto merge of #25880 - nikomatsakis:const-fn-feature-gate-calls, r=alexcrichton
The previous feature gate assumed we would not define any (stable) const fns. But then @eddyb went and cleaned up the code. So this now extends the feature-gate to prohibit calls; but calls inside of macros are considered ok.

r? @alexcrichton
2015-05-29 17:38:40 +00:00
Steve Klabnik
5e941877fe Add syntax for multiple lifetimes
Fixes #25417
2015-05-29 12:52:02 -04:00
Steve Klabnik
b218470b4d Make note about $ more prominent.
Fixes #25554
2015-05-29 12:20:32 -04:00
Niko Matsakis
808b411244 New tests for cross-crate usages of const fn and so forth 2015-05-29 11:52:59 -04:00
Steven Fackler
494901a8b4 Fix windows recvfrom definition 2015-05-29 08:32:22 -07:00
Steven Fackler
39abcef0a7 Skip timeout upper bound check on windows 2015-05-29 08:32:22 -07:00
bors
2d447e40e2 Auto merge of #25857 - killercup:patch-14, r=steveklabnik
Thanks to @cers who reported this in killercup/trpl-ebook#14!

r? @steveklabnik
2015-05-29 14:53:59 +00:00
Niko Matsakis
2c5e784d6f add const_fn features 2015-05-29 09:42:54 -04:00
Niko Matsakis
1f29fd4eb0 add a test for const fn methods, as suggested by @pnkfelix 2015-05-29 09:42:54 -04:00
Niko Matsakis
57c75b6b10 permit const-fn in macro expansions 2015-05-29 09:42:54 -04:00
Niko Matsakis
710270d9c0 Add feature-gate to calling const fn 2015-05-29 09:42:53 -04:00
bors
2de64ef305 Auto merge of #25760 - Ms2ger:tagged_docs, r=Manishearth 2015-05-29 13:19:46 +00:00
bors
3a433b968b Auto merge of #25854 - liigo:patch-1, r=alexcrichton 2015-05-29 11:46:08 +00:00
bors
db1c761b7e Auto merge of #25838 - mbrubeck:doc-edit, r=steveklabnik
Fixes #25622. r? @steveklabnik
2015-05-29 10:13:05 +00:00
Tshepang Lekhonkhobe
deb4948395 remove the last mention of IoResult 2015-05-29 10:58:39 +02:00
bors
b9eb606801 Auto merge of #25830 - steveklabnik:debug_docs, r=alexcrichton 2015-05-29 08:40:20 +00:00
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
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
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
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
Manish Goregaokar
aec0a4ba83 Rollup merge of #25806 - nrc:20184-msg, r=alexcrichton
Closes #20184
2015-05-28 01:12:30 +05:30
Matt Brubeck
6c2b340fdc Improve docs for Vec::as_slice and as_mut_slice
Fixes #25622.
2015-05-27 12:37:29 -07:00
Manish Goregaokar
db1914ef7e Rollup merge of #25726 - nham:cell_docs, r=alexcrichton
Currently part of the description of the `into_inner` method of `UnsafeCell` seems backwards.
2015-05-28 00:35:20 +05:30
Manish Goregaokar
04016171ca Rollup merge of #25668 - steveklabnik:doc_const, r=alexcrichton 2015-05-28 00:35:20 +05:30
Manish Goregaokar
689e94b422 Rollup merge of #25128 - steveklabnik:gh24816, r=alexcrichton
Fixes #24816

r? @alexcrichton
2015-05-28 00:35:19 +05:30
Steve Klabnik
4db7e56b01 Small wording fix in TRPL: lifetimes
Fixes #25438
2015-05-27 15:02:42 -04:00
Steve Klabnik
62e5dee1c5 fix example for E0018
Fixes #25326
2015-05-27 14:51:58 -04:00
Ariel Ben-Yehuda
699fc80780 Address review comments 2015-05-27 20:42:42 +03:00
Ariel Ben-Yehuda
c68e65251c test fixes 2015-05-27 20:31:56 +03:00
Alex Crichton
279ec9b9b8 test: Join child threads on windows in tests
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-27 09:15:19 -07:00
bors
efcc1d1bcb Auto merge of #25797 - eddyb:const-trait-to-trait, r=luqmana
Fixes #24644.
2015-05-27 12:37:56 +00:00
bors
f56782ab9c Auto merge of #25762 - dotdash:codegen_test, r=alexcrichton
The current codegen tests only compare IR line counts between similar
rust and C programs, the latter getting compiled with clang. That looked
like a good idea back then, but actually things like lifetime intrinsics
mean that less IR isn't always better, so the metric isn't really
helpful.

Instead, we can start doing tests that check specific aspects of the
generated IR, like attributes or metadata. To do that, we can use LLVM's
FileCheck tool which has a number of useful features for such tests.

To start off, I created some tests for a few things that were recently
added and/or broken.
2015-05-27 10:21:11 +00:00
Björn Steinbrink
677367599e Revamp codegen tests to check IR quality instead of quantity
The current codegen tests only compare IR line counts between similar
rust and C programs, the latter getting compiled with clang. That looked
like a good idea back then, but actually things like lifetime intrinsics
mean that less IR isn't always better, so the metric isn't really
helpful.

Instead, we can start doing tests that check specific aspects of the
generated IR, like attributes or metadata. To do that, we can use LLVM's
FileCheck tool which has a number of useful features for such tests.

To start off, I created some tests for a few things that were recently
added and/or broken.
2015-05-27 12:08:31 +02:00
Johannes Oertel
c40866785f Remove build date from the output of --version
Closes #25812.
2015-05-27 11:28:41 +02:00
bors
eb16ad6e71 Auto merge of #25790 - eddyb:oh-snap-ctfe-arrived, r=alexcrichton 2015-05-27 08:47:53 +00:00
Eduard Burtescu
377b0900ae Use const fn to abstract away the contents of UnsafeCell & friends. 2015-05-27 11:19:03 +03:00
Eduard Burtescu
6e8e4f847c Remove #[cfg(stage0)] items. 2015-05-27 11:19:02 +03:00
Eduard Burtescu
07503dfb8b Register snapshots (2015-05-24 ba0e1cd). 2015-05-27 11:19:02 +03:00
bors
a2cf2c66e0 Auto merge of #25791 - barosl:use-paths-as-items, r=alexcrichton
Currently, for `use` declarations with multiple paths, only the `use` item itself is saved in the AST map, not the individual path nodes. This can lead to a problem when a span of a specific path node is needed.

For example, #24818 caused an ICE because of this, in `ImportResolver::check_for_conflicting_import()`.

Fixes #25763.
2015-05-27 07:14:45 +00:00
bors
5a2c766cdd Auto merge of #25749 - richo:python3, r=alexcrichton
This is enough to make `make tidy` work if you're using python3

There's definitely more stuff to do, but PR'ing now to avoid bitrot
2015-05-27 05:24:36 +00:00
bors
a97b3ff16f Auto merge of #25741 - richo:backtrace-message, r=alexcrichton
The second commit seems reasonable to me but I can remove if it's contentious. The first is purely cosmetic but has been irking me for ages.
2015-05-27 02:15:44 +00:00
bors
e4c64a1499 Auto merge of #25713 - Stebalien:pattern, r=alexcrichton
Needed to support:

```rust
match X {
  pattern if Y ...
}

for pattern in Y {}
```

IMO, this shouldn't require an RFC because it can't interfere with any future language changes (because `pattern if` and `pattern in` are already legal in rust) and can't cause any ambiguity.
2015-05-27 00:42:55 +00:00
bors
fe85342ef6 Auto merge of #25688 - nham:E0055_E0192, r=alexcrichton
- Adds explanations for E0055, E0089, E0192, E0261-E0263, E0318
 - Improves explanations for E0250, E0368, E0372.
 - Converts 15 diagnostics to have error codes (E0380-E0394). Adds an explanation for E0380.
 - The E0087-E0090 messages currently look like "expected {} parameter(s) found {} parameter(s)". This changes them to either use "parameter" or "parameters", based on the number.

This is, in part, more progress towards #24407
2015-05-26 23:10:06 +00:00
Steve Klabnik
577bbaceb9 Add note about filesystems to fs::rename
Fixes #24816
2015-05-26 19:02:24 -04:00
Nick Cameron
ff68204880 Add a WONTFIX message to a failing test.
Closes #20184
2015-05-27 10:16:49 +12:00
Johannes Oertel
909cbbeda8 Enable colored test output when capturing output of tests
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-26 23:51:13 +02:00
bors
cccc137b88 Auto merge of #25675 - bluss:rustdoc-assoc-types-index, r=alexcrichton
rustdoc: Associated type fixes

The first commit fixes a bug with "dud" items in the search index from
misrepresented `type` items in trait impl blocks.

For a trait *implementation* there are typedefs which are the types for
that particular trait and implementor. Skip these in the search index.

There were lots of dud items in the search index due to this (search for
Item, Iterator's associated type).

Add a boolean to clean::TypedefItem so that it tracks whether the it is
a type alias on its own, or if it's a `type` item in a trait impl.

The second commit fixes a bug that made signatures and where bounds
using associated types (if they were not on `Self`) incorrect.

The third commit fixes so that where clauses in type alias definititons
are shown.

Fixes #22442
Fixes #24417
Fixes #25769
2015-05-26 21:36:57 +00:00
Nick Hamann
570a043576 Convert 15 diagnostics to have error codes (E0380-E0394).
Also adds explanations for E0380 and E0381.
2015-05-26 15:12:52 -05:00
Nick Hamann
fbef978fd7 Pluralize E0087-E0090 messages based on number of parameters. 2015-05-26 15:12:52 -05:00
Nick Hamann
d8d4a6a842 Fix typo. 2015-05-26 15:12:52 -05:00
Nick Hamann
efb5a85e59 Small improvements for explanations of E0250, E0368, E0372. 2015-05-26 15:12:52 -05:00
Nick Hamann
b593359f7f Add error explanations for E0055, E0089, E0192, E0261, E0262, E0263, E0318. 2015-05-26 15:12:52 -05:00
bors
1742a01f8d Auto merge of #24657 - aochagavia:rustdoc, r=alexcrichton
Fixes #24575 
Fixes #25673 

r? @alexcrichton
2015-05-26 20:04:09 +00:00
Richo Healey
96d7400b1a etc: use codecs in featureck
this asserts that source is valid utf8 on both python3 and python2
2015-05-26 12:11:46 -07:00
bors
6a003abc37 Auto merge of #25593 - nham:E0210_E0326, r=alexcrichton
Changes:

 - adds explanations for E0185, E0186, E0202, E0326
 - fixes the explanation for E0053. The previous description was too narrow; there are other error cases.
 - changes the error message for E0202 to be specific for associated types, since it seems inherent associated constants are implemented.

Part of #24407
2015-05-26 18:30:42 +00:00
Ariel Ben-Yehuda
65a3245319 Add tests for fixed issues
Fixes #23037.
Fixes #25339.
2015-05-26 20:01:20 +03:00
bors
0ea80faae8 Auto merge of #25091 - quantheory:trait_associated_const_fixes, r=nikomatsakis
Closes #25046 (by rejecting the code that causes the ICE) and #24946. I haven't been able to deal with the array size or recursion issues yet for associated consts, though my hope was that the change I made for range match patterns might help with array sizes, too.

This PR is pretty much orthogonal to #25065.
2015-05-26 16:58:07 +00:00
Steve Klabnik
04c7b82c19 Document std::env::const values 2015-05-26 12:22:28 -04:00
Eduard Burtescu
d957e04d01 Do not trip an assert when coercing &Trait to &Trait in constants.
Fixes #24644.
2015-05-26 17:57:50 +03:00
Ariel Ben-Yehuda
ae10e478eb Implement defaults for associated types 2015-05-26 17:22:29 +03:00
Alex Crichton
fa0834d630 rustc_back: Don't pass 'u' to ar invocations
This flag indicates that when files are being replaced or added to archives (the
`r` flag) that the new file should not be inserted if it is not newer than the
file that already exists in the archive. The compiler never actually has a use
case of *not* wanting to insert a file because it already exists, and this
causes rlibs to not be updated in some cases when the compiler was re-run too
quickly.

Closes #18913
2015-05-26 07:06:31 -07:00
bors
c654a07d29 Auto merge of #25785 - arielb1:cleanup-201505, r=eddyb
The caching essentially eliminates "stability checking" time (my attempt to clean-up junk got tangled up with stability, so I added the caching while I was at it).

r? @eddyb
2015-05-26 12:15:30 +00:00
bors
8a872943ff Auto merge of #25778 - econoplas:master, r=pnkfelix
A regression was introduced by commit 7b1916d253 #25612.  Negative signed integer literals less than -9223372036854775808i64 were no longer properly reported as #[warn(overflowing_literals)].

Also adding missing test cases to test/compile-fail/lint-type-overflow.rs which could have detected the regression.

Further explanation:

The expression `(negative && v > max as u64 + 1)` relies on the fact that algebraically speaking `-min == max + 1` to avoid negation and removing the need for `min` completely.

If i128 or i256 are ever added, it should also work for these types without requiring a change to `min != i64::MIN &&` also simplifying maintenance.

r? @pnkfelix
2015-05-26 09:49:36 +00:00
Ariel Ben-Yehuda
0ec3183df8 Remove ObjectCastMap 2015-05-26 12:33:53 +03:00
Ariel Ben-Yehuda
f4ee40ead2 Use lookup_locally_or_in_crate_store more often 2015-05-26 12:33:53 +03:00
Barosl Lee
0ae30e608c Associate each path in a use declaration with the item in the AST map
Currently, for `use` declarations with multiple paths, only the `use`
item itself is saved in the AST map, not the individual path nodes. This
can lead to a problem when a span of a specific path node is needed.

For example, #24818 caused an ICE because of this, in
`ImportResolver::check_for_conflicting_import()`.

Fixes #25763.
2015-05-26 17:42:56 +09:00
Ariel Ben-Yehuda
c7711002bb Make caching in stability work. This improves stability check performance
by 90%.
2015-05-26 11:38:56 +03:00
Ariel Ben-Yehuda
014bf0df34 Clean-up some junk 2015-05-26 11:38:56 +03:00
Max Jacobson
16334e508e Add a missing space to the Glossary page of TRPL
r? @steveklabnik
2015-05-25 22:40:07 -04:00
bors
7cb9914fce Auto merge of #25767 - mystor:patch-1, r=Gankro
By the same logic that `mem::forget` is safe, `boxed::into_raw` is actually a safe function.

Fixes #25755.
2015-05-25 23:02:52 +00:00
bors
cc156c2f38 Auto merge of #25771 - killercup:trpl/cleanup-markdown-links, r=steveklabnik
In all other places the IDs of link references are without spaces (and explicitly set).

These are just some cleanups I did for the PDF version.

r? @steveklabnik
2015-05-25 21:28:51 +00:00
Ulrik Sverdrup
06304ed522 rustdoc: Show where clauses in type aliases
Yes, it's allowed. Example:

    type MapFn<I, B> where I: Iterator = Map<I, fn(I::Item) -> B>;

Fixes #25769
2015-05-25 23:10:36 +02:00
bors
1d0002887e Auto merge of #25698 - mdinger:flat_map, r=steveklabnik
I'm not sure why `core` is on but it's blocking the playpen. Doesn't seem to be needed but I'm not sure. It's not on the playpen template and playpen works on release and nightly.

Seems easier to understand without `take()`.
2015-05-25 19:52:45 +00:00
Michael Layzell
d416fc1d40 Remove unsafe block around boxed::into_raw() as it is now safe 2015-05-25 14:44:22 -04:00
bors
6770253c67 Auto merge of #25742 - thombles:tk/StringCoercion, r=steveklabnik
A few of us [over on the forum](https://users.rust-lang.org/t/string-type-coercion-in-rust/1439) have been tripped up by this distinction, which I don't think is mentioned. It's kind of logical if you read the "Deref coercions" page and squint a bit but I think it would be nice to explain it directly. Here's one way we could clarify it.
2015-05-25 18:18:11 +00:00
Ulrik Sverdrup
d1cd689b48 rustdoc: Fix associated types in signatures
Functions such as `fn foo<I: Iterator>(x: I::Item)` would not
render correctly and displayed `I` instead of `I::Item`. Same thing
with `I::Item` appearing in where bounds.

This fixes the bug by using paths for generics.

Fixes #24417
2015-05-25 19:06:58 +02:00
bors
45001c0ef8 Auto merge of #25773 - dotdash:deref_dst, r=eddyb
Fat pointers aren't immediate, so in a datum, they're not actually
ByValue but ByRef.

Fixes #24589
2015-05-25 15:54:39 +00:00
Björn Steinbrink
efd3e75503 Fix auto_ref for fat pointers
Fat pointers aren't immediate, so in a datum, they're not actually
ByValue but ByRef.

Fixes #24589
2015-05-25 17:25:41 +02:00
econoplas
43502adf07 - Fix regression of literal out of range check for negative i64 values which was introduced by commit 7b1916d253.
- Add missing test cases to test/compile-fail/lint-type-overflow.rs which would have detected the regression.
2015-05-25 07:42:16 -06:00
Adolfo Ochagavía
87038831f1 Rustdoc: ignore deref-inherited static methods
Fixes #24575
2015-05-25 15:35:10 +02:00
Pascal Hertleif
6bb56b4fa7 TRPL: Clean up some Markdown links
In all other places the IDs of link references are without spaces (and
explicitly set).
2015-05-25 15:10:50 +02:00
Björn Steinbrink
8527c7f43b Fix transmutes with boolean source values
Fixes #25746
2015-05-25 13:08:31 +02:00
Björn Steinbrink
860448f070 Fix interchanged names of to_arg_ty and from_arg_ty 2015-05-25 12:58:19 +02:00
Thomas Karpiniec
2b3354cbf8 book: add no_run and use statement to strings no-coercion example 2015-05-25 18:38:17 +10:00
bors
2bc0bf2586 Auto merge of #25764 - tshepang:typo, r=steveklabnik 2015-05-25 05:19:11 +00:00
bors
e9005fb43e Auto merge of #25761 - ralexstokes:master, r=steveklabnik
Typo in explanation of difference between stack and heap values.  

`baz` is called at the end of a call to `bar` inside another call to `foo`.  `baz` takes a copy of the value `e` which should have a value of 9 if following the rest of the stack trace.

This PR fixes this typo and should close #25635.
2015-05-25 03:40:31 +00:00
bors
0d64659c30 Auto merge of #25736 - tshepang:path-nits, r=steveklabnik 2015-05-25 01:56:48 +00:00
Michael Layzell
04ab4a3471 Mark boxed::into_raw as safe
By the same logic that `mem::forget` is safe, `boxed::into_raw` is actually a safe function. Fixes #25755.
2015-05-24 21:45:29 -04:00
bors
7c4eedc21e Auto merge of #25756 - tshepang:needless-cloned, r=steveklabnik 2015-05-25 00:15:24 +00:00
Tshepang Lekhonkhobe
1bb16fcd5f doc: fix io::Write::write typo 2015-05-25 01:59:04 +02:00
bors
893e416933 Auto merge of #25758 - tshepang:add-cloned-example, r=Gankro 2015-05-24 22:42:00 +00:00
Tshepang Lekhonkhobe
2d5d6fbca4 doc: add example for Iterator::cloned() 2015-05-25 00:22:44 +02:00
Alex Stokes
c7f92018ac Fix typo in diagram demonstrating stack vs. heap values 2015-05-24 15:18:43 -07:00
Tshepang Lekhonkhobe
02b951f66c doc: cloned() and mut not needed 2015-05-24 22:55:34 +02:00
bors
820b1d8393 Auto merge of #25464 - zaeleus:trpl-riol, r=pnkfelix
r? @steveklabnik
2015-05-24 15:52:17 +00:00
Ms2ger
37dd4174d5 Return TaggedDocsIterator from reader::tagged_docs. 2015-05-24 17:30:42 +02:00
Ms2ger
8e039a887d Introduce TaggedDocsIterator and use it to implement reader::tagged_docs. 2015-05-24 17:30:42 +02:00
Richo Healey
d1082aa3a1 etc: work around utf8 text in rust sources on py3 in featureck 2015-05-24 05:42:10 -07:00
Richo Healey
4decc408dc etc: py3 compat for tidy.py 2015-05-24 05:42:10 -07:00
Richo Healey
93a02d3507 etc: py3 compat for featureck
Also rewrite most of the string formatting to be a bit more idiomatic
2015-05-24 05:42:10 -07:00
Richo Healey
9ecc5a95fc etc: py3 compat for errorck.py 2015-05-24 05:22:00 -07:00
Richo Healey
24bae2e300 etc: py3 compat for check-summary.py 2015-05-24 05:12:40 -07:00
Richo Healey
6bcdd9ed2c etc: Delete unused helper script 2015-05-24 05:08:53 -07:00
bors
ba0e1cd814 Auto merge of #25609 - nikomatsakis:const-fn, r=pnkfelix
This is a port of @eddyb's `const-fn` branch. I rebased it, tweaked a few things, and added tests as well as a feature gate. The set of tests is still pretty rudimentary, I'd appreciate suggestions on new tests to write. Also, a double-check that the feature-gate covers all necessary cases.

One question: currently, the feature-gate allows the *use* of const functions from stable code, just not the definition. This seems to fit our usual strategy, and implies that we might (perhaps) allow some constant functions in libstd someday, even before stabilizing const-fn, if we were willing to commit to the existence of const fns but found some details of their impl unsatisfactory.

r? @pnkfelix
2015-05-24 11:12:34 +00:00
bors
cc56c20ba4 Auto merge of #25168 - Manishearth:register_attr, r=eddyb
This lets plugin authors opt attributes out of the `custom_attribute`
and `unused_attribute` checks.


cc @thepowersgang
2015-05-24 09:38:26 +00:00
Simon Sapin
bbf8ba7c23 Implement Eq for Cell and RefCell.
`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.
2015-05-24 10:38:59 +02:00
Thomas Karpiniec
49597fcbf2 book: explanation that String -> &str coercion doesn't happen for &str traits 2015-05-24 13:54:05 +10:00
Richo Healey
1b3465cf9e driver: Only emit the RUST_BACKTRACE message if not present 2015-05-23 19:51:44 -07:00
bors
0c2642a571 Auto merge of #25666 - tshepang:better-path-docs, r=steveklabnik 2015-05-23 22:07:58 +00:00
Tshepang Lekhonkhobe
462829cb13 doc: fix Windows test failure 2015-05-23 23:13:57 +02:00
Will Andrews
b5ad86f98a FreeBSD: Don't add -L/usr/local/lib{,/gcc4[46]}.
The first one in particular results in Rust not being able to build itself
if it is installed.  The latter two shouldn't be necessary, and should only
be included if they are actually going to be used.
2015-05-23 14:09:11 -06:00
Tshepang Lekhonkhobe
d59546d07d path: make this bit follow idiom 2015-05-23 19:51:52 +02:00
Tshepang Lekhonkhobe
d233c28e76 doc: missing words 2015-05-23 19:51:07 +02:00
bors
a33b808ac0 Auto merge of #25735 - oli-obk:rollup, r=steveklabnik
- Successful merges: #25681, #25687, #25695, #25697, #25702, #25703, #25709, #25710, #25714, #25715, #25716, #25722
- Failed merges:
2015-05-23 17:33:54 +00:00
Oliver Schneider
59820fcf61 Rollup merge of #25716 - steveklabnik:remove_bad_docs, r=Gankro 2015-05-23 19:03:20 +02:00
Oliver Schneider
962b132fe3 Rollup merge of #25715 - nero-luci:patch-1, r=steveklabnik
I consider that this version has a better reading fluency, instead of having a period between clauses
2015-05-23 19:03:19 +02:00
Oliver Schneider
0b70f27b64 Rollup merge of #25714 - brianquinlan:patch-1, r=huonw 2015-05-23 19:03:19 +02:00
Oliver Schneider
04fe212e1f Rollup merge of #25710 - Manishearth:no_decorator_clone, r=sfackler
fixes #25683

I have a very nonscientific measurement of the data via valgrind/massif [here](https://gist.github.com/Manishearth/4c47f15f6835cb3957c4)

I measured the memory usage for both --pretty=expanded and -Z no-trans

It *seems* like there's a 20-25MB decrease during expansion on stage2 librustc; but I'm not quite sure.

r? @eddyb

(have not yet run tests, but it compiles fine, might want to wait before giving r+)

cc @nrc @huon
2015-05-23 19:03:19 +02:00
Oliver Schneider
d5985d3036 Rollup merge of #25709 - MatejLach:stdlib_style, r=steveklabnik
Sounds better to me this way.
r @steveklabnik ?
2015-05-23 19:03:19 +02:00
Oliver Schneider
9aa88c99f7 Rollup merge of #25703 - eddyb:lazier-loads, r=pnkfelix
Reduces pre-trans heap baseline (tested on `fn main() {}`) from 1.2MB to 696kB.
Most of the remaining allocations are used by imported macros.
While it might be possible to also load macros lazily, doing so is non-trivial and this PR doesn't tackle that.
2015-05-23 19:03:19 +02:00
Oliver Schneider
d21f41ce6b Rollup merge of #25702 - killercup:rustdoc/search-primitives, r=Gankro
This minimally changes rustdoc's search as described in #25167.

Additionally, I also cleaned up some parts of the JS code.

There is one more change I made: After each result for a primitive type, I added "(Overview of primitive type)". This further differentiates the result from the module (previously, the only difference was that the module's link was blue). I'm not this is the way to go (this seems to be the only place where we do this) and it's no problem for me to remove that commit.

![std__str_-_rust](https://cloud.githubusercontent.com/assets/20063/7770589/67e8cb26-0090-11e5-8f99-c2a3af9fa37f.png)

cc @steveklabnik (it concerns docs) and @alexcrichton (who made changes to rustdoc previously)
2015-05-23 19:03:18 +02:00
Oliver Schneider
691c75a54f Rollup merge of #25695 - mbrubeck:reference, r=brson
r? @steveklabnik
2015-05-23 19:03:18 +02:00
Oliver Schneider
657efde2c6 Rollup merge of #25687 - tamird:num-self-cleanup, r=Gankro
Cleanup extracted from #25684. r? @alexcrichton
2015-05-23 19:03:18 +02:00
Oliver Schneider
0c74a73bd5 Rollup merge of #25681 - steveklabnik:gender, r=nmatsakis
Also, when checking for common gendered words elsewhere, I found one 'he', moved to 'they' as well.

https://github.com/rust-lang/rust/pull/25640#issuecomment-104304643
2015-05-23 19:03:18 +02:00
bors
4ee6820911 Auto merge of #25667 - lambda:rename-soft_link-to-symlink-landed-in-1.1, r=aturon
The change to split up soft_link to OS-specific symlink, symlink_file,
and symlink_dir didn't actually land in 1.0.0.  Update the stability and
deprecation attributes to correctly indicate that these changes happend
in 1.1.0.
2015-05-23 15:57:48 +00:00
bors
88e6976acf Auto merge of #25653 - dotdash:unsize_c, r=luqmana
Fixes #25581
2015-05-23 14:22:35 +00:00
bors
d11399039c Auto merge of #25632 - alexcrichton:dt-dir, r=brson
This "fast path" in `DirEntry::file_type` on Unix wasn't turning out to be so
much of a fast path as the `DT_DIR` case wasn't handled, so directories fell
back to using `lstat` instead. This commit adds the missing case to return
quickly if a path is a directory and `DirEntry::file_type` is used.
2015-05-23 12:47:16 +00:00
bors
4c2ebc3947 Auto merge of #25416 - kballard:ffi-cstr-to-str-convenience, r=alexcrichton
This was motivated by http://www.evanmiller.org/a-taste-of-rust.html.

A common problem when working with FFI right now is converting from raw
C strings into `&str` or `String`. Right now you're required to say
something like

    let cstr = unsafe { CStr::from_ptr(ptr) };
    let result = str::from_utf8(cstr.to_bytes());

This is slightly awkward, and is not particularly intuitive for people
who haven't used the ffi module before. We can do a bit better by
providing some convenience methods on CStr:

    fn to_str(&self) -> Result<&str, str::Utf8Error>
    fn to_string_lossy(&self) -> Cow<str>

This will make it immediately apparent to new users of CStr how to get a
string from a raw C string, so they can say:

    let s = unsafe { CStr::from_ptr(ptr).to_string_lossy() };
2015-05-23 11:12:02 +00:00
bors
8bc80ba9fc Auto merge of #24847 - sfackler:debug-builders-stability, r=aturon
The `debug_builders` feature is up for 1.1 stabilization in #24028. This commit stabilizes the API as-is with no changes.

Some nits that @alexcrichton mentioned that may be worth discussing now if anyone cares:

* Should `debug_tuple_struct` and `DebugTupleStruct` be used instead of `debug_tuple` and `DebugTuple`? It's more typing but is a technically more correct name.
* `DebugStruct` and `DebugTuple` have `field` methods while `DebugSet`, `DebugMap` and `DebugList` have `entry` methods. Should we switch those to something else for consistency?

cc @alexcrichton @aturon
2015-05-23 09:36:56 +00:00
Felix S Klock II
38a97becdf Merge pull request #25706 from pnkfelix/remove-diagnostics-gen-and-check
Remove error diagnostics uniqueness check and .json generation.
2015-05-23 07:50:46 +02:00
mdinger
5b443b204e Simplify flat_map example 2015-05-22 21:37:11 -04:00
Nick Hamann
0d80b2a041 docs: Improve descriptions for some methods in core::cell. 2015-05-22 19:32:02 -05:00
Pascal Hertleif
ec60d9f20c Rustdoc Search: Add Hint to Primitive Type Result
Closes #25167
2015-05-22 22:18:27 +02:00
Steve Klabnik
0b1976c2c2 Don't mention outdated methods 2015-05-22 15:24:56 -04:00
Cornel Punga
18dfa80985 Update guessing-game.md
I consider that this version has a better reading fluency, instead of having a period between clauses
2015-05-22 21:55:50 +03:00
Kevin Ballard
d0b5eb35a2 Add some convenience methods to go from CStr -> str
A common problem when working with FFI right now is converting from raw
C strings into `&str` or `String`. Right now you're required to say
something like

    let cstr = unsafe { CStr::from_ptr(ptr) };
    let result = str::from_utf8(cstr.to_bytes());

This is slightly awkward, and is not particularly intuitive for people
who haven't used the ffi module before. We can do a bit better by
providing some convenience methods on CStr:

    fn to_str(&self) -> Result<&str, str::Utf8Error>
    fn to_string_lossy(&self) -> Cow<str>

This will make it immediately apparent to new users of CStr how to get a
string from a raw C string, so they can say:

    let s = unsafe { CStr::from_ptr(ptr).to_string_lossy() };
2015-05-22 11:46:46 -07:00
Brian Quinlan
7389b0abc2 Make it clear that push is only amortized O(1) 2015-05-22 10:26:18 -07:00
Steven Allen
f21655ec02 Allow patterns to be followed by if and in.
Needed to support:

match X {
  pattern if Y ...
}

for pattern in Y {}
2015-05-22 12:47:52 -04:00
Matej Ľach
e790db7518 better describe the stdlib 2015-05-22 16:42:57 +01:00
Manish Goregaokar
6bc5a92484 Let MultiItemDecorator take &Annotatable (fixes #25683) 2015-05-22 21:10:27 +05:30
Felix S. Klock II
deaa1172cf Remove error diagnostics uniqueness check and .json generation.
This is meant to be a temporary measure to get the builds to be
reliable again; see also Issue #25705.
2015-05-22 15:40:12 +02:00
Eduard Burtescu
5dc03a8246 Lazy-load filemaps from external crates. 2015-05-22 16:15:21 +03:00
Niko Matsakis
82ded3cd03 Two more small fixes. 2015-05-22 08:45:05 -04:00
Pascal Hertleif
94b6ddc37c Rustdoc Search: Increase Relevance of Primitives 2015-05-22 14:15:35 +02:00
Pascal Hertleif
a713867c74 Rustdoc: Clean Up Some JS
There are more possible optimizations left (cached length in loops) as
well as some possible bugs (shadowed variables) to fix. This is mostly
syntactic.
2015-05-22 14:14:28 +02:00
Sean Patrick Santos
8db699d18d Add diagnostic code for generic associated const error. 2015-05-21 21:12:49 -06:00
Matt Brubeck
54b1608b2d Document the debug_assertions cfg option 2015-05-21 16:34:26 -07:00
bors
c3d60aba6c Auto merge of #25669 - GuillaumeGomez:typo-fix, r=Manishearth
r? @steveklabnik
2015-05-21 19:41:18 +00:00
Tshepang Lekhonkhobe
5263d628b1 doc: miscellaneous improvements to std::path::Path examples 2015-05-21 21:31:38 +02:00
Guillaume Gomez
86a821e5d1 Replace "more later" by "later" 2015-05-21 20:30:15 +02:00
Tamir Duberstein
cf11c261f0 Standardize on $t:ty 2015-05-21 14:04:13 -04:00
Tamir Duberstein
3241b487fd Use Self to simplify 2015-05-21 14:01:44 -04:00
bors
7044f4a394 Auto merge of #25601 - ericye16:master, r=steveklabnik 2015-05-21 17:01:51 +00:00
Steve Klabnik
65ead717a7 she -> they in Dining Philosophers
Also, when checking for common gendered words elsewhere, I found one 'he', moved to 'they' as well.

https://github.com/rust-lang/rust/pull/25640#issuecomment-104304643
2015-05-21 11:53:45 -04:00
Niko Matsakis
df93deab10 Make various fixes:
- add feature gate
- add basic tests
- adjust parser to eliminate conflict between `const fn` and associated
constants
- allow `const fn` in traits/trait-impls, but forbid later in type check
- correct some merge conflicts
2015-05-21 11:47:30 -04:00
Eduard Burtescu
fb206bf34a rustc_trans: evaluate const fn function and method calls. 2015-05-21 11:47:30 -04:00
Eduard Burtescu
1bd420555e rustc: const-qualify const fn function and method calls. 2015-05-21 11:47:30 -04:00