Skip to content

Commit

Permalink
Auto merge of #32508 - Manishearth:rollup, r=Manishearth
Browse files Browse the repository at this point in the history
Rollup of 6 pull requests

- Successful merges: #32383, #32387, #32440, #32470, #32478, #32492
- Failed merges:
  • Loading branch information
bors committed Mar 26, 2016
2 parents 346d0d5 + 90f2b69 commit 8f34053
Show file tree
Hide file tree
Showing 6 changed files with 63 additions and 138 deletions.
6 changes: 6 additions & 0 deletions src/doc/book/strings.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,11 @@ let s = "foo\
assert_eq!("foobar", s);
```

Note that you normally cannot access a `str` directly, but only through a `&str`
reference. This is because `str` is an unsized type which requires additional
runtime information to be usable. For more information see the chapter on
[unsized types][ut].

Rust has more than only `&str`s though. A `String` is a heap-allocated string.
This string is growable, and is also guaranteed to be UTF-8. `String`s are
commonly created by converting from a string slice using the `to_string`
Expand Down Expand Up @@ -185,5 +190,6 @@ let hello_world = hello + &world;
This is because `&String` can automatically coerce to a `&str`. This is a
feature called ‘[`Deref` coercions][dc]’.

[ut]: unsized-types.html
[dc]: deref-coercions.html
[connect]: ../std/net/struct.TcpStream.html#method.connect
3 changes: 3 additions & 0 deletions src/doc/reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -3911,6 +3911,9 @@ The _heap_ is a general term that describes boxes. The lifetime of an
allocation in the heap depends on the lifetime of the box values pointing to
it. Since box values may themselves be passed in and out of frames, or stored
in the heap, heap allocations may outlive the frame they are allocated within.
An allocation in the heap is guaranteed to reside at a single location in the
heap for the whole lifetime of the allocation - it will never be relocated as
a result of moving a box value.

### Memory ownership

Expand Down
4 changes: 0 additions & 4 deletions src/etc/CONFIGS.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,3 @@ These are some links to repos with configs which ease the use of rust.
* [kate-config](https://github.com/rust-lang/kate-config)
* [nano-config](https://github.com/rust-lang/nano-config)
* [zsh-config](https://github.com/rust-lang/zsh-config)

## Community-maintained Configs

* [.editorconfig](https://gist.github.com/derhuerst/c9d1b9309e308d9851fa) ([what is this?](http://editorconfig.org/))
180 changes: 48 additions & 132 deletions src/librustc_unicode/char.rs
Original file line number Diff line number Diff line change
Expand Up @@ -153,14 +153,9 @@ impl char {
/// Basic usage:
///
/// ```
/// let d = '1';
///
/// assert!(d.is_digit(10));
///
/// let d = 'f';
///
/// assert!(d.is_digit(16));
/// assert!(!d.is_digit(10));
/// assert!('1'.is_digit(10));
/// assert!('f'.is_digit(16));
/// assert!(!'f'.is_digit(10));
/// ```
///
/// Passing a large radix, causing a panic:
Expand All @@ -169,10 +164,8 @@ impl char {
/// use std::thread;
///
/// let result = thread::spawn(|| {
/// let d = '1';
///
/// // this panics
/// d.is_digit(37);
/// '1'.is_digit(37);
/// }).join();
///
/// assert!(result.is_err());
Expand Down Expand Up @@ -209,25 +202,15 @@ impl char {
/// Basic usage:
///
/// ```
/// let d = '1';
///
/// assert_eq!(d.to_digit(10), Some(1));
///
/// let d = 'f';
///
/// assert_eq!(d.to_digit(16), Some(15));
/// assert_eq!('1'.to_digit(10), Some(1));
/// assert_eq!('f'.to_digit(16), Some(15));
/// ```
///
/// Passing a non-digit results in failure:
///
/// ```
/// let d = 'f';
///
/// assert_eq!(d.to_digit(10), None);
///
/// let d = 'z';
///
/// assert_eq!(d.to_digit(16), None);
/// assert_eq!('f'.to_digit(10), None);
/// assert_eq!('z'.to_digit(16), None);
/// ```
///
/// Passing a large radix, causing a panic:
Expand All @@ -236,9 +219,7 @@ impl char {
/// use std::thread;
///
/// let result = thread::spawn(|| {
/// let d = '1';
///
/// d.to_digit(37);
/// '1'.to_digit(37);
/// }).join();
///
/// assert!(result.is_err());
Expand Down Expand Up @@ -463,12 +444,8 @@ impl char {
/// Basic usage:
///
/// ```
/// let c = 'a';
///
/// assert!(c.is_alphabetic());
///
/// let c = '京';
/// assert!(c.is_alphabetic());
/// assert!('a'.is_alphabetic());
/// assert!('京'.is_alphabetic());
///
/// let c = '💝';
/// // love is many things, but it is not alphabetic
Expand Down Expand Up @@ -522,21 +499,13 @@ impl char {
/// Basic usage:
///
/// ```
/// let c = 'a';
/// assert!(c.is_lowercase());
///
/// let c = 'δ';
/// assert!(c.is_lowercase());
///
/// let c = 'A';
/// assert!(!c.is_lowercase());
///
/// let c = 'Δ';
/// assert!(!c.is_lowercase());
/// assert!('a'.is_lowercase());
/// assert!('δ'.is_lowercase());
/// assert!(!'A'.is_lowercase());
/// assert!(!'Δ'.is_lowercase());
///
/// // The various Chinese scripts do not have case, and so:
/// let c = '中';
/// assert!(!c.is_lowercase());
/// assert!(!'中'.is_lowercase());
/// ```
#[stable(feature = "rust1", since = "1.0.0")]
#[inline]
Expand All @@ -558,21 +527,13 @@ impl char {
/// Basic usage:
///
/// ```
/// let c = 'a';
/// assert!(!c.is_uppercase());
///
/// let c = 'δ';
/// assert!(!c.is_uppercase());
///
/// let c = 'A';
/// assert!(c.is_uppercase());
///
/// let c = 'Δ';
/// assert!(c.is_uppercase());
/// assert!(!'a'.is_uppercase());
/// assert!(!'δ'.is_uppercase());
/// assert!('A'.is_uppercase());
/// assert!('Δ'.is_uppercase());
///
/// // The various Chinese scripts do not have case, and so:
/// let c = '中';
/// assert!(!c.is_uppercase());
/// assert!(!'中'.is_uppercase());
/// ```
#[stable(feature = "rust1", since = "1.0.0")]
#[inline]
Expand All @@ -594,15 +555,12 @@ impl char {
/// Basic usage:
///
/// ```
/// let c = ' ';
/// assert!(c.is_whitespace());
/// assert!(' '.is_whitespace());
///
/// // a non-breaking space
/// let c = '\u{A0}';
/// assert!(c.is_whitespace());
/// assert!('\u{A0}'.is_whitespace());
///
/// let c = '越';
/// assert!(!c.is_whitespace());
/// assert!(!'越'.is_whitespace());
/// ```
#[stable(feature = "rust1", since = "1.0.0")]
#[inline]
Expand All @@ -624,29 +582,14 @@ impl char {
/// Basic usage:
///
/// ```
/// let c = '٣';
/// assert!(c.is_alphanumeric());
///
/// let c = '7';
/// assert!(c.is_alphanumeric());
///
/// let c = '৬';
/// assert!(c.is_alphanumeric());
///
/// let c = 'K';
/// assert!(c.is_alphanumeric());
///
/// let c = 'و';
/// assert!(c.is_alphanumeric());
///
/// let c = '藏';
/// assert!(c.is_alphanumeric());
///
/// let c = '¾';
/// assert!(!c.is_alphanumeric());
///
/// let c = '①';
/// assert!(!c.is_alphanumeric());
/// assert!('٣'.is_alphanumeric());
/// assert!('7'.is_alphanumeric());
/// assert!('৬'.is_alphanumeric());
/// assert!('K'.is_alphanumeric());
/// assert!('و'.is_alphanumeric());
/// assert!('藏'.is_alphanumeric());
/// assert!(!'¾'.is_alphanumeric());
/// assert!(!'①'.is_alphanumeric());
/// ```
#[stable(feature = "rust1", since = "1.0.0")]
#[inline]
Expand All @@ -665,11 +608,8 @@ impl char {
///
/// ```
/// // U+009C, STRING TERMINATOR
/// let c = 'œ';
/// assert!(c.is_control());
///
/// let c = 'q';
/// assert!(!c.is_control());
/// assert!('œ'.is_control());
/// assert!(!'q'.is_control());
/// ```
#[stable(feature = "rust1", since = "1.0.0")]
#[inline]
Expand All @@ -687,29 +627,14 @@ impl char {
/// Basic usage:
///
/// ```
/// let c = '٣';
/// assert!(c.is_numeric());
///
/// let c = '7';
/// assert!(c.is_numeric());
///
/// let c = '৬';
/// assert!(c.is_numeric());
///
/// let c = 'K';
/// assert!(!c.is_numeric());
///
/// let c = 'و';
/// assert!(!c.is_numeric());
///
/// let c = '藏';
/// assert!(!c.is_numeric());
///
/// let c = '¾';
/// assert!(!c.is_numeric());
///
/// let c = '①';
/// assert!(!c.is_numeric());
/// assert!('٣'.is_numeric());
/// assert!('7'.is_numeric());
/// assert!('৬'.is_numeric());
/// assert!(!'K'.is_numeric());
/// assert!(!'و'.is_numeric());
/// assert!(!'藏'.is_numeric());
/// assert!(!'¾'.is_numeric());
/// assert!(!'①'.is_numeric());
/// ```
#[stable(feature = "rust1", since = "1.0.0")]
#[inline]
Expand Down Expand Up @@ -744,13 +669,10 @@ impl char {
/// Basic usage:
///
/// ```
/// let c = 'C';
///
/// assert_eq!(c.to_lowercase().next(), Some('c'));
/// assert_eq!('C'.to_lowercase().next(), Some('c'));
///
/// // Japanese scripts do not have case, and so:
/// let c = '山';
/// assert_eq!(c.to_lowercase().next(), Some('山'));
/// assert_eq!('山'.to_lowercase().next(), Some('山'));
/// ```
#[stable(feature = "rust1", since = "1.0.0")]
#[inline]
Expand Down Expand Up @@ -781,12 +703,10 @@ impl char {
/// Basic usage:
///
/// ```
/// let c = 'c';
/// assert_eq!(c.to_uppercase().next(), Some('C'));
/// assert_eq!('c'.to_uppercase().next(), Some('C'));
///
/// // Japanese does not have case, and so:
/// let c = '山';
/// assert_eq!(c.to_uppercase().next(), Some('山'));
/// assert_eq!('山'.to_uppercase().next(), Some('山'));
/// ```
///
/// In Turkish, the equivalent of 'i' in Latin has five forms instead of two:
Expand All @@ -797,19 +717,15 @@ impl char {
/// Note that the lowercase dotted 'i' is the same as the Latin. Therefore:
///
/// ```
/// let i = 'i';
///
/// let upper_i = i.to_uppercase().next();
/// let upper_i = 'i'.to_uppercase().next();
/// ```
///
/// The value of `upper_i` here relies on the language of the text: if we're
/// in `en-US`, it should be `Some('I')`, but if we're in `tr_TR`, it should
/// be `Some('İ')`. `to_uppercase()` does not take this into account, and so:
///
/// ```
/// let i = 'i';
///
/// let upper_i = i.to_uppercase().next();
/// let upper_i = 'i'.to_uppercase().next();
///
/// assert_eq!(Some('I'), upper_i);
/// ```
Expand Down
2 changes: 0 additions & 2 deletions src/librustdoc/html/static/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -742,8 +742,6 @@
if ($(this).val().length === 0) {
if (browserSupportsHistoryApi()) {
history.replaceState("", "std - Rust", "?search=");
} else {
location.replace("?search=");
}
$('#main.content').removeClass('hidden');
$('#search.content').addClass('hidden');
Expand Down
6 changes: 6 additions & 0 deletions src/libstd/ascii.rs
Original file line number Diff line number Diff line change
Expand Up @@ -567,4 +567,10 @@ mod tests {
&from_u32(lower).unwrap().to_string()));
}
}

#[test]
fn inference_works() {
let x = "a".to_string();
x.eq_ignore_ascii_case("A");
}
}

0 comments on commit 8f34053

Please sign in to comment.