Skip to content

Commit a329484

Browse files
committed
Instantiate in MapInitializer
1 parent 2fd17e2 commit a329484

1 file changed

Lines changed: 7 additions & 1 deletion

File tree

‎cpp2rust/converter/mapper.cpp‎

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,13 @@ std::string Map(Converter &converter, clang::QualType qual_type) {
8484
std::string MapInitializer(Converter &converter, clang::QualType qual_type) {
8585
auto [rule, subs] =
8686
RuleRegistry::Search(converter.GetASTContext(), qual_type);
87-
if (rule && !rule->initializer.empty()) {
87+
if (!rule) {
88+
return {};
89+
}
90+
if (auto n = genericIndex(rule->type_info.type); n && *n <= subs.size()) {
91+
return MapInitializer(converter, subs[*n - 1]);
92+
}
93+
if (!rule->initializer.empty()) {
8894
return Matcher::InstantiateTgt(converter, subs, rule->initializer);
8995
}
9096
return {};

0 commit comments

Comments
 (0)