Commit graph

7970 commits

Author SHA1 Message Date
Alex Burka
7eb7c56bd4 add indexing with RangeInclusive in libcore and libcollections 2016-02-27 02:01:41 -05:00
Alex Burka
b1b4f50678 add StepBy for RangeInclusive 2016-02-27 02:01:41 -05:00
Alex Burka
24cc90262b note work still to be done
In particular, uses of inclusive ranges within the standard library are
still waiting. Slices and collections can be sliced with `usize` and
`Range*<usize>`, but not yet `Range*Inclusive<usize>`.

Also, we need to figure out what to do about `RangeArgument`. Currently
it has `start()` and `end()` methods which are pretty much identical to
`Range::start` and `Range::end`. For the same reason as Range itself,
these methods can't express a range such as `0...255u8` without
overflow. The easiest choice, it seems to me, is either changing the
meaning of `end()` to be inclusive, or adding a new method, say
`last()`, that is inclusive and specifying that `end()` returns `None`
in cases where it would overflow. Changing the semantics would be a
breaking change, but `RangeArgument` is unstable so maybe we should do
it anyway.
2016-02-27 02:01:41 -05:00
Alex Burka
bd3197c748 remove range lang items
The range desugaring does not use the lang items. Hence I did not add
lang items for inclusive ranges. This cleanup commit removes the old
unused ones as well.

Whether the desugaring _should_ use lang items is another question:
see #30809. But if we decide on a strategy there we can add back these
lang items, and new ones for inclusive ranges.

For stage0 we need to keep the attributes as the lang items still exist
even if they are never used.

This is surprisingly not a breaking change. Unused #[lang] attributes do
not even trigger a lint (see #30881).
2016-02-27 02:01:41 -05:00
Alex Burka
c5d58de665 core: add inclusive ranges to core::ops
Since it removes the old iter::{range_inclusive, RangeInclusive} which
were unstable and deprecated, this is a [breaking-change] on nightly.
2016-02-27 02:01:41 -05:00
Ulrik Sverdrup
2d6496dd84 Use .copy_from_slice() where applicable
.copy_from_slice() does the same job of .clone_from_slice(), but the
former is explicitly for Copy elements and calls `memcpy` directly, and
thus is it efficient without optimization too.
2016-02-26 14:51:38 +01:00
bors
09130044ce Auto merge of #31834 - ubsan:copy_from_slice, r=alexcrichton
implements rust-lang/rfcs#1419

r? alexcrichton
2016-02-26 09:16:03 +00:00
Nicholas Mazzuca
e12b1f9424 Add unstable copy_from_slice 2016-02-25 21:20:41 -08:00
bors
304c790fc2 Auto merge of #31778 - aturon:snapshot, r=alexcrichton
r? @alexcrichton
2016-02-24 04:42:09 +00:00
Aaron Turon
a92ee0f664 Register new snapshots 2016-02-23 07:31:16 -08:00
bors
d3929b2c8a Auto merge of #30969 - Amanieu:extended_atomic_cmpxchg, r=alexcrichton
This is an implementation of rust-lang/rfcs#1443.
2016-02-22 19:10:13 +00:00
Michael Huynh
4d2a81617c Correct Iterator trait documentation
Fixes several minor spelling errors and includes a suggested style fix.
2016-02-22 22:02:40 +08:00
bors
a2fb48e9f7 Auto merge of #31761 - Amanieu:volatile, r=alexcrichton
Tracking issue: #31756
RFC: rust-lang/rfcs#1467

I've made these unstable for now. Should they be stabilized straight away since we've had plenty of experience with people using the unstable intrinsics?
2016-02-21 00:56:08 +00:00
bors
15611f75ca Auto merge of #31736 - bluss:write-char, r=alexcrichton
fmt: Make sure write_fmt's implementation can use write_char

It looks like the Adapter inside write_fmt was never updated to forward
the write_char method.
2016-02-19 08:04:11 +00:00
Amanieu d'Antras
b4b2a259cd Add compare_exchange and compare_exchange_weak to atomic types 2016-02-18 22:38:25 +00:00
Amanieu d'Antras
7ae4ee80d1 Implement read_volatile and write_volatile 2016-02-18 20:18:36 +00:00
Amanieu d'Antras
64ddcb33f4 Add intrinsics for compare_exchange and compare_exchange_weak 2016-02-18 19:07:05 +00:00
Ulrik Sverdrup
403fc4186e fmt: Make sure write_fmt's implementation can use write_char
It looks like the Adapter inside write_fmt was never updated to forward
the write_char method.
2016-02-17 22:26:44 +01:00
Corey Farwell
8f13f8752f Improve 'std::mem::transmute_copy' doc example.
Prior to this commit, it was a trivial example that did not demonstrate
the effects of using the function.

Fixes https://github.com/rust-lang/rust/issues/31094
2016-02-16 21:48:50 -05:00
bors
7a737d56e9 Auto merge of #31663 - nodakai:cleanup-uint_module, r=alexcrichton 2016-02-15 17:33:09 +00:00
NODA, Kai
e03cea40e8
libcore/num: Remove unused macro argument.
It is no longer necessary after dd0d495f50

Signed-off-by: NODA, Kai <nodakai@gmail.com>
2016-02-15 07:44:32 +08:00
Steve Klabnik
c244acceb4 Rollup merge of #31655 - ollie27:patch-4, r=steveklabnik
r? @steveklabnik
2016-02-14 18:02:32 -05:00
Steve Klabnik
c49edbc5ee Rollup merge of #31607 - steveklabnik:gh31599, r=brson
Fixes #31599
2016-02-14 18:02:32 -05:00
Oliver Middleton
9673ace339 Fix a couple of issues in from_utf8 docs 2016-02-14 18:38:37 +00:00
Oliver Middleton
bc8495abd8 Fix doc error for Utf8Error 2016-02-14 17:52:05 +00:00
Oliver Middleton
36c00f8107 Fix signed int checked_neg docs 2016-02-14 17:44:22 +00:00
Steve Klabnik
b499e5a089 Remove incorrect documentation
Fixes #31599
2016-02-14 08:21:32 -05:00
Manish Goregaokar
3c845fe869 Rollup merge of #31535 - Ketsuban:more-detail-in-wrapping-shift-documentation, r=steveklabnik
`wrapping_shl` and `wrapping_shr` are easy to mistake for rotations, when in fact they work somewhat differently. The documentation currently available is a little sparse and easy to misinterpret, so I've added a warning to anyone who bumps into them that the equivalent rotate methods may actually be what they're looking for.

If it's deemed useful to add a symmetrical mention to the documentation for the `rotate_left` and `rotate_right` methods, I can certainly have a go at that, but my gut feeling is that people likely to want a rotate will already know about the wrapping-arithmetic methods, for example from writing CPU simulators.
2016-02-14 05:06:32 +05:30
Alex Crichton
2581b14147 bootstrap: Add a bunch of Cargo.toml files
These describe the structure of all our crate dependencies.
2016-02-11 11:12:32 -08:00
bors
106070b905 Auto merge of #31479 - kamalmarhubi:fmt-pointer-unsized, r=alexcrichton
This allows printing pointers to unsized types with the {:p} formatting
directive. The following impls are extended to unsized types:
 - impl<'a, T: ?Sized> Pointer for &'a T
 - impl<'a, T: ?Sized> Pointer for &'a mut T
 - impl<T: ?Sized> Pointer for *const T
 - impl<T: ?Sized> Pointer for *mut T
 - impl<T: ?Sized> fmt::Pointer for Box<T>
 - impl<T: ?Sized> fmt::Pointer for Rc<T>
 - impl<T: ?Sized> fmt::Pointer for Arc<T>
2016-02-11 01:54:15 +00:00
Thomas Winwood
8d5dcf9ce5 Note rotate_{left,right} in wrapping_sh{lr} docs 2016-02-10 11:36:10 +00:00
Steve Klabnik
af1a0a3466 Rollup merge of #31520 - steveklabnik:doc_num, r=alexcrichton
This commit does two things:

* Re-works the module-level documentation.
* Cleaning up wording and adding links to where error types are used.

Part of #29364
2016-02-09 16:58:59 -05:00
Steve Klabnik
4c50d76298 Rollup merge of #31516 - steveklabnik:doc_tuples, r=brson
Fixes #29339
2016-02-09 16:58:59 -05:00
Steve Klabnik
6571ae28a8 Rollup merge of #31514 - cgar:spelling, r=alexcrichton 2016-02-09 16:58:59 -05:00
Steve Klabnik
4ebc47bad2 Properly document tuples
Fixes #29339
2016-02-09 16:00:50 -05:00
Steve Klabnik
dd0133d836 Some docs for std::num
This commit does two things:

* Re-works the module-level documentation.
* Cleaning up wording and adding links to where error types are used.

Part of #29364
2016-02-09 14:07:51 -05:00
Carlos E. Garcia
02aa0aff2f Minor spelling fixes 2016-02-09 11:52:39 -05:00
bors
fc1c1183f3 Auto merge of #31510 - dikaiosune:master, r=bluss
Since a lexicographic ordering of a struct could vary based on which struct members are compared first, I ended up doing some testing to ensure that the behavior when deriving these traits was what I expected (ordered based on the top to bottom order of declaration of the members). I wanted to add this little bit of documentation to potentially save someone else the same effort. That is, assuming that my testing correctly reflects the intended behavior of the compiler.

r? @steveklabnik
2016-02-09 15:14:25 +00:00
Adam Perry
e22770beeb Clarifying behavior of #[derive(Ord, PartialOrd)] in doc comments.
Removing redundant statement about lexicographic ordering.
2016-02-09 08:01:28 -07:00
Kamal Marhubi
c5f73ed80c Implement fmt::Pointer for pointers to unsized types
This allows printing pointers to unsized types with the {:p} formatting
directive. The following impls are extended to unsized types:
 - impl<'a, T: ?Sized> Pointer for &'a T
 - impl<'a, T: ?Sized> Pointer for &'a mut T
 - impl<T: ?Sized> Pointer for *const T
 - impl<T: ?Sized> Pointer for *mut T
 - impl<T: ?Sized> fmt::Pointer for Box<T>
 - impl<T: ?Sized> fmt::Pointer for Rc<T>
 - impl<T: ?Sized> fmt::Pointer for Arc<T>
2016-02-08 14:08:19 -05:00
Alex Crichton
696a1da861 Remove old #[allow(trivial_casts)] annotations
These were added a long time ago but we long since switched the lint back to
allow-by-default, so these annotations shouldn't be necessary.
2016-02-08 09:35:09 -08:00
bors
e548d6c08f Auto merge of #31450 - bluss:no-null-markers, r=Gankro
Document that Unique<T> and Shared<T> are non-null
2016-02-07 07:57:06 +00:00
Ulrik Sverdrup
70650f849f Document that Unique<T> and Shared<T> are non-null 2016-02-06 16:22:17 +01:00
bors
695c907dcc Auto merge of #31410 - rkruppe:issue31109, r=pnkfelix
Issue #31109 uncovered two semi-related problems:

* A panic in `str::parse::<f64>`
* A panic in `rustc::middle::const_eval::lit_to_const` where the result of float parsing was unwrapped.

This series of commits fixes both issues and also drive-by-fixes some things I noticed while tracking down the parsing panic.
2016-02-06 13:16:03 +00:00
Robin Kruppe
33713bca49 drive-by doc fixes 2016-02-04 16:28:08 +01:00
Robin Kruppe
af5d574d1f Prevent the immediate panic uncovered by #31109 and add a test.
The code there still triggers an ICE, but for different reasons (const eval unwraps the parse result).
2016-02-04 16:28:06 +01:00
Robin Kruppe
25c9ac3280 Use the right target ratio in Algorithm M quickstart.
Using f64's bit size probably wasn't actually *wrong*, but it would overshoot for no reason. This might have slowed down f32 parsing significantly.
2016-02-04 16:24:23 +01:00
Manish Goregaokar
5540605cd6 Rollup merge of #31351 - steveklabnik:gh31318, r=alexcrichton
This is a behavior that some find confusing, so it deserves its own example.

Fixes #31318

I think this wording might be a bit strange, but I couldn't come up with anything better. Feedback very welcome.
2016-02-03 02:54:25 +05:30
Manish Goregaokar
ae96e51ac7 Rollup merge of #31220 - steveklabnik:gh30632, r=nikomatsakis
Fixes #30632

I'm not sure if this explanation is good enough. If it is, I will add it to filter as well.
2016-02-03 02:54:24 +05:30
Steve Klabnik
7f26bd864b Rollup merge of #31346 - alopatindev:fixes, r=aturon
Space character is missed after `let some_usize`
2016-02-02 00:32:19 -05:00