diff options
author | John Hodge <tpg@ucc.asn.au> | 2017-09-10 09:01:01 +0800 |
---|---|---|
committer | John Hodge <tpg@ucc.asn.au> | 2017-09-10 09:01:01 +0800 |
commit | 32d747bd0c20c5b8ee0dedd71eea58b0c12cfe50 (patch) | |
tree | 3e4f27bedc5f2fe0f52a27e41eedb5ce32f057a1 /src/parse/root.cpp | |
parent | f75212eed999502f05605ff747ab71185b2269c5 (diff) | |
download | mrust-32d747bd0c20c5b8ee0dedd71eea58b0c12cfe50.tar.gz |
Parse - Store attributes for trait items
Diffstat (limited to 'src/parse/root.cpp')
-rw-r--r-- | src/parse/root.cpp | 10 |
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); |