summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/parse/expr.cpp3
-rw-r--r--src/parse/root.cpp3
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);
}