# 80 ---------------------------------------------------------------------------
# Because there is a difference in precedence level between || and &&
#   a || b || c && d
# is equivalent to
#   a || b || (c && d)
# Because parens are not stored in the parse tree, the formatter recreates the
# minimally required set to maintain meaning. However, this particular case can
# be confusing for human readers, so we special case these ones and add
# strictly-unnecessary parens.

supports_android = (is_apk || is_android_resources ||
    (is_java_library && defined(invoker.supports_android) &&
      invoker.supports_android))

enable_one_click_signin = is_win || is_mac || (is_linux && !is_chromeos)
enable_one_click_signin = (is_linux && !is_chromeos) || is_win || is_mac

x = c || (a&&b)
x = (a&&b) || c
x = a&&b || c

x = c && (a||b)
x = (a||b) && c
x = a||b && c
