Auto merge of #32046 - steveklabnik:rollup, r=steveklabnik
- Successful merges: #32002, #32017, #32027, #32035, #32036 - Failed merges:
This commit is contained in:
commit
da0ccd8cc9
6 changed files with 34 additions and 5 deletions
|
|
@ -79,7 +79,7 @@ pub fn check(build: &mut Build) {
|
|||
}
|
||||
|
||||
// Make sure musl-root is valid if specified
|
||||
if target.contains("musl") {
|
||||
if target.contains("musl") && target.contains("x86_64") {
|
||||
match build.config.musl_root {
|
||||
Some(ref root) => {
|
||||
if fs::metadata(root.join("lib/libc.a")).is_err() {
|
||||
|
|
|
|||
|
|
@ -115,6 +115,36 @@ for i in v {
|
|||
}
|
||||
```
|
||||
|
||||
Note: You cannot use the vector again once you have iterated by taking ownership of the vector.
|
||||
You can iterate the vector multiple times by taking a reference to the vector whilst iterating.
|
||||
For example, the following code does not compile.
|
||||
|
||||
```rust,ignore
|
||||
let mut v = vec![1, 2, 3, 4, 5];
|
||||
|
||||
for i in v {
|
||||
println!("Take ownership of the vector and its element {}", i);
|
||||
}
|
||||
|
||||
for i in v {
|
||||
println!("Take ownership of the vector and its element {}", i);
|
||||
}
|
||||
```
|
||||
|
||||
Whereas the following works perfectly,
|
||||
|
||||
```rust
|
||||
let mut v = vec![1, 2, 3, 4, 5];
|
||||
|
||||
for i in &v {
|
||||
println!("This is a reference to {}", i);
|
||||
}
|
||||
|
||||
for i in &v {
|
||||
println!("This is a reference to {}", i);
|
||||
}
|
||||
```
|
||||
|
||||
Vectors have many more useful methods, which you can read about in [their
|
||||
API documentation][vec].
|
||||
|
||||
|
|
|
|||
|
|
@ -1532,7 +1532,7 @@ pub trait Iterator {
|
|||
/// An iterator adaptor that applies a function, producing a single, final value.
|
||||
///
|
||||
/// `fold()` takes two arguments: an initial value, and a closure with two
|
||||
/// arguments: an 'accumulator', and an element. It returns the value that
|
||||
/// arguments: an 'accumulator', and an element. The closure returns the value that
|
||||
/// the accumulator should have for the next iteration.
|
||||
///
|
||||
/// The initial value is the value the accumulator will have on the first
|
||||
|
|
|
|||
|
|
@ -1095,8 +1095,6 @@ fn eq_slice(a: &str, b: &str) -> bool {
|
|||
/// faster than comparing each byte in a loop.
|
||||
#[inline]
|
||||
unsafe fn cmp_slice(a: &str, b: &str, len: usize) -> i32 {
|
||||
// NOTE: In theory n should be libc::size_t and not usize, but libc is not available here
|
||||
#[allow(improper_ctypes)]
|
||||
extern { fn memcmp(s1: *const i8, s2: *const i8, n: usize) -> i32; }
|
||||
memcmp(a.as_ptr() as *const i8, b.as_ptr() as *const i8, len)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ fn main() {
|
|||
}
|
||||
|
||||
if target.contains("unknown-linux") {
|
||||
if target.contains("musl") {
|
||||
if target.contains("musl") && target.contains("x86_64") {
|
||||
println!("cargo:rustc-link-lib=static=unwind");
|
||||
} else {
|
||||
println!("cargo:rustc-link-lib=dl");
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
|
||||
// aux-build:issue-27362.rs
|
||||
// ignore-cross-compile
|
||||
// ignore-test This test fails on beta/stable #32019
|
||||
|
||||
extern crate issue_27362;
|
||||
pub use issue_27362 as quux;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue