Rollup merge of #30420 - petrochenkov:owned2, r=nrc
Part of https://github.com/rust-lang/rust/pull/30095 not causing mysterious segfaults. r? @nrc
This commit is contained in:
commit
9e953df6f0
33 changed files with 400 additions and 413 deletions
|
@ -50,7 +50,7 @@ use ast::{SelfExplicit, SelfRegion, SelfStatic, SelfValue};
|
|||
use ast::{Delimited, SequenceRepetition, TokenTree, TraitItem, TraitRef};
|
||||
use ast::{Ty, Ty_, TypeBinding, TyMac};
|
||||
use ast::{TyFixedLengthVec, TyBareFn, TyTypeof, TyInfer};
|
||||
use ast::{TyParam, TyParamBound, TyParen, TyPath, TyPtr};
|
||||
use ast::{TyParam, TyParamBounds, TyParen, TyPath, TyPtr};
|
||||
use ast::{TyRptr, TyTup, TyU32, TyVec};
|
||||
use ast::TypeTraitItem;
|
||||
use ast::{UnnamedField, UnsafeBlock};
|
||||
|
@ -73,7 +73,6 @@ use parse::{new_sub_parser_from_file, ParseSess};
|
|||
use util::parser::{AssocOp, Fixity};
|
||||
use print::pprust;
|
||||
use ptr::P;
|
||||
use owned_slice::OwnedSlice;
|
||||
use parse::PResult;
|
||||
|
||||
use std::collections::HashSet;
|
||||
|
@ -751,7 +750,7 @@ impl<'a> Parser<'a> {
|
|||
pub fn parse_seq_to_before_gt_or_return<T, F>(&mut self,
|
||||
sep: Option<token::Token>,
|
||||
mut f: F)
|
||||
-> PResult<(OwnedSlice<T>, bool)> where
|
||||
-> PResult<(P<[T]>, bool)> where
|
||||
F: FnMut(&mut Parser) -> PResult<Option<T>>,
|
||||
{
|
||||
let mut v = Vec::new();
|
||||
|
@ -772,7 +771,7 @@ impl<'a> Parser<'a> {
|
|||
if i % 2 == 0 {
|
||||
match try!(f(self)) {
|
||||
Some(result) => v.push(result),
|
||||
None => return Ok((OwnedSlice::from_vec(v), true))
|
||||
None => return Ok((P::from_vec(v), true))
|
||||
}
|
||||
} else {
|
||||
if let Some(t) = sep.as_ref() {
|
||||
|
@ -781,7 +780,7 @@ impl<'a> Parser<'a> {
|
|||
|
||||
}
|
||||
}
|
||||
return Ok((OwnedSlice::from_vec(v), false));
|
||||
return Ok((P::from_vec(v), false));
|
||||
}
|
||||
|
||||
/// Parse a sequence bracketed by '<' and '>', stopping
|
||||
|
@ -789,7 +788,7 @@ impl<'a> Parser<'a> {
|
|||
pub fn parse_seq_to_before_gt<T, F>(&mut self,
|
||||
sep: Option<token::Token>,
|
||||
mut f: F)
|
||||
-> PResult<OwnedSlice<T>> where
|
||||
-> PResult<P<[T]>> where
|
||||
F: FnMut(&mut Parser) -> PResult<T>,
|
||||
{
|
||||
let (result, returned) = try!(self.parse_seq_to_before_gt_or_return(sep,
|
||||
|
@ -801,7 +800,7 @@ impl<'a> Parser<'a> {
|
|||
pub fn parse_seq_to_gt<T, F>(&mut self,
|
||||
sep: Option<token::Token>,
|
||||
f: F)
|
||||
-> PResult<OwnedSlice<T>> where
|
||||
-> PResult<P<[T]>> where
|
||||
F: FnMut(&mut Parser) -> PResult<T>,
|
||||
{
|
||||
let v = try!(self.parse_seq_to_before_gt(sep, f));
|
||||
|
@ -812,7 +811,7 @@ impl<'a> Parser<'a> {
|
|||
pub fn parse_seq_to_gt_or_return<T, F>(&mut self,
|
||||
sep: Option<token::Token>,
|
||||
f: F)
|
||||
-> PResult<(OwnedSlice<T>, bool)> where
|
||||
-> PResult<(P<[T]>, bool)> where
|
||||
F: FnMut(&mut Parser) -> PResult<Option<T>>,
|
||||
{
|
||||
let (v, returned) = try!(self.parse_seq_to_before_gt_or_return(sep, f));
|
||||
|
@ -1076,7 +1075,7 @@ impl<'a> Parser<'a> {
|
|||
let other_bounds = if try!(self.eat(&token::BinOp(token::Plus)) ){
|
||||
try!(self.parse_ty_param_bounds(BoundParsingMode::Bare))
|
||||
} else {
|
||||
OwnedSlice::empty()
|
||||
P::empty()
|
||||
};
|
||||
let all_bounds =
|
||||
Some(TraitTyParamBound(poly_trait_ref, TraitBoundModifier::None)).into_iter()
|
||||
|
@ -1709,8 +1708,8 @@ impl<'a> Parser<'a> {
|
|||
|
||||
ast::AngleBracketedParameters(ast::AngleBracketedParameterData {
|
||||
lifetimes: lifetimes,
|
||||
types: OwnedSlice::from_vec(types),
|
||||
bindings: OwnedSlice::from_vec(bindings),
|
||||
types: P::from_vec(types),
|
||||
bindings: P::from_vec(bindings),
|
||||
})
|
||||
} else if try!(self.eat(&token::OpenDelim(token::Paren)) ){
|
||||
let lo = self.last_span.lo;
|
||||
|
@ -1773,8 +1772,8 @@ impl<'a> Parser<'a> {
|
|||
identifier: identifier,
|
||||
parameters: ast::AngleBracketedParameters(ast::AngleBracketedParameterData {
|
||||
lifetimes: lifetimes,
|
||||
types: OwnedSlice::from_vec(types),
|
||||
bindings: OwnedSlice::from_vec(bindings),
|
||||
types: P::from_vec(types),
|
||||
bindings: P::from_vec(bindings),
|
||||
}),
|
||||
});
|
||||
|
||||
|
@ -3882,10 +3881,10 @@ impl<'a> Parser<'a> {
|
|||
// otherwise returns empty list.
|
||||
fn parse_colon_then_ty_param_bounds(&mut self,
|
||||
mode: BoundParsingMode)
|
||||
-> PResult<OwnedSlice<TyParamBound>>
|
||||
-> PResult<TyParamBounds>
|
||||
{
|
||||
if !try!(self.eat(&token::Colon) ){
|
||||
Ok(OwnedSlice::empty())
|
||||
Ok(P::empty())
|
||||
} else {
|
||||
self.parse_ty_param_bounds(mode)
|
||||
}
|
||||
|
@ -3897,7 +3896,7 @@ impl<'a> Parser<'a> {
|
|||
// and bound = 'region | trait_ref
|
||||
fn parse_ty_param_bounds(&mut self,
|
||||
mode: BoundParsingMode)
|
||||
-> PResult<OwnedSlice<TyParamBound>>
|
||||
-> PResult<TyParamBounds>
|
||||
{
|
||||
let mut result = vec!();
|
||||
loop {
|
||||
|
@ -3939,7 +3938,7 @@ impl<'a> Parser<'a> {
|
|||
}
|
||||
}
|
||||
|
||||
return Ok(OwnedSlice::from_vec(result));
|
||||
return Ok(P::from_vec(result));
|
||||
}
|
||||
|
||||
/// Matches typaram = IDENT (`?` unbound)? optbounds ( EQ ty )?
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue