Auto merge of #31646 - Manishearth:rollup, r=Manishearth
- Successful merges: #31551, #31581, #31614, #31626, #31632, #31642 - Failed merges:
This commit is contained in:
commit
13675a57c7
@ -11,8 +11,8 @@ let v = vec![1, 2, 3, 4, 5]; // v: Vec<i32>
|
||||
```
|
||||
|
||||
(Notice that unlike the `println!` macro we’ve used in the past, we use square
|
||||
brackets `[]` with `vec!` macro. Rust allows you to use either in either situation,
|
||||
this is just convention.)
|
||||
brackets `[]` with `vec!` macro. Rust allows you to use either in either
|
||||
situation, this is just convention.)
|
||||
|
||||
There’s an alternate form of `vec!` for repeating an initial value:
|
||||
|
||||
@ -20,6 +20,12 @@ There’s an alternate form of `vec!` for repeating an initial value:
|
||||
let v = vec![0; 10]; // ten zeroes
|
||||
```
|
||||
|
||||
Vectors store their contents as contiguous arrays of `T` on the heap. This means
|
||||
that they must be able to know the size of `T` at compile time (that is, how
|
||||
many bytes are needed to store a `T`?). The size of some things can't be known
|
||||
at compile time. For these you'll have to store a pointer to that thing:
|
||||
thankfully, the [`Box`][box] type works perfectly for this.
|
||||
|
||||
## Accessing elements
|
||||
|
||||
To get the value at a particular index in the vector, we use `[]`s:
|
||||
@ -113,6 +119,7 @@ Vectors have many more useful methods, which you can read about in [their
|
||||
API documentation][vec].
|
||||
|
||||
[vec]: ../std/vec/index.html
|
||||
[box]: ../std/boxed/index.html
|
||||
[generic]: generics.html
|
||||
[panic]: concurrency.html#panics
|
||||
[get]: http://doc.rust-lang.org/std/vec/struct.Vec.html#method.get
|
||||
|
@ -24,6 +24,15 @@ linelength_flag = "ignore-tidy-linelength"
|
||||
|
||||
interesting_files = ['.rs', '.py', '.js', '.sh', '.c', '.h']
|
||||
uninteresting_files = ['miniz.c', 'jquery', 'rust_android_dummy']
|
||||
stable_whitelist = {
|
||||
'src/bootstrap',
|
||||
'src/build_helper',
|
||||
'src/libcollectionstest',
|
||||
'src/libcore',
|
||||
'src/libstd',
|
||||
'src/rustc/std_shim',
|
||||
'src/test'
|
||||
}
|
||||
|
||||
|
||||
def report_error_name_no(name, no, s):
|
||||
@ -93,6 +102,7 @@ count_other_linted_files = 0
|
||||
file_counts = {ext: 0 for ext in interesting_files}
|
||||
|
||||
all_paths = set()
|
||||
needs_unstable_attr = set()
|
||||
|
||||
try:
|
||||
for (dirpath, dirnames, filenames) in os.walk(src_dir):
|
||||
@ -149,6 +159,9 @@ try:
|
||||
else:
|
||||
if "SNAP " in line:
|
||||
report_warn("unmatched SNAP line: " + line)
|
||||
search = re.search(r'^#!\[unstable', line)
|
||||
if search:
|
||||
needs_unstable_attr.discard(filename)
|
||||
|
||||
if cr_flag in line:
|
||||
check_cr = False
|
||||
@ -181,6 +194,9 @@ try:
|
||||
check_cr = True
|
||||
check_tab = True
|
||||
check_linelength = True
|
||||
if all(f not in filename for f in stable_whitelist) and \
|
||||
re.search(r'src/.*/lib\.rs', filename):
|
||||
needs_unstable_attr.add(filename)
|
||||
|
||||
# Put a reasonable limit on the amount of header data we use for
|
||||
# the licenseck
|
||||
@ -195,6 +211,8 @@ try:
|
||||
update_counts(current_name)
|
||||
assert len(current_contents) > 0
|
||||
do_license_check(current_name, current_contents)
|
||||
for f in needs_unstable_attr:
|
||||
report_error_name_no(f, 1, "requires unstable attribute")
|
||||
|
||||
except UnicodeDecodeError as e:
|
||||
report_err("UTF-8 decoding error " + str(e))
|
||||
|
@ -8,8 +8,8 @@
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
//! A growable list type with heap-allocated contents, written `Vec<T>` but
|
||||
//! pronounced 'vector.'
|
||||
//! A contiguous growable array type with heap-allocated contents, written
|
||||
//! `Vec<T>` but pronounced 'vector.'
|
||||
//!
|
||||
//! Vectors have `O(1)` indexing, amortized `O(1)` push (to the end) and
|
||||
//! `O(1)` pop (from the end).
|
||||
@ -78,7 +78,7 @@ use borrow::{Cow, IntoCow};
|
||||
|
||||
use super::range::RangeArgument;
|
||||
|
||||
/// A growable list type, written `Vec<T>` but pronounced 'vector.'
|
||||
/// A contiguous growable array type, written `Vec<T>` but pronounced 'vector.'
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
|
@ -510,7 +510,7 @@ options! {CodegenOptions, CodegenSetter, basic_codegen_options,
|
||||
link_args: Option<Vec<String>> = (None, parse_opt_list,
|
||||
"extra arguments to pass to the linker (space separated)"),
|
||||
link_dead_code: bool = (false, parse_bool,
|
||||
"let the linker strip dead coded (turning it on can be used for code coverage)"),
|
||||
"don't let linker strip dead code (turning it on can be used for code coverage)"),
|
||||
lto: bool = (false, parse_bool,
|
||||
"perform LLVM link-time optimizations"),
|
||||
target_cpu: Option<String> = (None, parse_opt_string,
|
||||
|
@ -122,7 +122,7 @@ r##"<!DOCTYPE html>
|
||||
|
||||
<p>
|
||||
Search functions by type signature (e.g.
|
||||
<code>vec -> usize</code>)
|
||||
<code>vec -> usize</code> or <code>* -> vec</code>)
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -280,7 +280,7 @@
|
||||
var parts = val.split("->").map(trimmer);
|
||||
var input = parts[0];
|
||||
// sort inputs so that order does not matter
|
||||
var inputs = input.split(",").map(trimmer).sort();
|
||||
var inputs = input.split(",").map(trimmer).sort().toString();
|
||||
var output = parts[1];
|
||||
|
||||
for (var i = 0; i < nSearchWords; ++i) {
|
||||
@ -296,8 +296,8 @@
|
||||
|
||||
// allow searching for void (no output) functions as well
|
||||
var typeOutput = type.output ? type.output.name : "";
|
||||
if (inputs.toString() === typeInputs.toString() &&
|
||||
output == typeOutput) {
|
||||
if ((inputs === "*" || inputs === typeInputs.toString()) &&
|
||||
(output === "*" || output == typeOutput)) {
|
||||
results.push({id: i, index: -1, dontValidate: true});
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user