@@ -155,29 +155,23 @@ class LVForwardReferences {
155
155
}
156
156
157
157
void add (StringRef Name, TypeIndex TIForward) {
158
- if (ForwardTypesNames.find (Name) == ForwardTypesNames.end ()) {
159
- ForwardTypesNames.emplace (
160
- std::piecewise_construct, std::forward_as_tuple (Name),
161
- std::forward_as_tuple (TIForward, TypeIndex::None ()));
162
- } else {
158
+ auto [It, Inserted] =
159
+ ForwardTypesNames.try_emplace (Name, TIForward, TypeIndex::None ());
160
+ if (!Inserted) {
163
161
// Update a recorded definition with its reference.
164
- ForwardTypesNames[Name] .first = TIForward;
165
- add (TIForward, ForwardTypesNames[Name] .second );
162
+ It-> second .first = TIForward;
163
+ add (TIForward, It-> second .second );
166
164
}
167
165
}
168
166
169
167
// Update a previously recorded forward reference with its definition.
170
168
void update (StringRef Name, TypeIndex TIReference) {
171
- auto It = ForwardTypesNames.find (Name);
172
- if (It != ForwardTypesNames.end ()) {
169
+ auto [It, Inserted] =
170
+ ForwardTypesNames.try_emplace (Name, TypeIndex::None (), TIReference);
171
+ if (!Inserted) {
173
172
// Update the recorded forward reference with its definition.
174
173
It->second .second = TIReference;
175
174
add (It->second .first , TIReference);
176
- } else {
177
- // We have not seen the forward reference. Insert the definition.
178
- ForwardTypesNames.emplace (
179
- std::piecewise_construct, std::forward_as_tuple (Name),
180
- std::forward_as_tuple (TypeIndex::None (), TIReference));
181
175
}
182
176
}
183
177
0 commit comments