Auto merge of #28900 - cristicbz:typos, r=alexcrichton
I found these automatically, but fixed them manually to ensure the semantics are correct. I know things like these are hardly important, since they only marginally improve clarity. But at least for me typos and simple grammatical errors trigger an---unjustified---sense of unprofessionalism, despite the fact that I make them all the time and I understand that they're the sort of thing that is bound to slip through review. Anyway, to find most of these I used: * `ag '.*//.*(\b[A-Za-z]{2,}\b) \1\b'` for repeated words * `ag '\b(the|this|those|these|a|it) (a|the|this|those|these|it)\b'` to find constructs like 'the this' etc. many false positives, but not too hard to scroll through them to actually find the mistakes. * `cat ../../typos.txt | paste -d'|' - - - - - - - - - - - - - - - - - - - - - - | tr '\n' '\0' | xargs -0 -P4 -n1 ag`. Hacky way to find misspellings, but it works ok. I got `typos.txt` from [Wikipedia](https://en.wikipedia.org/wiki/Wikipedia:Lists_of_common_misspellings/For_machines) * `ag '.*//.* a ([ae][a-z]|(o[^n])|(i[a-rt-z]))'` to find places where 'a' was followed by a vowel (requiring 'an' instead). I also used a handful more one off regexes that are too boring to reproduce here.
This commit is contained in:
commit
d0cae14f66
@ -773,7 +773,7 @@ bound := path | lifetime
|
|||||||
|
|
||||||
## Type kinds
|
## Type kinds
|
||||||
|
|
||||||
**FIXME:** this this probably not relevant to the grammar...
|
**FIXME:** this is probably not relevant to the grammar...
|
||||||
|
|
||||||
# Memory and concurrency models
|
# Memory and concurrency models
|
||||||
|
|
||||||
|
@ -195,7 +195,7 @@ our value if it's immutable, but we want to be able to mutate it, so we need
|
|||||||
something else to persuade the borrow checker we know what we're doing.
|
something else to persuade the borrow checker we know what we're doing.
|
||||||
|
|
||||||
It looks like we need some type that allows us to safely mutate a shared value,
|
It looks like we need some type that allows us to safely mutate a shared value,
|
||||||
for example a type that that can ensure only one thread at a time is able to
|
for example a type that can ensure only one thread at a time is able to
|
||||||
mutate the value inside it at any one time.
|
mutate the value inside it at any one time.
|
||||||
|
|
||||||
For that, we can use the `Mutex<T>` type!
|
For that, we can use the `Mutex<T>` type!
|
||||||
|
@ -302,7 +302,7 @@ This will print
|
|||||||
|
|
||||||
`filter()` is an adapter that takes a closure as an argument. This closure
|
`filter()` is an adapter that takes a closure as an argument. This closure
|
||||||
returns `true` or `false`. The new iterator `filter()` produces
|
returns `true` or `false`. The new iterator `filter()` produces
|
||||||
only the elements that that closure returns `true` for:
|
only the elements that the closure returns `true` for:
|
||||||
|
|
||||||
```rust
|
```rust
|
||||||
for i in (1..100).filter(|&x| x % 2 == 0) {
|
for i in (1..100).filter(|&x| x % 2 == 0) {
|
||||||
|
@ -71,7 +71,7 @@ The output on stdout is treated as (f64, f32, decimal) record, encoded thusly:
|
|||||||
|
|
||||||
Incomplete records are an error. Not-a-Number bit patterns are invalid too.
|
Incomplete records are an error. Not-a-Number bit patterns are invalid too.
|
||||||
|
|
||||||
The tests run serially but the validaition for a a single test is parallelized
|
The tests run serially but the validation for a single test is parallelized
|
||||||
with ``multiprocessing``. Each test is launched as a subprocess.
|
with ``multiprocessing``. Each test is launched as a subprocess.
|
||||||
One thread supervises it: Accepts and enqueues records to validate, observe
|
One thread supervises it: Accepts and enqueues records to validate, observe
|
||||||
stderr, and waits for the process to exit. A set of worker processes perform
|
stderr, and waits for the process to exit. A set of worker processes perform
|
||||||
|
@ -593,7 +593,7 @@ mod stack {
|
|||||||
top: node::Handle<*mut Node<K, V>, Type, NodeType>,
|
top: node::Handle<*mut Node<K, V>, Type, NodeType>,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// A `PartialSearchStack` that doesn't hold a a reference to the next node, and is just
|
/// A `PartialSearchStack` that doesn't hold a reference to the next node, and is just
|
||||||
/// just waiting for a `Handle` to that next node to be pushed. See `PartialSearchStack::with`
|
/// just waiting for a `Handle` to that next node to be pushed. See `PartialSearchStack::with`
|
||||||
/// for more details.
|
/// for more details.
|
||||||
pub struct Pusher<'id, 'a, K:'a, V:'a> {
|
pub struct Pusher<'id, 'a, K:'a, V:'a> {
|
||||||
|
@ -86,7 +86,7 @@ fn test_find_str() {
|
|||||||
assert_eq!(data[43..86].find("iệt"), Some(77 - 43));
|
assert_eq!(data[43..86].find("iệt"), Some(77 - 43));
|
||||||
assert_eq!(data[43..86].find("Nam"), Some(83 - 43));
|
assert_eq!(data[43..86].find("Nam"), Some(83 - 43));
|
||||||
|
|
||||||
// find every substring -- assert that it finds it, or an earlier occurence.
|
// find every substring -- assert that it finds it, or an earlier occurrence.
|
||||||
let string = "Việt Namacbaabcaabaaba";
|
let string = "Việt Namacbaabcaabaaba";
|
||||||
for (i, ci) in string.char_indices() {
|
for (i, ci) in string.char_indices() {
|
||||||
let ip = i + ci.len_utf8();
|
let ip = i + ci.len_utf8();
|
||||||
|
@ -598,7 +598,7 @@ impl<'b, T: ?Sized> Ref<'b, T> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Make a new `Ref` for a optional component of the borrowed data, e.g. an
|
/// Make a new `Ref` for an optional component of the borrowed data, e.g. an
|
||||||
/// enum variant.
|
/// enum variant.
|
||||||
///
|
///
|
||||||
/// The `RefCell` is already immutably borrowed, so this cannot fail.
|
/// The `RefCell` is already immutably borrowed, so this cannot fail.
|
||||||
@ -668,7 +668,7 @@ impl<'b, T: ?Sized> RefMut<'b, T> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Make a new `RefMut` for a optional component of the borrowed data, e.g.
|
/// Make a new `RefMut` for an optional component of the borrowed data, e.g.
|
||||||
/// an enum variant.
|
/// an enum variant.
|
||||||
///
|
///
|
||||||
/// The `RefCell` is already mutably borrowed, so this cannot fail.
|
/// The `RefCell` is already mutably borrowed, so this cannot fail.
|
||||||
|
@ -373,20 +373,20 @@ extern "rust-intrinsic" {
|
|||||||
/// a size of `count` * `size_of::<T>()` and an alignment of
|
/// a size of `count` * `size_of::<T>()` and an alignment of
|
||||||
/// `min_align_of::<T>()`
|
/// `min_align_of::<T>()`
|
||||||
///
|
///
|
||||||
/// The volatile parameter parameter is set to `true`, so it will not be optimized out.
|
/// The volatile parameter is set to `true`, so it will not be optimized out.
|
||||||
pub fn volatile_copy_nonoverlapping_memory<T>(dst: *mut T, src: *const T,
|
pub fn volatile_copy_nonoverlapping_memory<T>(dst: *mut T, src: *const T,
|
||||||
count: usize);
|
count: usize);
|
||||||
/// Equivalent to the appropriate `llvm.memmove.p0i8.0i8.*` intrinsic, with
|
/// Equivalent to the appropriate `llvm.memmove.p0i8.0i8.*` intrinsic, with
|
||||||
/// a size of `count` * `size_of::<T>()` and an alignment of
|
/// a size of `count` * `size_of::<T>()` and an alignment of
|
||||||
/// `min_align_of::<T>()`
|
/// `min_align_of::<T>()`
|
||||||
///
|
///
|
||||||
/// The volatile parameter parameter is set to `true`, so it will not be optimized out.
|
/// The volatile parameter is set to `true`, so it will not be optimized out.
|
||||||
pub fn volatile_copy_memory<T>(dst: *mut T, src: *const T, count: usize);
|
pub fn volatile_copy_memory<T>(dst: *mut T, src: *const T, count: usize);
|
||||||
/// Equivalent to the appropriate `llvm.memset.p0i8.*` intrinsic, with a
|
/// Equivalent to the appropriate `llvm.memset.p0i8.*` intrinsic, with a
|
||||||
/// size of `count` * `size_of::<T>()` and an alignment of
|
/// size of `count` * `size_of::<T>()` and an alignment of
|
||||||
/// `min_align_of::<T>()`.
|
/// `min_align_of::<T>()`.
|
||||||
///
|
///
|
||||||
/// The volatile parameter parameter is set to `true`, so it will not be optimized out.
|
/// The volatile parameter is set to `true`, so it will not be optimized out.
|
||||||
pub fn volatile_set_memory<T>(dst: *mut T, val: u8, count: usize);
|
pub fn volatile_set_memory<T>(dst: *mut T, val: u8, count: usize);
|
||||||
|
|
||||||
/// Perform a volatile load from the `src` pointer.
|
/// Perform a volatile load from the `src` pointer.
|
||||||
|
@ -381,7 +381,7 @@ mod impls {
|
|||||||
/// ```
|
/// ```
|
||||||
///
|
///
|
||||||
/// Without the declaration `T:Reflect`, `foo` would not type check
|
/// Without the declaration `T:Reflect`, `foo` would not type check
|
||||||
/// (note: as a matter of style, it would be preferable to to write
|
/// (note: as a matter of style, it would be preferable to write
|
||||||
/// `T:Any`, because `T:Any` implies `T:Reflect` and `T:'static`, but
|
/// `T:Any`, because `T:Any` implies `T:Reflect` and `T:'static`, but
|
||||||
/// we use `Reflect` here to show how it works). The `Reflect` bound
|
/// we use `Reflect` here to show how it works). The `Reflect` bound
|
||||||
/// thus serves to alert `foo`'s caller to the fact that `foo` may
|
/// thus serves to alert `foo`'s caller to the fact that `foo` may
|
||||||
|
@ -110,7 +110,7 @@ macro_rules! define_bignum {
|
|||||||
($name:ident: type=$ty:ty, n=$n:expr) => (
|
($name:ident: type=$ty:ty, n=$n:expr) => (
|
||||||
/// Stack-allocated arbitrary-precision (up to certain limit) integer.
|
/// Stack-allocated arbitrary-precision (up to certain limit) integer.
|
||||||
///
|
///
|
||||||
/// This is backed by an fixed-size array of given type ("digit").
|
/// This is backed by a fixed-size array of given type ("digit").
|
||||||
/// While the array is not very large (normally some hundred bytes),
|
/// While the array is not very large (normally some hundred bytes),
|
||||||
/// copying it recklessly may result in the performance hit.
|
/// copying it recklessly may result in the performance hit.
|
||||||
/// Thus this is intentionally not `Copy`.
|
/// Thus this is intentionally not `Copy`.
|
||||||
|
@ -461,7 +461,7 @@ pub fn to_shortest_str<'a, T, F>(mut format_shortest: F, v: T,
|
|||||||
/// You probably would want `strategy::grisu::format_shortest` for this.
|
/// You probably would want `strategy::grisu::format_shortest` for this.
|
||||||
///
|
///
|
||||||
/// The `dec_bounds` is a tuple `(lo, hi)` such that the number is formatted
|
/// The `dec_bounds` is a tuple `(lo, hi)` such that the number is formatted
|
||||||
/// as decimal only when `10^lo <= V < 10^hi`. Note that this is the *apparant* `V`
|
/// as decimal only when `10^lo <= V < 10^hi`. Note that this is the *apparent* `V`
|
||||||
/// instead of the actual `v`! Thus any printed exponent in the exponential form
|
/// instead of the actual `v`! Thus any printed exponent in the exponential form
|
||||||
/// cannot be in this range, avoiding any confusion.
|
/// cannot be in this range, avoiding any confusion.
|
||||||
///
|
///
|
||||||
|
@ -488,7 +488,7 @@ pub fn format_exact_opt(d: &Decoded, buf: &mut [u8], limit: i16)
|
|||||||
// but scaling `max_ten_kappa << e` by 10 can result in overflow.
|
// but scaling `max_ten_kappa << e` by 10 can result in overflow.
|
||||||
// thus we are being sloppy here and widen the error range by a factor of 10.
|
// thus we are being sloppy here and widen the error range by a factor of 10.
|
||||||
// this will increase the false negative rate, but only very, *very* slightly;
|
// this will increase the false negative rate, but only very, *very* slightly;
|
||||||
// it can only matter noticably when the mantissa is bigger than 60 bits.
|
// it can only matter noticeably when the mantissa is bigger than 60 bits.
|
||||||
return possibly_round(buf, 0, exp, limit, v.f / 10, (max_ten_kappa as u64) << e, err << e);
|
return possibly_round(buf, 0, exp, limit, v.f / 10, (max_ten_kappa as u64) << e, err << e);
|
||||||
} else if ((exp as i32 - limit as i32) as usize) < buf.len() {
|
} else if ((exp as i32 - limit as i32) as usize) < buf.len() {
|
||||||
(exp - limit) as usize
|
(exp - limit) as usize
|
||||||
|
@ -1383,7 +1383,7 @@ fn from_str_radix<T: FromStrRadixHelper>(src: &str, radix: u32)
|
|||||||
|
|
||||||
// all valid digits are ascii, so we will just iterate over the utf8 bytes
|
// all valid digits are ascii, so we will just iterate over the utf8 bytes
|
||||||
// and cast them to chars. .to_digit() will safely return None for anything
|
// and cast them to chars. .to_digit() will safely return None for anything
|
||||||
// other than a valid ascii digit for a the given radix, including the first-byte
|
// other than a valid ascii digit for the given radix, including the first-byte
|
||||||
// of multi-byte sequences
|
// of multi-byte sequences
|
||||||
let src = src.as_bytes();
|
let src = src.as_bytes();
|
||||||
|
|
||||||
|
@ -562,7 +562,7 @@ macro_rules! derive_pattern_clone {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// This macro generates two public iterator structs
|
/// This macro generates two public iterator structs
|
||||||
/// wrapping an private internal one that makes use of the `Pattern` API.
|
/// wrapping a private internal one that makes use of the `Pattern` API.
|
||||||
///
|
///
|
||||||
/// For all patterns `P: Pattern<'a>` the following items will be
|
/// For all patterns `P: Pattern<'a>` the following items will be
|
||||||
/// generated (generics omitted):
|
/// generated (generics omitted):
|
||||||
|
@ -16,7 +16,7 @@ use test;
|
|||||||
mod parse;
|
mod parse;
|
||||||
mod rawfp;
|
mod rawfp;
|
||||||
|
|
||||||
// Take an float literal, turn it into a string in various ways (that are all trusted
|
// Take a float literal, turn it into a string in various ways (that are all trusted
|
||||||
// to be correct) and see if those strings are parsed back to the value of the literal.
|
// to be correct) and see if those strings are parsed back to the value of the literal.
|
||||||
// Requires a *polymorphic literal*, i.e. one that can serve as f64 as well as f32.
|
// Requires a *polymorphic literal*, i.e. one that can serve as f64 as well as f32.
|
||||||
macro_rules! test_literal {
|
macro_rules! test_literal {
|
||||||
|
@ -578,7 +578,7 @@ impl<'ast> Map<'ast> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Given a node ID, get a list of of attributes associated with the AST
|
/// Given a node ID, get a list of attributes associated with the AST
|
||||||
/// corresponding to the Node ID
|
/// corresponding to the Node ID
|
||||||
pub fn attrs(&self, id: NodeId) -> &'ast [ast::Attribute] {
|
pub fn attrs(&self, id: NodeId) -> &'ast [ast::Attribute] {
|
||||||
let attrs = match self.find(id) {
|
let attrs = match self.find(id) {
|
||||||
|
@ -913,7 +913,7 @@ impl<'d,'t,'a,'tcx> ExprUseVisitor<'d,'t,'a,'tcx> {
|
|||||||
self.consume_expr(&*arm.body);
|
self.consume_expr(&*arm.body);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Walks an pat that occurs in isolation (i.e. top-level of fn
|
/// Walks a pat that occurs in isolation (i.e. top-level of fn
|
||||||
/// arg or let binding. *Not* a match arm or nested pat.)
|
/// arg or let binding. *Not* a match arm or nested pat.)
|
||||||
fn walk_irrefutable_pat(&mut self, cmt_discr: mc::cmt<'tcx>, pat: &hir::Pat) {
|
fn walk_irrefutable_pat(&mut self, cmt_discr: mc::cmt<'tcx>, pat: &hir::Pat) {
|
||||||
let mut mode = Unknown;
|
let mut mode = Unknown;
|
||||||
@ -1136,7 +1136,7 @@ impl<'d,'t,'a,'tcx> ExprUseVisitor<'d,'t,'a,'tcx> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
hir::PatIdent(_, _, Some(_)) => {
|
hir::PatIdent(_, _, Some(_)) => {
|
||||||
// Do nothing; this is a binding (not a enum
|
// Do nothing; this is a binding (not an enum
|
||||||
// variant or struct), and the cat_pattern call
|
// variant or struct), and the cat_pattern call
|
||||||
// will visit the substructure recursively.
|
// will visit the substructure recursively.
|
||||||
}
|
}
|
||||||
@ -1145,7 +1145,7 @@ impl<'d,'t,'a,'tcx> ExprUseVisitor<'d,'t,'a,'tcx> {
|
|||||||
hir::PatRegion(..) | hir::PatLit(..) | hir::PatRange(..) |
|
hir::PatRegion(..) | hir::PatLit(..) | hir::PatRange(..) |
|
||||||
hir::PatVec(..) => {
|
hir::PatVec(..) => {
|
||||||
// Similarly, each of these cases does not
|
// Similarly, each of these cases does not
|
||||||
// correspond to a enum variant or struct, so we
|
// correspond to an enum variant or struct, so we
|
||||||
// do not do any `matched_pat` calls for these
|
// do not do any `matched_pat` calls for these
|
||||||
// cases either.
|
// cases either.
|
||||||
}
|
}
|
||||||
|
@ -567,7 +567,7 @@ pub fn plug_leaks<'a,'tcx,T>(infcx: &InferCtxt<'a,'tcx>,
|
|||||||
|
|
||||||
// Compute a mapping from the "taint set" of each skolemized
|
// Compute a mapping from the "taint set" of each skolemized
|
||||||
// region back to the `ty::BoundRegion` that it originally
|
// region back to the `ty::BoundRegion` that it originally
|
||||||
// represented. Because `leak_check` passed, we know that that
|
// represented. Because `leak_check` passed, we know that
|
||||||
// these taint sets are mutually disjoint.
|
// these taint sets are mutually disjoint.
|
||||||
let inv_skol_map: FnvHashMap<ty::Region, ty::BoundRegion> =
|
let inv_skol_map: FnvHashMap<ty::Region, ty::BoundRegion> =
|
||||||
skol_map
|
skol_map
|
||||||
|
@ -2394,7 +2394,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
|
|||||||
/// errors as if there is no applicable impl, but rather report
|
/// errors as if there is no applicable impl, but rather report
|
||||||
/// errors are about mismatched argument types.
|
/// errors are about mismatched argument types.
|
||||||
///
|
///
|
||||||
/// Here is an example. Imagine we have an closure expression
|
/// Here is an example. Imagine we have a closure expression
|
||||||
/// and we desugared it so that the type of the expression is
|
/// and we desugared it so that the type of the expression is
|
||||||
/// `Closure`, and `Closure` expects an int as argument. Then it
|
/// `Closure`, and `Closure` expects an int as argument. Then it
|
||||||
/// is "as if" the compiler generated this impl:
|
/// is "as if" the compiler generated this impl:
|
||||||
|
@ -408,7 +408,7 @@ pub fn upcast<'tcx>(tcx: &ty::ctxt<'tcx>,
|
|||||||
.collect()
|
.collect()
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Given an trait `trait_ref`, returns the number of vtable entries
|
/// Given a trait `trait_ref`, returns the number of vtable entries
|
||||||
/// that come from `trait_ref`, excluding its supertraits. Used in
|
/// that come from `trait_ref`, excluding its supertraits. Used in
|
||||||
/// computing the vtable base for an upcast trait of a trait object.
|
/// computing the vtable base for an upcast trait of a trait object.
|
||||||
pub fn count_own_vtable_entries<'tcx>(tcx: &ty::ctxt<'tcx>,
|
pub fn count_own_vtable_entries<'tcx>(tcx: &ty::ctxt<'tcx>,
|
||||||
|
@ -48,7 +48,7 @@ pub enum AutoAdjustment<'tcx> {
|
|||||||
///
|
///
|
||||||
/// 1. The simplest cases are where the pointer is not adjusted fat vs thin.
|
/// 1. The simplest cases are where the pointer is not adjusted fat vs thin.
|
||||||
/// Here the pointer will be dereferenced N times (where a dereference can
|
/// Here the pointer will be dereferenced N times (where a dereference can
|
||||||
/// happen to to raw or borrowed pointers or any smart pointer which implements
|
/// happen to raw or borrowed pointers or any smart pointer which implements
|
||||||
/// Deref, including Box<_>). The number of dereferences is given by
|
/// Deref, including Box<_>). The number of dereferences is given by
|
||||||
/// `autoderefs`. It can then be auto-referenced zero or one times, indicated
|
/// `autoderefs`. It can then be auto-referenced zero or one times, indicated
|
||||||
/// by `autoref`, to either a raw or borrowed pointer. In these cases unsize is
|
/// by `autoref`, to either a raw or borrowed pointer. In these cases unsize is
|
||||||
|
@ -126,7 +126,7 @@ pub enum TypeVariants<'tcx> {
|
|||||||
TyRef(&'tcx Region, TypeAndMut<'tcx>),
|
TyRef(&'tcx Region, TypeAndMut<'tcx>),
|
||||||
|
|
||||||
/// If the def-id is Some(_), then this is the type of a specific
|
/// If the def-id is Some(_), then this is the type of a specific
|
||||||
/// fn item. Otherwise, if None(_), it a fn pointer type.
|
/// fn item. Otherwise, if None(_), it is a fn pointer type.
|
||||||
///
|
///
|
||||||
/// FIXME: Conflating function pointers and the type of a
|
/// FIXME: Conflating function pointers and the type of a
|
||||||
/// function is probably a terrible idea; a function pointer is a
|
/// function is probably a terrible idea; a function pointer is a
|
||||||
|
@ -159,7 +159,7 @@ pub struct FragmentSets {
|
|||||||
/// FIXME(pnkfelix) probably do not want/need
|
/// FIXME(pnkfelix) probably do not want/need
|
||||||
/// `parents_of_fragments` at all, if we can avoid it.
|
/// `parents_of_fragments` at all, if we can avoid it.
|
||||||
///
|
///
|
||||||
/// Update: I do not see a way to to avoid it. Maybe just remove
|
/// Update: I do not see a way to avoid it. Maybe just remove
|
||||||
/// above fixme, or at least document why doing this may be hard.
|
/// above fixme, or at least document why doing this may be hard.
|
||||||
parents_of_fragments: Vec<MovePathIndex>,
|
parents_of_fragments: Vec<MovePathIndex>,
|
||||||
|
|
||||||
|
@ -373,7 +373,7 @@ const DOWNCAST_PRINTED_OPERATOR: &'static str = " as ";
|
|||||||
|
|
||||||
// A local, "cleaned" version of `mc::InteriorKind` that drops
|
// A local, "cleaned" version of `mc::InteriorKind` that drops
|
||||||
// information that is not relevant to loan-path analysis. (In
|
// information that is not relevant to loan-path analysis. (In
|
||||||
// particular, the distinction between how precisely a array-element
|
// particular, the distinction between how precisely an array-element
|
||||||
// is tracked is irrelevant here.)
|
// is tracked is irrelevant here.)
|
||||||
#[derive(Clone, Copy, PartialEq, Eq, Hash)]
|
#[derive(Clone, Copy, PartialEq, Eq, Hash)]
|
||||||
pub enum InteriorKind {
|
pub enum InteriorKind {
|
||||||
|
@ -963,8 +963,8 @@ fn insert_lllocals<'blk, 'tcx>(mut bcx: Block<'blk, 'tcx>,
|
|||||||
// leaving the remainder of the tuple `(_,
|
// leaving the remainder of the tuple `(_,
|
||||||
// D(B))` still to be dropped in the future.
|
// D(B))` still to be dropped in the future.
|
||||||
//
|
//
|
||||||
// Thus, here we must must zero the place that
|
// Thus, here we must zero the place that we
|
||||||
// we are moving *from*, because we do not yet
|
// are moving *from*, because we do not yet
|
||||||
// track drop flags for a fragmented parent
|
// track drop flags for a fragmented parent
|
||||||
// match input expression.
|
// match input expression.
|
||||||
//
|
//
|
||||||
|
@ -339,7 +339,7 @@ pub fn trans_fn_pointer_shim<'a, 'tcx>(
|
|||||||
let llargs = get_params(fcx.llfn);
|
let llargs = get_params(fcx.llfn);
|
||||||
|
|
||||||
let self_idx = fcx.arg_offset();
|
let self_idx = fcx.arg_offset();
|
||||||
// the first argument (`self`) will be ptr to the the fn pointer
|
// the first argument (`self`) will be ptr to the fn pointer
|
||||||
let llfnpointer = if is_by_ref {
|
let llfnpointer = if is_by_ref {
|
||||||
Load(bcx, llargs[self_idx])
|
Load(bcx, llargs[self_idx])
|
||||||
} else {
|
} else {
|
||||||
|
@ -809,7 +809,7 @@ pub fn type_metadata<'a, 'tcx>(cx: &CrateContext<'a, 'tcx>,
|
|||||||
let mut type_map = debug_context(cx).type_map.borrow_mut();
|
let mut type_map = debug_context(cx).type_map.borrow_mut();
|
||||||
|
|
||||||
if already_stored_in_typemap {
|
if already_stored_in_typemap {
|
||||||
// Also make sure that we already have a TypeMap entry entry for the unique type id.
|
// Also make sure that we already have a TypeMap entry for the unique type id.
|
||||||
let metadata_for_uid = match type_map.find_metadata_for_unique_id(unique_type_id) {
|
let metadata_for_uid = match type_map.find_metadata_for_unique_id(unique_type_id) {
|
||||||
Some(metadata) => metadata,
|
Some(metadata) => metadata,
|
||||||
None => {
|
None => {
|
||||||
|
@ -2526,7 +2526,7 @@ impl OverflowOpViaInputCheck {
|
|||||||
// Note that the mask's value is derived from the LHS type
|
// Note that the mask's value is derived from the LHS type
|
||||||
// (since that is where the 32/64 distinction is relevant) but
|
// (since that is where the 32/64 distinction is relevant) but
|
||||||
// the mask's type must match the RHS type (since they will
|
// the mask's type must match the RHS type (since they will
|
||||||
// both be fed into a and-binop)
|
// both be fed into an and-binop)
|
||||||
let invert_mask = shift_mask_val(bcx, lhs_llty, rhs_llty, true);
|
let invert_mask = shift_mask_val(bcx, lhs_llty, rhs_llty, true);
|
||||||
|
|
||||||
let outer_bits = And(bcx, rhs, invert_mask, binop_debug_loc);
|
let outer_bits = And(bcx, rhs, invert_mask, binop_debug_loc);
|
||||||
|
@ -203,9 +203,9 @@ pub enum DropGlueKind<'tcx> {
|
|||||||
/// Skips the dtor, if any, for ty; drops the contents directly.
|
/// Skips the dtor, if any, for ty; drops the contents directly.
|
||||||
/// Note that the dtor is only skipped at the most *shallow*
|
/// Note that the dtor is only skipped at the most *shallow*
|
||||||
/// level, namely, an `impl Drop for Ty` itself. So, for example,
|
/// level, namely, an `impl Drop for Ty` itself. So, for example,
|
||||||
/// if Ty is Newtype(S) then only the Drop impl for for Newtype
|
/// if Ty is Newtype(S) then only the Drop impl for Newtype itself
|
||||||
/// itself will be skipped, while the Drop impl for S, if any,
|
/// will be skipped, while the Drop impl for S, if any, will be
|
||||||
/// will be invoked.
|
/// invoked.
|
||||||
TyContents(Ty<'tcx>),
|
TyContents(Ty<'tcx>),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1221,8 +1221,8 @@ fn try_intrinsic<'blk, 'tcx>(bcx: Block<'blk, 'tcx>,
|
|||||||
// MSVC's definition of the `rust_try` function. The exact implementation here
|
// MSVC's definition of the `rust_try` function. The exact implementation here
|
||||||
// is a little different than the GNU (standard) version below, not only because
|
// is a little different than the GNU (standard) version below, not only because
|
||||||
// of the personality function but also because of the other fiddly bits about
|
// of the personality function but also because of the other fiddly bits about
|
||||||
// SEH. LLVM also currently requires us to structure this a very particular way
|
// SEH. LLVM also currently requires us to structure this in a very particular
|
||||||
// as explained below.
|
// way as explained below.
|
||||||
//
|
//
|
||||||
// Like with the GNU version we generate a shim wrapper
|
// Like with the GNU version we generate a shim wrapper
|
||||||
fn trans_msvc_try<'blk, 'tcx>(bcx: Block<'blk, 'tcx>,
|
fn trans_msvc_try<'blk, 'tcx>(bcx: Block<'blk, 'tcx>,
|
||||||
|
@ -476,8 +476,7 @@ fn trans_trait_callee_from_llval<'blk, 'tcx>(bcx: Block<'blk, 'tcx>,
|
|||||||
/// }
|
/// }
|
||||||
///
|
///
|
||||||
/// What is the value of `x` when `foo` is invoked with `T=SomeTrait`?
|
/// What is the value of `x` when `foo` is invoked with `T=SomeTrait`?
|
||||||
/// The answer is that it it is a shim function generate by this
|
/// The answer is that it is a shim function generated by this routine:
|
||||||
/// routine:
|
|
||||||
///
|
///
|
||||||
/// fn shim(t: &SomeTrait) -> int {
|
/// fn shim(t: &SomeTrait) -> int {
|
||||||
/// // ... call t.get() virtually ...
|
/// // ... call t.get() virtually ...
|
||||||
|
@ -361,7 +361,7 @@ pub fn in_memory_type_of<'a, 'tcx>(cx: &CrateContext<'a, 'tcx>, t: Ty<'tcx>) ->
|
|||||||
let repr = adt::represent_type(cx, t);
|
let repr = adt::represent_type(cx, t);
|
||||||
// Unboxed closures can have substitutions in all spaces
|
// Unboxed closures can have substitutions in all spaces
|
||||||
// inherited from their environment, so we use entire
|
// inherited from their environment, so we use entire
|
||||||
// contents of the VecPerParamSpace to to construct the llvm
|
// contents of the VecPerParamSpace to construct the llvm
|
||||||
// name
|
// name
|
||||||
adt::incomplete_type_of(cx, &*repr, "closure")
|
adt::incomplete_type_of(cx, &*repr, "closure")
|
||||||
}
|
}
|
||||||
|
@ -347,7 +347,7 @@ fn create_region_substs<'tcx>(
|
|||||||
{
|
{
|
||||||
let tcx = this.tcx();
|
let tcx = this.tcx();
|
||||||
|
|
||||||
// If the type is parameterized by the this region, then replace this
|
// If the type is parameterized by this region, then replace this
|
||||||
// region with the current anon region binding (in other words,
|
// region with the current anon region binding (in other words,
|
||||||
// whatever & would get replaced with).
|
// whatever & would get replaced with).
|
||||||
let expected_num_region_params = decl_generics.regions.len(TypeSpace);
|
let expected_num_region_params = decl_generics.regions.len(TypeSpace);
|
||||||
@ -1238,7 +1238,7 @@ fn one_bound_for_assoc_type<'tcx>(tcx: &ty::ctxt<'tcx>,
|
|||||||
Ok(bounds[0].clone())
|
Ok(bounds[0].clone())
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create a type from a a path to an associated type.
|
// Create a type from a path to an associated type.
|
||||||
// For a path A::B::C::D, ty and ty_path_def are the type and def for A::B::C
|
// For a path A::B::C::D, ty and ty_path_def are the type and def for A::B::C
|
||||||
// and item_segment is the path segment for D. We return a type and a def for
|
// and item_segment is the path segment for D. We return a type and a def for
|
||||||
// the whole path.
|
// the whole path.
|
||||||
|
@ -185,7 +185,7 @@ fn ensure_drop_predicates_are_implied_by_item_defn<'tcx>(
|
|||||||
for predicate in predicates {
|
for predicate in predicates {
|
||||||
// (We do not need to worry about deep analysis of type
|
// (We do not need to worry about deep analysis of type
|
||||||
// expressions etc because the Drop impls are already forced
|
// expressions etc because the Drop impls are already forced
|
||||||
// to take on a structure that is roughly a alpha-renaming of
|
// to take on a structure that is roughly an alpha-renaming of
|
||||||
// the generic parameters of the item definition.)
|
// the generic parameters of the item definition.)
|
||||||
|
|
||||||
// This path now just checks *all* predicates via the direct
|
// This path now just checks *all* predicates via the direct
|
||||||
|
@ -1878,7 +1878,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// If there are no more fallbacks to apply at this point we have applied all possible
|
// If there are no more fallbacks to apply at this point we have applied all possible
|
||||||
// defaults and type inference will procede as normal.
|
// defaults and type inference will proceed as normal.
|
||||||
if unbound_tyvars.is_empty() {
|
if unbound_tyvars.is_empty() {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -2222,7 +2222,7 @@ fn make_overloaded_lvalue_return_type<'a, 'tcx>(fcx: &FnCtxt<'a, 'tcx>,
|
|||||||
{
|
{
|
||||||
match method {
|
match method {
|
||||||
Some(method) => {
|
Some(method) => {
|
||||||
// extract method method return type, which will be &T;
|
// extract method return type, which will be &T;
|
||||||
// all LB regions should have been instantiated during method lookup
|
// all LB regions should have been instantiated during method lookup
|
||||||
let ret_ty = method.ty.fn_ret();
|
let ret_ty = method.ty.fn_ret();
|
||||||
let ret_ty = fcx.tcx().no_late_bound_regions(&ret_ty).unwrap().unwrap();
|
let ret_ty = fcx.tcx().no_late_bound_regions(&ret_ty).unwrap().unwrap();
|
||||||
@ -4106,7 +4106,7 @@ fn check_const_with_ty<'a, 'tcx>(fcx: &FnCtxt<'a, 'tcx>,
|
|||||||
// Gather locals in statics (because of block expressions).
|
// Gather locals in statics (because of block expressions).
|
||||||
// This is technically unnecessary because locals in static items are forbidden,
|
// This is technically unnecessary because locals in static items are forbidden,
|
||||||
// but prevents type checking from blowing up before const checking can properly
|
// but prevents type checking from blowing up before const checking can properly
|
||||||
// emit a error.
|
// emit an error.
|
||||||
GatherLocalsVisitor { fcx: fcx }.visit_expr(e);
|
GatherLocalsVisitor { fcx: fcx }.visit_expr(e);
|
||||||
|
|
||||||
check_expr_with_hint(fcx, e, declty);
|
check_expr_with_hint(fcx, e, declty);
|
||||||
@ -4360,7 +4360,7 @@ pub fn instantiate_path<'a, 'tcx>(fcx: &FnCtxt<'a, 'tcx>,
|
|||||||
// parameters permitted at present, but perhaps we will allow
|
// parameters permitted at present, but perhaps we will allow
|
||||||
// them in the future.)
|
// them in the future.)
|
||||||
//
|
//
|
||||||
// 1b. Reference to a enum variant or tuple-like struct:
|
// 1b. Reference to an enum variant or tuple-like struct:
|
||||||
//
|
//
|
||||||
// struct foo<T>(...)
|
// struct foo<T>(...)
|
||||||
// enum E<T> { foo(...) }
|
// enum E<T> { foo(...) }
|
||||||
|
@ -77,7 +77,7 @@
|
|||||||
//! borrowed pointer? I mean any data that is reached by first
|
//! borrowed pointer? I mean any data that is reached by first
|
||||||
//! dereferencing a borrowed pointer and then either traversing
|
//! dereferencing a borrowed pointer and then either traversing
|
||||||
//! interior offsets or boxes. We say that the guarantor
|
//! interior offsets or boxes. We say that the guarantor
|
||||||
//! of such data it the region of the borrowed pointer that was
|
//! of such data is the region of the borrowed pointer that was
|
||||||
//! traversed. This is essentially the same as the ownership
|
//! traversed. This is essentially the same as the ownership
|
||||||
//! relation, except that a borrowed pointer never owns its
|
//! relation, except that a borrowed pointer never owns its
|
||||||
//! contents.
|
//! contents.
|
||||||
|
@ -507,7 +507,7 @@ impl<'tcx> GetTypeParameterBounds<'tcx> for ty::GenericPredicates<'tcx> {
|
|||||||
/// Find bounds from hir::Generics. This requires scanning through the
|
/// Find bounds from hir::Generics. This requires scanning through the
|
||||||
/// AST. We do this to avoid having to convert *all* the bounds, which
|
/// AST. We do this to avoid having to convert *all* the bounds, which
|
||||||
/// would create artificial cycles. Instead we can only convert the
|
/// would create artificial cycles. Instead we can only convert the
|
||||||
/// bounds for those a type parameter `X` if `X::Foo` is used.
|
/// bounds for a type parameter `X` if `X::Foo` is used.
|
||||||
impl<'tcx> GetTypeParameterBounds<'tcx> for hir::Generics {
|
impl<'tcx> GetTypeParameterBounds<'tcx> for hir::Generics {
|
||||||
fn get_type_parameter_bounds(&self,
|
fn get_type_parameter_bounds(&self,
|
||||||
astconv: &AstConv<'tcx>,
|
astconv: &AstConv<'tcx>,
|
||||||
|
@ -109,7 +109,7 @@ fn main(){
|
|||||||
"##,
|
"##,
|
||||||
|
|
||||||
E0026: r##"
|
E0026: r##"
|
||||||
This error indicates that a struct pattern attempted to extract a non-existant
|
This error indicates that a struct pattern attempted to extract a non-existent
|
||||||
field from a struct. Struct fields are identified by the name used before the
|
field from a struct. Struct fields are identified by the name used before the
|
||||||
colon `:` so struct patterns should resemble the declaration of the struct type
|
colon `:` so struct patterns should resemble the declaration of the struct type
|
||||||
being matched.
|
being matched.
|
||||||
@ -3352,7 +3352,7 @@ register_diagnostics! {
|
|||||||
E0182,
|
E0182,
|
||||||
E0183,
|
E0183,
|
||||||
// E0187, // can't infer the kind of the closure
|
// E0187, // can't infer the kind of the closure
|
||||||
// E0188, // can not cast a immutable reference to a mutable pointer
|
// E0188, // can not cast an immutable reference to a mutable pointer
|
||||||
// E0189, // deprecated: can only cast a boxed pointer to a boxed object
|
// E0189, // deprecated: can only cast a boxed pointer to a boxed object
|
||||||
// E0190, // deprecated: can only cast a &-pointer to an &-object
|
// E0190, // deprecated: can only cast a &-pointer to an &-object
|
||||||
E0196, // cannot determine a type for this closure
|
E0196, // cannot determine a type for this closure
|
||||||
|
@ -153,7 +153,7 @@ impl<'a, 'tcx> Clean<Crate> for visit_ast::RustdocVisitor<'a, 'tcx> {
|
|||||||
//
|
//
|
||||||
// Note that this loop only searches the top-level items of the crate,
|
// Note that this loop only searches the top-level items of the crate,
|
||||||
// and this is intentional. If we were to search the entire crate for an
|
// and this is intentional. If we were to search the entire crate for an
|
||||||
// item tagged with `#[doc(primitive)]` then we we would also have to
|
// item tagged with `#[doc(primitive)]` then we would also have to
|
||||||
// search the entirety of external modules for items tagged
|
// search the entirety of external modules for items tagged
|
||||||
// `#[doc(primitive)]`, which is a pretty inefficient process (decoding
|
// `#[doc(primitive)]`, which is a pretty inefficient process (decoding
|
||||||
// all that metadata unconditionally).
|
// all that metadata unconditionally).
|
||||||
|
@ -55,8 +55,8 @@ pub struct TocBuilder {
|
|||||||
/// strictly increasing (i.e. chain[0].level < chain[1].level <
|
/// strictly increasing (i.e. chain[0].level < chain[1].level <
|
||||||
/// ...) with each entry being the most recent occurrence of a
|
/// ...) with each entry being the most recent occurrence of a
|
||||||
/// heading with that level (it doesn't include the most recent
|
/// heading with that level (it doesn't include the most recent
|
||||||
/// occurrences of every level, just, if *is* in `chain` then is is
|
/// occurrences of every level, just, if it *is* in `chain` then
|
||||||
/// the most recent one).
|
/// it is the most recent one).
|
||||||
///
|
///
|
||||||
/// We also have `chain[0].level <= top_level.entries[last]`.
|
/// We also have `chain[0].level <= top_level.entries[last]`.
|
||||||
chain: Vec<TocEntry>
|
chain: Vec<TocEntry>
|
||||||
|
@ -546,7 +546,7 @@ impl<W> IntoInnerError<W> {
|
|||||||
/// let stream = match stream.into_inner() {
|
/// let stream = match stream.into_inner() {
|
||||||
/// Ok(s) => s,
|
/// Ok(s) => s,
|
||||||
/// Err(e) => {
|
/// Err(e) => {
|
||||||
/// // Here, e is a IntoInnerError, let's re-examine the buffer:
|
/// // Here, e is an IntoInnerError, let's re-examine the buffer:
|
||||||
/// let buffer = e.into_inner();
|
/// let buffer = e.into_inner();
|
||||||
///
|
///
|
||||||
/// // do stuff to try to recover
|
/// // do stuff to try to recover
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
//! Because they are traits, they're implemented by a number of other types,
|
//! Because they are traits, they're implemented by a number of other types,
|
||||||
//! and you can implement them for your types too. As such, you'll see a
|
//! and you can implement them for your types too. As such, you'll see a
|
||||||
//! few different types of I/O throughout the documentation in this module:
|
//! few different types of I/O throughout the documentation in this module:
|
||||||
//! `File`s, `TcpStream`s, and somtimes even `Vec<T>`s. For example, `Read`
|
//! `File`s, `TcpStream`s, and sometimes even `Vec<T>`s. For example, `Read`
|
||||||
//! adds a `read()` method, which we can use on `File`s:
|
//! adds a `read()` method, which we can use on `File`s:
|
||||||
//!
|
//!
|
||||||
//! ```
|
//! ```
|
||||||
@ -234,7 +234,7 @@
|
|||||||
//! The return type of `read_input()`, `io::Result<()>`, is a very common type
|
//! The return type of `read_input()`, `io::Result<()>`, is a very common type
|
||||||
//! for functions which don't have a 'real' return value, but do want to return
|
//! for functions which don't have a 'real' return value, but do want to return
|
||||||
//! errors if they happen. In this case, the only purpose of this function is
|
//! errors if they happen. In this case, the only purpose of this function is
|
||||||
//! to read the line and print it, so we use use `()`.
|
//! to read the line and print it, so we use `()`.
|
||||||
//!
|
//!
|
||||||
//! [result]: type.Result.html
|
//! [result]: type.Result.html
|
||||||
//! [try]: macro.try!.html
|
//! [try]: macro.try!.html
|
||||||
|
@ -146,7 +146,7 @@ pub struct Stdin {
|
|||||||
inner: Arc<Mutex<BufReader<Maybe<StdinRaw>>>>,
|
inner: Arc<Mutex<BufReader<Maybe<StdinRaw>>>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// A locked reference to the a `Stdin` handle.
|
/// A locked reference to the `Stdin` handle.
|
||||||
///
|
///
|
||||||
/// This handle implements both the `Read` and `BufRead` traits and is
|
/// This handle implements both the `Read` and `BufRead` traits and is
|
||||||
/// constructed via the `lock` method on `Stdin`.
|
/// constructed via the `lock` method on `Stdin`.
|
||||||
@ -323,7 +323,7 @@ pub struct Stdout {
|
|||||||
inner: Arc<ReentrantMutex<RefCell<LineWriter<Maybe<StdoutRaw>>>>>,
|
inner: Arc<ReentrantMutex<RefCell<LineWriter<Maybe<StdoutRaw>>>>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// A locked reference to the a `Stdout` handle.
|
/// A locked reference to the `Stdout` handle.
|
||||||
///
|
///
|
||||||
/// This handle implements the `Write` trait and is constructed via the `lock`
|
/// This handle implements the `Write` trait and is constructed via the `lock`
|
||||||
/// method on `Stdout`.
|
/// method on `Stdout`.
|
||||||
@ -430,7 +430,7 @@ pub struct Stderr {
|
|||||||
inner: Arc<ReentrantMutex<RefCell<Maybe<StderrRaw>>>>,
|
inner: Arc<ReentrantMutex<RefCell<Maybe<StderrRaw>>>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// A locked reference to the a `Stderr` handle.
|
/// A locked reference to the `Stderr` handle.
|
||||||
///
|
///
|
||||||
/// This handle implements the `Write` trait and is constructed via the `lock`
|
/// This handle implements the `Write` trait and is constructed via the `lock`
|
||||||
/// method on `Stderr`.
|
/// method on `Stderr`.
|
||||||
|
@ -22,7 +22,7 @@ use libc;
|
|||||||
use sys_common::{AsInner, FromInner};
|
use sys_common::{AsInner, FromInner};
|
||||||
use net::{hton, ntoh};
|
use net::{hton, ntoh};
|
||||||
|
|
||||||
/// An IP address, either a IPv4 or IPv6 address.
|
/// An IP address, either an IPv4 or IPv6 address.
|
||||||
#[unstable(feature = "ip_addr", reason = "recent addition", issue = "27801")]
|
#[unstable(feature = "ip_addr", reason = "recent addition", issue = "27801")]
|
||||||
#[derive(Copy, Clone, Eq, PartialEq, Debug, Hash, PartialOrd, Ord)]
|
#[derive(Copy, Clone, Eq, PartialEq, Debug, Hash, PartialOrd, Ord)]
|
||||||
pub enum IpAddr {
|
pub enum IpAddr {
|
||||||
|
@ -74,7 +74,7 @@
|
|||||||
//! [`Eq`](../cmp/trait.Eq.html),
|
//! [`Eq`](../cmp/trait.Eq.html),
|
||||||
//! [`Ord`](../cmp/trait.Ord.html)
|
//! [`Ord`](../cmp/trait.Ord.html)
|
||||||
//! }.
|
//! }.
|
||||||
//! The comparision traits, which implement the comparison operators
|
//! The comparison traits, which implement the comparison operators
|
||||||
//! and are often seen in trait bounds.
|
//! and are often seen in trait bounds.
|
||||||
//! * `std::convert::`{
|
//! * `std::convert::`{
|
||||||
//! [`AsRef`](../convert/trait.AsRef.html),
|
//! [`AsRef`](../convert/trait.AsRef.html),
|
||||||
|
@ -427,7 +427,7 @@ impl<T> UnsafeFlavor<T> for Receiver<T> {
|
|||||||
/// use std::sync::mpsc::channel;
|
/// use std::sync::mpsc::channel;
|
||||||
/// use std::thread;
|
/// use std::thread;
|
||||||
///
|
///
|
||||||
/// // tx is is the sending half (tx for transmission), and rx is the receiving
|
/// // tx is the sending half (tx for transmission), and rx is the receiving
|
||||||
/// // half (rx for receiving).
|
/// // half (rx for receiving).
|
||||||
/// let (tx, rx) = channel();
|
/// let (tx, rx) = channel();
|
||||||
///
|
///
|
||||||
|
@ -146,13 +146,13 @@ impl fmt::Debug for Wtf8Buf {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl Wtf8Buf {
|
impl Wtf8Buf {
|
||||||
/// Creates an new, empty WTF-8 string.
|
/// Creates a new, empty WTF-8 string.
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn new() -> Wtf8Buf {
|
pub fn new() -> Wtf8Buf {
|
||||||
Wtf8Buf { bytes: Vec::new() }
|
Wtf8Buf { bytes: Vec::new() }
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Creates an new, empty WTF-8 string with pre-allocated capacity for `n` bytes.
|
/// Creates a new, empty WTF-8 string with pre-allocated capacity for `n` bytes.
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn with_capacity(n: usize) -> Wtf8Buf {
|
pub fn with_capacity(n: usize) -> Wtf8Buf {
|
||||||
Wtf8Buf { bytes: Vec::with_capacity(n) }
|
Wtf8Buf { bytes: Vec::with_capacity(n) }
|
||||||
|
@ -39,7 +39,7 @@ pub trait CommandExt {
|
|||||||
/// This is not enough to create a daemon process. The *init* process should
|
/// This is not enough to create a daemon process. The *init* process should
|
||||||
/// be the child reaper of a daemon. This can be achieved if the parent
|
/// be the child reaper of a daemon. This can be achieved if the parent
|
||||||
/// process exit. Moreover, a daemon should not have a controlling terminal.
|
/// process exit. Moreover, a daemon should not have a controlling terminal.
|
||||||
/// To acheive this, a session leader (the child) must spawn another process
|
/// To achieve this, a session leader (the child) must spawn another process
|
||||||
/// (the daemon) in the same session.
|
/// (the daemon) in the same session.
|
||||||
#[unstable(feature = "process_session_leader", reason = "recently added",
|
#[unstable(feature = "process_session_leader", reason = "recently added",
|
||||||
issue = "27811")]
|
issue = "27811")]
|
||||||
|
@ -49,7 +49,7 @@ pub mod time;
|
|||||||
pub mod stdio;
|
pub mod stdio;
|
||||||
|
|
||||||
pub fn init() {
|
pub fn init() {
|
||||||
// By default, some platforms will send a *signal* when a EPIPE error
|
// By default, some platforms will send a *signal* when an EPIPE error
|
||||||
// would otherwise be delivered. This runtime doesn't install a SIGPIPE
|
// would otherwise be delivered. This runtime doesn't install a SIGPIPE
|
||||||
// handler, causing it to kill the program, which isn't exactly what we
|
// handler, causing it to kill the program, which isn't exactly what we
|
||||||
// want!
|
// want!
|
||||||
|
@ -75,8 +75,8 @@ fn to_utf16_os(s: &OsStr) -> Vec<u16> {
|
|||||||
v
|
v
|
||||||
}
|
}
|
||||||
|
|
||||||
// Many Windows APIs follow a pattern of where we hand the a buffer and then
|
// Many Windows APIs follow a pattern of where we hand a buffer and then they
|
||||||
// they will report back to us how large the buffer should be or how many bytes
|
// will report back to us how large the buffer should be or how many bytes
|
||||||
// currently reside in the buffer. This function is an abstraction over these
|
// currently reside in the buffer. This function is an abstraction over these
|
||||||
// functions by making them easier to call.
|
// functions by making them easier to call.
|
||||||
//
|
//
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
//! more details.
|
//! more details.
|
||||||
//!
|
//!
|
||||||
//! 3. While CriticalSection is fair and SRWLock is not, the current Rust policy
|
//! 3. While CriticalSection is fair and SRWLock is not, the current Rust policy
|
||||||
//! is there there are no guarantees of fairness.
|
//! is that there are no guarantees of fairness.
|
||||||
//!
|
//!
|
||||||
//! The downside of this approach, however, is that SRWLock is not available on
|
//! The downside of this approach, however, is that SRWLock is not available on
|
||||||
//! Windows XP, so we continue to have a fallback implementation where
|
//! Windows XP, so we continue to have a fallback implementation where
|
||||||
|
@ -600,7 +600,7 @@ impl<'a> ExtCtxt<'a> {
|
|||||||
self.expander().fold_expr(e)
|
self.expander().fold_expr(e)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns a `Folder` for deeply expanding all macros in a AST node.
|
/// Returns a `Folder` for deeply expanding all macros in an AST node.
|
||||||
pub fn expander<'b>(&'b mut self) -> expand::MacroExpander<'b, 'a> {
|
pub fn expander<'b>(&'b mut self) -> expand::MacroExpander<'b, 'a> {
|
||||||
expand::MacroExpander::new(self)
|
expand::MacroExpander::new(self)
|
||||||
}
|
}
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
//! As it processes them, it fills up `eof_eis` with items that would be valid if
|
//! As it processes them, it fills up `eof_eis` with items that would be valid if
|
||||||
//! the macro invocation is now over, `bb_eis` with items that are waiting on
|
//! the macro invocation is now over, `bb_eis` with items that are waiting on
|
||||||
//! a Rust nonterminal like `$e:expr`, and `next_eis` with items that are waiting
|
//! a Rust nonterminal like `$e:expr`, and `next_eis` with items that are waiting
|
||||||
//! on the a particular token. Most of the logic concerns moving the · through the
|
//! on a particular token. Most of the logic concerns moving the · through the
|
||||||
//! repetitions indicated by Kleene stars. It only advances or calls out to the
|
//! repetitions indicated by Kleene stars. It only advances or calls out to the
|
||||||
//! real Rust parser when no `cur_eis` items remain
|
//! real Rust parser when no `cur_eis` items remain
|
||||||
//!
|
//!
|
||||||
|
@ -497,7 +497,7 @@ fn is_in_follow(_: &ExtCtxt, tok: &Token, frag: &str) -> Result<bool, String> {
|
|||||||
Ok(true)
|
Ok(true)
|
||||||
},
|
},
|
||||||
"block" => {
|
"block" => {
|
||||||
// anything can follow block, the braces provide a easy boundary to
|
// anything can follow block, the braces provide an easy boundary to
|
||||||
// maintain
|
// maintain
|
||||||
Ok(true)
|
Ok(true)
|
||||||
},
|
},
|
||||||
|
@ -1107,8 +1107,7 @@ pub enum UnstableFeatures {
|
|||||||
/// Errors are bypassed for bootstrapping. This is required any time
|
/// Errors are bypassed for bootstrapping. This is required any time
|
||||||
/// during the build that feature-related lints are set to warn or above
|
/// during the build that feature-related lints are set to warn or above
|
||||||
/// because the build turns on warnings-as-errors and uses lots of unstable
|
/// because the build turns on warnings-as-errors and uses lots of unstable
|
||||||
/// features. As a result, this this is always required for building Rust
|
/// features. As a result, this is always required for building Rust itself.
|
||||||
/// itself.
|
|
||||||
Cheat
|
Cheat
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -250,7 +250,7 @@ LLVMRustWriteOutputFile(LLVMTargetMachineRef Target,
|
|||||||
#endif
|
#endif
|
||||||
PM->run(*unwrap(M));
|
PM->run(*unwrap(M));
|
||||||
|
|
||||||
// Apparently `addPassesToEmitFile` adds an pointer to our on-the-stack output
|
// Apparently `addPassesToEmitFile` adds a pointer to our on-the-stack output
|
||||||
// stream (OS), so the only real safe place to delete this is here? Don't we
|
// stream (OS), so the only real safe place to delete this is here? Don't we
|
||||||
// wish this was written in Rust?
|
// wish this was written in Rust?
|
||||||
delete PM;
|
delete PM;
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
// option. This file may not be copied, modified, or distributed
|
// option. This file may not be copied, modified, or distributed
|
||||||
// except according to those terms.
|
// except according to those terms.
|
||||||
|
|
||||||
// Test that we report an error if the trait ref in an qualified type
|
// Test that we report an error if the trait ref in a qualified type
|
||||||
// uses invalid type arguments.
|
// uses invalid type arguments.
|
||||||
|
|
||||||
trait Foo<T> {
|
trait Foo<T> {
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
// option. This file may not be copied, modified, or distributed
|
// option. This file may not be copied, modified, or distributed
|
||||||
// except according to those terms.
|
// except according to those terms.
|
||||||
|
|
||||||
// Check that an constant-evaluation underflow highlights the correct
|
// Check that a constant-evaluation underflow highlights the correct
|
||||||
// spot (where the underflow occurred), while also providing the
|
// spot (where the underflow occurred), while also providing the
|
||||||
// overall context for what caused the evaluation.
|
// overall context for what caused the evaluation.
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
// option. This file may not be copied, modified, or distributed
|
// option. This file may not be copied, modified, or distributed
|
||||||
// except according to those terms.
|
// except according to those terms.
|
||||||
|
|
||||||
// Check that an constant-evaluation underflow highlights the correct
|
// Check that a constant-evaluation underflow highlights the correct
|
||||||
// spot (where the underflow occurred).
|
// spot (where the underflow occurred).
|
||||||
|
|
||||||
const ONE: usize = 1;
|
const ONE: usize = 1;
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
// option. This file may not be copied, modified, or distributed
|
// option. This file may not be copied, modified, or distributed
|
||||||
// except according to those terms.
|
// except according to those terms.
|
||||||
|
|
||||||
// Check that a arena (TypedArena) cannot carry elements whose drop
|
// Check that an arena (TypedArena) cannot carry elements whose drop
|
||||||
// methods might access borrowed data of lifetime that does not
|
// methods might access borrowed data of lifetime that does not
|
||||||
// strictly outlive the arena itself.
|
// strictly outlive the arena itself.
|
||||||
//
|
//
|
||||||
@ -30,7 +30,7 @@ struct CheckId<T:HasId> { v: T }
|
|||||||
// In the code below, the impl of HasId for `&'a usize` does not
|
// In the code below, the impl of HasId for `&'a usize` does not
|
||||||
// actually access the borrowed data, but the point is that the
|
// actually access the borrowed data, but the point is that the
|
||||||
// interface to CheckId does not (and cannot) know that, and therefore
|
// interface to CheckId does not (and cannot) know that, and therefore
|
||||||
// when encountering the a value V of type CheckId<S>, we must
|
// when encountering a value V of type CheckId<S>, we must
|
||||||
// conservatively force the type S to strictly outlive V.
|
// conservatively force the type S to strictly outlive V.
|
||||||
impl<T:HasId> Drop for CheckId<T> {
|
impl<T:HasId> Drop for CheckId<T> {
|
||||||
fn drop(&mut self) {
|
fn drop(&mut self) {
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
// except according to those terms.
|
// except according to those terms.
|
||||||
|
|
||||||
// Reject mixing cyclic structure and Drop when using trait
|
// Reject mixing cyclic structure and Drop when using trait
|
||||||
// objects to hide the the cross-references.
|
// objects to hide the cross-references.
|
||||||
//
|
//
|
||||||
// (Compare against compile-fail/dropck_vec_cycle_checked.rs)
|
// (Compare against compile-fail/dropck_vec_cycle_checked.rs)
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
// except according to those terms.
|
// except according to those terms.
|
||||||
|
|
||||||
// Test that we can parse a unit struct with a where clause, even if
|
// Test that we can parse a unit struct with a where clause, even if
|
||||||
// it leads to a error later on since `T` is unused.
|
// it leads to an error later on since `T` is unused.
|
||||||
|
|
||||||
struct Foo<T> where T: Copy; //~ ERROR parameter `T` is never used
|
struct Foo<T> where T: Copy; //~ ERROR parameter `T` is never used
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
// option. This file may not be copied, modified, or distributed
|
// option. This file may not be copied, modified, or distributed
|
||||||
// except according to those terms.
|
// except according to those terms.
|
||||||
|
|
||||||
//! Test that when a crate is linked under another name that that name is used in global paths
|
//! Test that when a crate is linked under another name that name is used in global paths
|
||||||
|
|
||||||
extern crate core as bar;
|
extern crate core as bar;
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
// option. This file may not be copied, modified, or distributed
|
// option. This file may not be copied, modified, or distributed
|
||||||
// except according to those terms.
|
// except according to those terms.
|
||||||
|
|
||||||
// Creating a stack closure which references an box and then
|
// Creating a stack closure which references a box and then
|
||||||
// transferring ownership of the box before invoking the stack
|
// transferring ownership of the box before invoking the stack
|
||||||
// closure results in a crash.
|
// closure results in a crash.
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ pub struct WithHrAssoc<T>
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn with_assoc<'a,'b>() {
|
fn with_assoc<'a,'b>() {
|
||||||
// We get an error because beacuse 'b:'a does not hold:
|
// We get an error because 'b:'a does not hold:
|
||||||
|
|
||||||
let _: &'a WithHrAssoc<TheType<'b>> = loop { };
|
let _: &'a WithHrAssoc<TheType<'b>> = loop { };
|
||||||
//~^ ERROR reference has a longer lifetime
|
//~^ ERROR reference has a longer lifetime
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
use std::marker::PhantomData;
|
use std::marker::PhantomData;
|
||||||
|
|
||||||
// A erroneous variant of `run-pass/unboxed_closures-infer-recursive-fn.rs`
|
// An erroneous variant of `run-pass/unboxed_closures-infer-recursive-fn.rs`
|
||||||
// where we attempt to perform mutation in the recursive function. This fails to compile
|
// where we attempt to perform mutation in the recursive function. This fails to compile
|
||||||
// because it winds up requiring `FnMut` which enforces linearity.
|
// because it winds up requiring `FnMut` which enforces linearity.
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ struct Test5<'a, 'b:'a> { //~ ERROR regions=[[+, o];[];[]]
|
|||||||
|
|
||||||
// Invariance is a trap from which NO ONE CAN ESCAPE.
|
// Invariance is a trap from which NO ONE CAN ESCAPE.
|
||||||
// In other words, even though the `&'b isize` occurs in
|
// In other words, even though the `&'b isize` occurs in
|
||||||
// a argument list (which is contravariant), that
|
// an argument list (which is contravariant), that
|
||||||
// argument list occurs in an invariant context.
|
// argument list occurs in an invariant context.
|
||||||
|
|
||||||
#[rustc_variance]
|
#[rustc_variance]
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
// error-pattern:stop
|
// error-pattern:stop
|
||||||
|
|
||||||
// #18576
|
// #18576
|
||||||
// Make sure that an calling extern function pointer in an unreachable
|
// Make sure that calling an extern function pointer in an unreachable
|
||||||
// context doesn't cause an LLVM assertion
|
// context doesn't cause an LLVM assertion
|
||||||
|
|
||||||
#[allow(unreachable_code)]
|
#[allow(unreachable_code)]
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
// option. This file may not be copied, modified, or distributed
|
// option. This file may not be copied, modified, or distributed
|
||||||
// except according to those terms.
|
// except according to those terms.
|
||||||
|
|
||||||
// Check that a arena (TypedArena) can carry elements whose drop
|
// Check that an arena (TypedArena) can carry elements whose drop
|
||||||
// methods might access borrowed data, as long as the borrowed data
|
// methods might access borrowed data, as long as the borrowed data
|
||||||
// has lifetime that strictly outlives the arena itself.
|
// has lifetime that strictly outlives the arena itself.
|
||||||
//
|
//
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
// option. This file may not be copied, modified, or distributed
|
// option. This file may not be copied, modified, or distributed
|
||||||
// except according to those terms.
|
// except according to those terms.
|
||||||
|
|
||||||
// Ensure that an user-defined type admits multiple inherent methods
|
// Ensure that a user-defined type admits multiple inherent methods
|
||||||
// with the same name, which can be called on values that have a
|
// with the same name, which can be called on values that have a
|
||||||
// precise enough type to allow distinguishing between the methods.
|
// precise enough type to allow distinguishing between the methods.
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
// option. This file may not be copied, modified, or distributed
|
// option. This file may not be copied, modified, or distributed
|
||||||
// except according to those terms.
|
// except according to those terms.
|
||||||
|
|
||||||
// Regression test for #24085. Errors were occuring in region
|
// Regression test for #24085. Errors were occurring in region
|
||||||
// inference due to the requirement that `'a:b'`, which was getting
|
// inference due to the requirement that `'a:b'`, which was getting
|
||||||
// incorrectly translated in connection with the closure below.
|
// incorrectly translated in connection with the closure below.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user