Skip to content

Commit 6b77e67

Browse files
committed
Swift: use same implementation for createTarget{Link,Object}Domain
1 parent 23344a7 commit 6b77e67

File tree

1 file changed

+15
-14
lines changed

1 file changed

+15
-14
lines changed

swift/extractor/infra/TargetDomains.cpp

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -53,32 +53,33 @@ std::optional<TrapDomain> createTargetTrapDomain(SwiftExtractorState& state,
5353
return std::nullopt;
5454
}
5555

56-
std::optional<LinkDomain> createTargetLinkDomain(const SwiftExtractorState& state,
57-
const std::filesystem::path& target) {
56+
namespace {
57+
template <typename Domain>
58+
std::optional<Domain> createTarget(const SwiftExtractorState& state,
59+
const std::filesystem::path& target,
60+
const char* extension) {
5861
if (target.empty()) {
5962
return std::nullopt;
6063
}
61-
auto file = getRelativeTrapPath(target, TrapType::linkage, ".link");
64+
auto file = getRelativeTrapPath(target, TrapType::linkage, extension);
6265
auto ret =
6366
TargetFile::create(file, state.configuration.trapDir, state.configuration.getTempTrapDir());
6467
if (ret) {
65-
return LinkDomain{*std::move(ret)};
68+
return Domain{*std::move(ret)};
6669
}
6770
return std::nullopt;
6871
}
6972

73+
} // namespace
74+
75+
std::optional<LinkDomain> createTargetLinkDomain(const SwiftExtractorState& state,
76+
const std::filesystem::path& target) {
77+
return createTarget<LinkDomain>(state, target, ".link");
78+
}
79+
7080
std::optional<ObjectDomain> createTargetObjectDomain(const SwiftExtractorState& state,
7181
const std::filesystem::path& target) {
72-
if (target.empty()) {
73-
return std::nullopt;
74-
}
75-
auto file = getRelativeTrapPath(target, TrapType::linkage, ".odep");
76-
auto ret =
77-
TargetFile::create(file, state.configuration.trapDir, state.configuration.getTempTrapDir());
78-
if (ret) {
79-
return ObjectDomain{*std::move(ret)};
80-
}
81-
return std::nullopt;
82+
return createTarget<ObjectDomain>(state, target, ".odep");
8283
}
8384

8485
} // namespace codeql

0 commit comments

Comments
 (0)