Rote changes due to the fact that ast paths no longer carry this extraneous bounds.
This commit is contained in:
parent
f4e29e7e9a
commit
c4a3be6bd1
17 changed files with 60 additions and 75 deletions
|
|
@ -44,7 +44,8 @@ pub trait AstBuilder {
|
|||
fn ty_mt(&self, ty: P<ast::Ty>, mutbl: ast::Mutability) -> ast::MutTy;
|
||||
|
||||
fn ty(&self, span: Span, ty: ast::Ty_) -> P<ast::Ty>;
|
||||
fn ty_path(&self, ast::Path, Option<OwnedSlice<ast::TyParamBound>>) -> P<ast::Ty>;
|
||||
fn ty_path(&self, ast::Path) -> P<ast::Ty>;
|
||||
fn ty_sum(&self, ast::Path, OwnedSlice<ast::TyParamBound>) -> P<ast::Ty>;
|
||||
fn ty_ident(&self, span: Span, idents: ast::Ident) -> P<ast::Ty>;
|
||||
|
||||
fn ty_rptr(&self, span: Span,
|
||||
|
|
@ -344,17 +345,21 @@ impl<'a> AstBuilder for ExtCtxt<'a> {
|
|||
})
|
||||
}
|
||||
|
||||
fn ty_path(&self, path: ast::Path, bounds: Option<OwnedSlice<ast::TyParamBound>>)
|
||||
-> P<ast::Ty> {
|
||||
fn ty_path(&self, path: ast::Path) -> P<ast::Ty> {
|
||||
self.ty(path.span, ast::TyPath(path, ast::DUMMY_NODE_ID))
|
||||
}
|
||||
|
||||
fn ty_sum(&self, path: ast::Path, bounds: OwnedSlice<ast::TyParamBound>) -> P<ast::Ty> {
|
||||
self.ty(path.span,
|
||||
ast::TyPath(path, bounds, ast::DUMMY_NODE_ID))
|
||||
ast::TyObjectSum(self.ty_path(path),
|
||||
bounds))
|
||||
}
|
||||
|
||||
// Might need to take bounds as an argument in the future, if you ever want
|
||||
// to generate a bounded existential trait type.
|
||||
fn ty_ident(&self, span: Span, ident: ast::Ident)
|
||||
-> P<ast::Ty> {
|
||||
self.ty_path(self.path_ident(span, ident), None)
|
||||
self.ty_path(self.path_ident(span, ident))
|
||||
}
|
||||
|
||||
fn ty_rptr(&self,
|
||||
|
|
@ -386,7 +391,7 @@ impl<'a> AstBuilder for ExtCtxt<'a> {
|
|||
self.ident_of("Option")
|
||||
),
|
||||
Vec::new(),
|
||||
vec!( ty )), None)
|
||||
vec!( ty )))
|
||||
}
|
||||
|
||||
fn ty_field_imm(&self, span: Span, name: Ident, ty: P<ast::Ty>) -> ast::TypeField {
|
||||
|
|
@ -425,8 +430,10 @@ impl<'a> AstBuilder for ExtCtxt<'a> {
|
|||
}
|
||||
|
||||
fn ty_vars_global(&self, ty_params: &OwnedSlice<ast::TyParam>) -> Vec<P<ast::Ty>> {
|
||||
ty_params.iter().map(|p| self.ty_path(
|
||||
self.path_global(DUMMY_SP, vec!(p.ident)), None)).collect()
|
||||
ty_params
|
||||
.iter()
|
||||
.map(|p| self.ty_path(self.path_global(DUMMY_SP, vec!(p.ident))))
|
||||
.collect()
|
||||
}
|
||||
|
||||
fn trait_ref(&self, path: ast::Path) -> ast::TraitRef {
|
||||
|
|
|
|||
|
|
@ -444,7 +444,7 @@ impl<'a> TraitDef<'a> {
|
|||
// Create the type of `self`.
|
||||
let self_type = cx.ty_path(
|
||||
cx.path_all(self.span, false, vec!( type_ident ), self_lifetimes,
|
||||
self_ty_params.into_vec()), None);
|
||||
self_ty_params.into_vec()));
|
||||
|
||||
let attr = cx.attribute(
|
||||
self.span,
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ impl<'a> Path<'a> {
|
|||
self_ty: Ident,
|
||||
self_generics: &Generics)
|
||||
-> P<ast::Ty> {
|
||||
cx.ty_path(self.to_path(cx, span, self_ty, self_generics), None)
|
||||
cx.ty_path(self.to_path(cx, span, self_ty, self_generics))
|
||||
}
|
||||
pub fn to_path(&self,
|
||||
cx: &ExtCtxt,
|
||||
|
|
@ -152,7 +152,7 @@ impl<'a> Ty<'a> {
|
|||
}
|
||||
Literal(ref p) => { p.to_ty(cx, span, self_ty, self_generics) }
|
||||
Self => {
|
||||
cx.ty_path(self.to_path(cx, span, self_ty, self_generics), None)
|
||||
cx.ty_path(self.to_path(cx, span, self_ty, self_generics))
|
||||
}
|
||||
Tuple(ref fields) => {
|
||||
let ty = ast::TyTup(fields.iter()
|
||||
|
|
|
|||
|
|
@ -531,7 +531,7 @@ impl<'a, 'b> Context<'a, 'b> {
|
|||
true, Context::rtpath(self.ecx, "Argument"),
|
||||
vec![static_lifetime],
|
||||
vec![]
|
||||
), None);
|
||||
));
|
||||
lets.push(Context::item_static_array(self.ecx,
|
||||
static_args_name,
|
||||
piece_ty,
|
||||
|
|
|
|||
|
|
@ -514,7 +514,7 @@ pub fn parse_nt(p: &mut Parser, name: &str) -> Nonterminal {
|
|||
"stmt" => token::NtStmt(p.parse_stmt(Vec::new())),
|
||||
"pat" => token::NtPat(p.parse_pat()),
|
||||
"expr" => token::NtExpr(p.parse_expr()),
|
||||
"ty" => token::NtTy(p.parse_ty(false /* no need to disambiguate*/)),
|
||||
"ty" => token::NtTy(p.parse_ty()),
|
||||
// this could be handled like a token, since it is one
|
||||
"ident" => match p.token {
|
||||
token::Ident(sn,b) => { p.bump(); token::NtIdent(box sn,b) }
|
||||
|
|
@ -525,7 +525,7 @@ pub fn parse_nt(p: &mut Parser, name: &str) -> Nonterminal {
|
|||
}
|
||||
},
|
||||
"path" => {
|
||||
token::NtPath(box p.parse_path(LifetimeAndTypesWithoutColons).path)
|
||||
token::NtPath(box p.parse_path(LifetimeAndTypesWithoutColons))
|
||||
}
|
||||
"meta" => token::NtMeta(p.parse_meta_item()),
|
||||
"tt" => {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue