diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/parse/expr.cpp | 3 | ||||
-rw-r--r-- | src/parse/root.cpp | 3 |
2 files changed, 5 insertions, 1 deletions
diff --git a/src/parse/expr.cpp b/src/parse/expr.cpp index e0529155..f074bc3a 100644 --- a/src/parse/expr.cpp +++ b/src/parse/expr.cpp @@ -1009,12 +1009,13 @@ ExprNodeP Parse_ExprVal_StructLiteral(TokenStream& lex, AST::Path path) GET_TOK(tok, lex); } CHECK_TOK(tok, TOK_IDENT); + auto h = lex.getHygiene(); auto name = mv$(tok.str()); ExprNodeP val; if( lex.lookahead(0) != TOK_COLON ) { - val = NEWNODE( AST::ExprNode_NamedValue, ::AST::Path(name) ); + val = NEWNODE( AST::ExprNode_NamedValue, ::AST::Path(::AST::Path::TagRelative{}, h, { ::AST::PathNode(name) }) ); } else { diff --git a/src/parse/root.cpp b/src/parse/root.cpp index 33087724..85d51ddb 100644 --- a/src/parse/root.cpp +++ b/src/parse/root.cpp @@ -1376,6 +1376,9 @@ void Parse_Use(TokenStream& lex, ::std::function<void(AST::UseStmt, ::std::strin Parse_Use_Set(lex, span_start, path, fcn); GET_CHECK_TOK(tok, lex, TOK_BRACE_CLOSE); return; + case TOK_INTERPOLATED_PATH: + path = mv$(tok.frag_path()); + break; default: throw ParseError::Unexpected(lex, tok); } |