summaryrefslogtreecommitdiff
path: root/src/buildtool/build_engine/expression/expression.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildtool/build_engine/expression/expression.cpp')
-rw-r--r--src/buildtool/build_engine/expression/expression.cpp18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/buildtool/build_engine/expression/expression.cpp b/src/buildtool/build_engine/expression/expression.cpp
index 7d0f55b5..cbb6a18d 100644
--- a/src/buildtool/build_engine/expression/expression.cpp
+++ b/src/buildtool/build_engine/expression/expression.cpp
@@ -246,11 +246,19 @@ auto Expression::ComputeHash() const noexcept -> std::string {
IsResult() or IsNode() or IsName()) {
// just hash the JSON representation, but prepend "@" for artifact,
// "=" for result, "#" for node, and "$" for name.
- std::string prefix{IsArtifact() ? "@"
- : IsResult() ? "="
- : IsNode() ? "#"
- : IsName() ? "$"
- : ""};
+ std::string prefix;
+ if (IsArtifact()) {
+ prefix = "@";
+ }
+ else if (IsResult()) {
+ prefix = "=";
+ }
+ else if (IsNode()) {
+ prefix = "#";
+ }
+ else if (IsName()) {
+ prefix = "$";
+ }
hash = hash_function.PlainHashData(prefix + ToString()).Bytes();
}
else {