1
Fork 0

libsyntax: Introduce an InternedString type to reduce @str in the

compiler and use it for attributes
This commit is contained in:
Patrick Walton 2014-01-08 10:35:15 -08:00 committed by Huon Wilson
parent 1d494198bb
commit 70c5a0fbf7
27 changed files with 339 additions and 157 deletions

View file

@ -228,9 +228,17 @@ pub trait AstBuilder {
fn attribute(&self, sp: Span, mi: @ast::MetaItem) -> ast::Attribute;
fn meta_word(&self, sp: Span, w: @str) -> @ast::MetaItem;
fn meta_list(&self, sp: Span, name: @str, mis: ~[@ast::MetaItem]) -> @ast::MetaItem;
fn meta_name_value(&self, sp: Span, name: @str, value: ast::Lit_) -> @ast::MetaItem;
fn meta_word(&self, sp: Span, w: InternedString) -> @ast::MetaItem;
fn meta_list(&self,
sp: Span,
name: InternedString,
mis: ~[@ast::MetaItem])
-> @ast::MetaItem;
fn meta_name_value(&self,
sp: Span,
name: InternedString,
value: ast::Lit_)
-> @ast::MetaItem;
fn view_use(&self, sp: Span,
vis: ast::Visibility, vp: ~[@ast::ViewPath]) -> ast::ViewItem;
@ -866,13 +874,21 @@ impl<'a> AstBuilder for ExtCtxt<'a> {
})
}
fn meta_word(&self, sp: Span, w: @str) -> @ast::MetaItem {
fn meta_word(&self, sp: Span, w: InternedString) -> @ast::MetaItem {
@respan(sp, ast::MetaWord(w))
}
fn meta_list(&self, sp: Span, name: @str, mis: ~[@ast::MetaItem]) -> @ast::MetaItem {
fn meta_list(&self,
sp: Span,
name: InternedString,
mis: ~[@ast::MetaItem])
-> @ast::MetaItem {
@respan(sp, ast::MetaList(name, mis))
}
fn meta_name_value(&self, sp: Span, name: @str, value: ast::Lit_) -> @ast::MetaItem {
fn meta_name_value(&self,
sp: Span,
name: InternedString,
value: ast::Lit_)
-> @ast::MetaItem {
@respan(sp, ast::MetaNameValue(name, respan(sp, value)))
}