1
1
Fork 0
mirror of https://github.com/NixOS/nix.git synced 2025-11-09 03:56:01 +01:00

parser.y: use emplace_back() for vector<AttrName>

This commit is contained in:
Taeer Bar-Yam 2025-10-27 18:46:30 +01:00
parent ef8dd58d9b
commit 50e8d17f3c

View file

@ -440,11 +440,11 @@ binds1
; ;
attrs attrs
: attrs attr { $$ = std::move($1); $$.emplace_back(AttrName(state->symbols.create($2)), state->at(@2)); } : attrs attr { $$ = std::move($1); $$.emplace_back(state->symbols.create($2), state->at(@2)); }
| attrs string_attr | attrs string_attr
{ $$ = std::move($1); { $$ = std::move($1);
std::visit(overloaded { std::visit(overloaded {
[&](std::string_view str) { $$.emplace_back(AttrName(state->symbols.create(str)), state->at(@2)); }, [&](std::string_view str) { $$.emplace_back(state->symbols.create(str), state->at(@2)); },
[&](Expr * expr) { [&](Expr * expr) {
throw ParseError({ throw ParseError({
.msg = HintFmt("dynamic attributes not allowed in inherit"), .msg = HintFmt("dynamic attributes not allowed in inherit"),
@ -457,19 +457,19 @@ attrs
; ;
attrpath attrpath
: attrpath '.' attr { $$ = std::move($1); $$.push_back(AttrName(state->symbols.create($3))); } : attrpath '.' attr { $$ = std::move($1); $$.emplace_back(state->symbols.create($3)); }
| attrpath '.' string_attr | attrpath '.' string_attr
{ $$ = std::move($1); { $$ = std::move($1);
std::visit(overloaded { std::visit(overloaded {
[&](std::string_view str) { $$.push_back(AttrName(state->symbols.create(str))); }, [&](std::string_view str) { $$.emplace_back(state->symbols.create(str)); },
[&](Expr * expr) { $$.push_back(AttrName(expr)); } [&](Expr * expr) { $$.emplace_back(expr); }
}, std::move($3)); }, std::move($3));
} }
| attr { $$.push_back(AttrName(state->symbols.create($1))); } | attr { $$.emplace_back(state->symbols.create($1)); }
| string_attr | string_attr
{ std::visit(overloaded { { std::visit(overloaded {
[&](std::string_view str) { $$.push_back(AttrName(state->symbols.create(str))); }, [&](std::string_view str) { $$.emplace_back(state->symbols.create(str)); },
[&](Expr * expr) { $$.push_back(AttrName(expr)); } [&](Expr * expr) { $$.emplace_back(expr); }
}, std::move($1)); }, std::move($1));
} }
; ;