summaryrefslogtreecommitdiff
path: root/src/parse/root.cpp
diff options
context:
space:
mode:
authorJohn Hodge <tpg@ucc.asn.au>2017-09-10 09:01:01 +0800
committerJohn Hodge <tpg@ucc.asn.au>2017-09-10 09:01:01 +0800
commit32d747bd0c20c5b8ee0dedd71eea58b0c12cfe50 (patch)
tree3e4f27bedc5f2fe0f52a27e41eedb5ce32f057a1 /src/parse/root.cpp
parentf75212eed999502f05605ff747ab71185b2269c5 (diff)
downloadmrust-32d747bd0c20c5b8ee0dedd71eea58b0c12cfe50.tar.gz
Parse - Store attributes for trait items
Diffstat (limited to 'src/parse/root.cpp')
-rw-r--r--src/parse/root.cpp10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/parse/root.cpp b/src/parse/root.cpp
index 406217f2..e89f7025 100644
--- a/src/parse/root.cpp
+++ b/src/parse/root.cpp
@@ -724,8 +724,7 @@ AST::Trait Parse_TraitDef(TokenStream& lex, const AST::MetaItems& meta_items)
}
CHECK_TOK(tok, TOK_SEMICOLON);
- // TODO: Attributes on associated statics
- trait.add_static( mv$(name), ::AST::Static(AST::Static::STATIC, mv$(ty), val)/*, mv$(item_attrs)*/ );
+ trait.add_static( mv$(name), mv$(item_attrs), ::AST::Static(AST::Static::STATIC, mv$(ty), val) );
break; }
case TOK_RWORD_CONST: {
GET_CHECK_TOK(tok, lex, TOK_IDENT);
@@ -740,8 +739,7 @@ AST::Trait Parse_TraitDef(TokenStream& lex, const AST::MetaItems& meta_items)
}
CHECK_TOK(tok, TOK_SEMICOLON);
- // TODO: Attributes on associated constants
- trait.add_static( mv$(name), ::AST::Static(AST::Static::CONST, mv$(ty), val)/*, mv$(item_attrs)*/ );
+ trait.add_static( mv$(name), mv$(item_attrs), ::AST::Static(AST::Static::CONST, mv$(ty), val) );
break; }
// Associated type
case TOK_RWORD_TYPE: {
@@ -765,7 +763,7 @@ AST::Trait Parse_TraitDef(TokenStream& lex, const AST::MetaItems& meta_items)
}
CHECK_TOK(tok, TOK_SEMICOLON);
- trait.add_type( ::std::move(name), ::std::move(default_type) );
+ trait.add_type( ::std::move(name), mv$(item_attrs), ::std::move(default_type) );
trait.items().back().data.as_Type().params() = mv$(atype_params);
break; }
@@ -808,7 +806,7 @@ AST::Trait Parse_TraitDef(TokenStream& lex, const AST::MetaItems& meta_items)
throw ParseError::Unexpected(lex, tok);
}
// TODO: Store `item_attrs`
- trait.add_function( ::std::move(name), /*mv$(item_attrs),*/ ::std::move(fcn) );
+ trait.add_function( ::std::move(name), mv$(item_attrs), ::std::move(fcn) );
break; }
default:
throw ParseError::Unexpected(lex, tok);