Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ffaa7d67 authored by Treehugger Robot's avatar Treehugger Robot Committed by Maciej Zenczykowski
Browse files

expected.h - fix bugprone-branch-clone warning



Fixes:
  system/core/base/include/android-base/expected.h:606:39: warning: repeated branch in conditional chain [bugprone-branch-clone]
    if (x.has_value() != y.has_value()) {
                                        ^
  system/core/base/include/android-base/expected.h:608:4: note: end of the original
    } else if (!x.has_value()) {
     ^
  system/core/base/include/android-base/expected.h:610:10: note: clone 1 starts here
    } else {
           ^

Test: builds
Bug: 153035880
Signed-off-by: default avatarMaciej Żenczykowski <maze@google.com>
Change-Id: Ie67a8bb1bf622319adea15466c42077e0e9b1a18
Merged-In: Ie67a8bb1bf622319adea15466c42077e0e9b1a18
parent 6d99e68e
Loading
Loading
Loading
Loading
+12 −28
Original line number Diff line number Diff line
@@ -387,14 +387,10 @@ class _NODISCARD_ expected {

template<class T1, class E1, class T2, class E2>
constexpr bool operator==(const expected<T1, E1>& x, const expected<T2, E2>& y) {
  if (x.has_value() != y.has_value()) {
    return false;
  } else if (!x.has_value()) {
    return x.error() == y.error();
  } else {
  if (x.has_value() != y.has_value()) return false;
  if (!x.has_value()) return x.error() == y.error();
  return *x == *y;
}
}

template<class T1, class E1, class T2, class E2>
constexpr bool operator!=(const expected<T1, E1>& x, const expected<T2, E2>& y) {
@@ -581,35 +577,23 @@ class _NODISCARD_ expected<void, E> {

template<class E1, class E2>
constexpr bool operator==(const expected<void, E1>& x, const expected<void, E2>& y) {
  if (x.has_value() != y.has_value()) {
    return false;
  } else if (!x.has_value()) {
    return x.error() == y.error();
  } else {
  if (x.has_value() != y.has_value()) return false;
  if (!x.has_value()) return x.error() == y.error();
  return true;
}
}

template<class T1, class E1, class E2>
constexpr bool operator==(const expected<T1, E1>& x, const expected<void, E2>& y) {
  if (x.has_value() != y.has_value()) {
  if (x.has_value() != y.has_value()) return false;
  if (!x.has_value()) return x.error() == y.error();
  return false;
  } else if (!x.has_value()) {
    return x.error() == y.error();
  } else {
    return false;
  }
}

template<class E1, class T2, class E2>
constexpr bool operator==(const expected<void, E1>& x, const expected<T2, E2>& y) {
  if (x.has_value() != y.has_value()) {
  if (x.has_value() != y.has_value()) return false;
  if (!x.has_value()) return x.error() == y.error();
  return false;
  } else if (!x.has_value()) {
    return x.error() == y.error();
  } else {
    return false;
  }
}

template<class E>