diff options
author | David Ostrovsky <david@ostrovsky.org> | 2023-10-19 12:46:33 +0200 |
---|---|---|
committer | David Ostrovsky <david@ostrovsky.org> | 2023-10-20 08:12:39 +0200 |
commit | b4c5aa9cc6756f78794c8ae0b50bcd912d9cea98 (patch) | |
tree | f1c289364fbaaf2e5fa4253a9d7ba8498248d3ca | |
parent | 0253be6a5bff7c1e71ba761972f4c16d89d9f979 (diff) |
Fix OperatorPrecedence bug pattern flagged by error prone
OperatorPrecedence bug pattern was extended recently to also suggest
disambiguation of logical and ternary operators. To avoid confusion,
that this could be a false positive, the documentation for this bug
patter was adjusted as well:
The explicit operator precedence using parens:
boolean e = (a || b) ? c : d;
should be prefered to implicit operator precedence:
boolean e = a || b ? c : d;
The intent is that it makes it easier to read, which is of course
subjectiver. The Google style guide: [2] suggests adding parens unless
"there is no reasonable chance the code will be misinterpreted without
them" and adds: "It is not reasonable to assume that every reader has
the entire Java operator precedence table memorized."
[1] https://github.com/google/error-prone/commit/39d288437add5c0b47f78b00d44c158259b86adf
[2] https://google.github.io/styleguide/javaguide.html#s4.7-grouping-parentheses
Details: https://errorprone.info/bugpattern/OperatorPrecedence
Release-Notes: skip
Change-Id: I41fc2f20f19c48bf35fdeaadcc347b3a8390c934
5 files changed, 12 insertions, 10 deletions
diff --git a/java/com/google/gerrit/extensions/common/EmailInfo.java b/java/com/google/gerrit/extensions/common/EmailInfo.java index 184a89f883..96e8adf946 100644 --- a/java/com/google/gerrit/extensions/common/EmailInfo.java +++ b/java/com/google/gerrit/extensions/common/EmailInfo.java @@ -20,6 +20,6 @@ public class EmailInfo { public Boolean pendingConfirmation; public void preferred(String e) { - this.preferred = e != null && e.equals(email) ? true : null; + this.preferred = (e != null && e.equals(email)) ? true : null; } } diff --git a/java/com/google/gerrit/server/restapi/project/CreateBranch.java b/java/com/google/gerrit/server/restapi/project/CreateBranch.java index 412559bf5a..ae9b1a88e3 100644 --- a/java/com/google/gerrit/server/restapi/project/CreateBranch.java +++ b/java/com/google/gerrit/server/restapi/project/CreateBranch.java @@ -208,8 +208,8 @@ public class CreateBranch info.canDelete = null; } else { info.canDelete = - permissionBackend.currentUser().ref(name).testOrFalse(RefPermission.DELETE) - && rsrc.getProjectState().statePermitsWrite() + (permissionBackend.currentUser().ref(name).testOrFalse(RefPermission.DELETE) + && rsrc.getProjectState().statePermitsWrite()) ? true : null; } diff --git a/java/com/google/gerrit/server/restapi/project/ListBranches.java b/java/com/google/gerrit/server/restapi/project/ListBranches.java index 1327319a6e..3cb412a50c 100644 --- a/java/com/google/gerrit/server/restapi/project/ListBranches.java +++ b/java/com/google/gerrit/server/restapi/project/ListBranches.java @@ -348,8 +348,8 @@ public class ListBranches implements RestReadView<ProjectResource> { info.canDelete = null; } else { info.canDelete = - perm.ref(ref.getName()).testOrFalse(RefPermission.DELETE) - && projectState.statePermitsWrite() + (perm.ref(ref.getName()).testOrFalse(RefPermission.DELETE) + && projectState.statePermitsWrite()) ? true : null; } @@ -415,9 +415,9 @@ public class ListBranches implements RestReadView<ProjectResource> { info.canDelete = null; } else { info.canDelete = - !targets.contains(ref.getName()) + (!targets.contains(ref.getName()) && perm.testOrFalse(RefPermission.DELETE) - && projectState.statePermitsWrite() + && projectState.statePermitsWrite()) ? true : null; } diff --git a/java/com/google/gerrit/server/restapi/project/ListTags.java b/java/com/google/gerrit/server/restapi/project/ListTags.java index 31e4be5a08..83d29de075 100644 --- a/java/com/google/gerrit/server/restapi/project/ListTags.java +++ b/java/com/google/gerrit/server/restapi/project/ListTags.java @@ -181,7 +181,9 @@ public class ListTags implements RestReadView<ProjectResource> { if (!isConfigRef(ref.getName())) { // Never allow to delete the meta config branch. canDelete = - perm.testOrFalse(RefPermission.DELETE) && projectState.statePermitsWrite() ? true : null; + (perm.testOrFalse(RefPermission.DELETE) && projectState.statePermitsWrite()) + ? true + : null; } ImmutableList<WebLinkInfo> webLinks = links.getTagLinks(projectState.getName(), ref.getName()); diff --git a/javatests/com/google/gerrit/acceptance/rest/account/ExternalIdIT.java b/javatests/com/google/gerrit/acceptance/rest/account/ExternalIdIT.java index a76bf47611..749ca792ca 100644 --- a/javatests/com/google/gerrit/acceptance/rest/account/ExternalIdIT.java +++ b/javatests/com/google/gerrit/acceptance/rest/account/ExternalIdIT.java @@ -1083,9 +1083,9 @@ public class ExternalIdIT extends AbstractDaemonTest { info.emailAddress = extId.email(); info.canDelete = !extId.isScheme(SCHEME_USERNAME) ? true : null; info.trusted = - extId.isScheme(SCHEME_MAILTO) + (extId.isScheme(SCHEME_MAILTO) || extId.isScheme(SCHEME_UUID) - || extId.isScheme(SCHEME_USERNAME) + || extId.isScheme(SCHEME_USERNAME)) ? true : null; return info; |