diff options
Diffstat (limited to 'src/buildtool/build_engine/expression/expression.cpp')
-rw-r--r-- | src/buildtool/build_engine/expression/expression.cpp | 18 |
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 { |