@@ -195,7 +195,7 @@ MacroExpander::expand_invoc (AST::MacroInvocation &invoc)
195195 bool ok = mappings->lookup_macro_def (resolved_node, &rules_def);
196196 rust_assert (ok);
197197
198- auto fragment = AST::ASTFragment::create_empty ();
198+ auto fragment = AST::ASTFragment::create_error ();
199199
200200 if (rules_def->is_builtin ())
201201 fragment
@@ -236,7 +236,7 @@ MacroExpander::expand_invoc_semi (AST::MacroInvocation &invoc)
236236 bool ok = mappings->lookup_macro_def (resolved_node, &rules_def);
237237 rust_assert (ok);
238238
239- auto fragment = AST::ASTFragment::create_empty ();
239+ auto fragment = AST::ASTFragment::create_error ();
240240
241241 if (rules_def->is_builtin ())
242242 fragment
@@ -781,7 +781,7 @@ MacroExpander::match_repetition (Parser<MacroInvocLexer> &parser,
781781/* *
782782 * Helper function to refactor calling a parsing function 0 or more times
783783 */
784- static std::vector< AST::SingleASTNode>
784+ static AST::ASTFragment
785785parse_many (Parser<MacroInvocLexer> &parser, TokenId &delimiter,
786786 std::function<AST::SingleASTNode ()> parse_fn)
787787{
@@ -795,7 +795,7 @@ parse_many (Parser<MacroInvocLexer> &parser, TokenId &delimiter,
795795 nodes.emplace_back (std::move (node));
796796 }
797797
798- return nodes;
798+ return AST::ASTFragment ( std::move ( nodes)) ;
799799}
800800
801801/* *
@@ -804,7 +804,7 @@ parse_many (Parser<MacroInvocLexer> &parser, TokenId &delimiter,
804804 * @param parser Parser to extract items from
805805 * @param delimiter Id of the token on which parsing should stop
806806 */
807- static std::vector< AST::SingleASTNode>
807+ static AST::ASTFragment
808808transcribe_many_items (Parser<MacroInvocLexer> &parser, TokenId &delimiter)
809809{
810810 return parse_many (parser, delimiter, [&parser] () {
@@ -819,7 +819,7 @@ transcribe_many_items (Parser<MacroInvocLexer> &parser, TokenId &delimiter)
819819 * @param parser Parser to extract items from
820820 * @param delimiter Id of the token on which parsing should stop
821821 */
822- static std::vector< AST::SingleASTNode>
822+ static AST::ASTFragment
823823transcribe_many_ext (Parser<MacroInvocLexer> &parser, TokenId &delimiter)
824824{
825825 return parse_many (parser, delimiter, [&parser] () {
@@ -834,7 +834,7 @@ transcribe_many_ext (Parser<MacroInvocLexer> &parser, TokenId &delimiter)
834834 * @param parser Parser to extract items from
835835 * @param delimiter Id of the token on which parsing should stop
836836 */
837- static std::vector< AST::SingleASTNode>
837+ static AST::ASTFragment
838838transcribe_many_trait_items (Parser<MacroInvocLexer> &parser,
839839 TokenId &delimiter)
840840{
@@ -850,7 +850,7 @@ transcribe_many_trait_items (Parser<MacroInvocLexer> &parser,
850850 * @param parser Parser to extract items from
851851 * @param delimiter Id of the token on which parsing should stop
852852 */
853- static std::vector< AST::SingleASTNode>
853+ static AST::ASTFragment
854854transcribe_many_impl_items (Parser<MacroInvocLexer> &parser, TokenId &delimiter)
855855{
856856 return parse_many (parser, delimiter, [&parser] () {
@@ -865,7 +865,7 @@ transcribe_many_impl_items (Parser<MacroInvocLexer> &parser, TokenId &delimiter)
865865 * @param parser Parser to extract items from
866866 * @param delimiter Id of the token on which parsing should stop
867867 */
868- static std::vector< AST::SingleASTNode>
868+ static AST::ASTFragment
869869transcribe_many_trait_impl_items (Parser<MacroInvocLexer> &parser,
870870 TokenId &delimiter)
871871{
@@ -881,7 +881,7 @@ transcribe_many_trait_impl_items (Parser<MacroInvocLexer> &parser,
881881 * @param parser Parser to extract statements from
882882 * @param delimiter Id of the token on which parsing should stop
883883 */
884- static std::vector< AST::SingleASTNode>
884+ static AST::ASTFragment
885885transcribe_many_stmts (Parser<MacroInvocLexer> &parser, TokenId &delimiter)
886886{
887887 auto restrictions = ParseRestrictions ();
@@ -901,28 +901,28 @@ transcribe_many_stmts (Parser<MacroInvocLexer> &parser, TokenId &delimiter)
901901 *
902902 * @param parser Parser to extract statements from
903903 */
904- static std::vector< AST::SingleASTNode>
904+ static AST::ASTFragment
905905transcribe_expression (Parser<MacroInvocLexer> &parser)
906906{
907907 auto expr = parser.parse_expr ();
908908
909- return { AST::SingleASTNode ( std::move (expr))} ;
909+ return AST::ASTFragment ({ std::move (expr)}) ;
910910}
911911
912912/* *
913913 * Transcribe one type from a macro invocation
914914 *
915915 * @param parser Parser to extract statements from
916916 */
917- static std::vector< AST::SingleASTNode>
917+ static AST::ASTFragment
918918transcribe_type (Parser<MacroInvocLexer> &parser)
919919{
920- auto expr = parser.parse_type ();
920+ auto type = parser.parse_type ();
921921
922- return { AST::SingleASTNode ( std::move (expr))} ;
922+ return AST::ASTFragment ({ std::move (type)}) ;
923923}
924924
925- static std::vector< AST::SingleASTNode>
925+ static AST::ASTFragment
926926transcribe_on_delimiter (Parser<MacroInvocLexer> &parser, bool semicolon,
927927 AST::DelimType delimiter, TokenId last_token_id)
928928{
@@ -932,7 +932,7 @@ transcribe_on_delimiter (Parser<MacroInvocLexer> &parser, bool semicolon,
932932 return transcribe_expression (parser);
933933} // namespace Rust
934934
935- static std::vector< AST::SingleASTNode>
935+ static AST::ASTFragment
936936transcribe_context (MacroExpander::ContextType ctx,
937937 Parser<MacroInvocLexer> &parser, bool semicolon,
938938 AST::DelimType delimiter, TokenId last_token_id)
@@ -1049,7 +1049,7 @@ MacroExpander::transcribe_rule (
10491049 // as a statement (either via ExpressionStatement or
10501050 // MacroInvocationWithSemi)
10511051
1052- auto nodes
1052+ auto fragment
10531053 = transcribe_context (ctx, parser, semicolon,
10541054 invoc_token_tree.get_delim_type (), last_token_id);
10551055
@@ -1072,6 +1072,6 @@ MacroExpander::transcribe_rule (
10721072 " tokens here and after are unparsed" );
10731073 }
10741074
1075- return AST::ASTFragment ( std::move (nodes)) ;
1075+ return fragment ;
10761076}
10771077} // namespace Rust
0 commit comments