The analyzer has detected a code fragment where the if statement is on the same line as the closing brace of the previous if statement. Perhaps the else keyword is missing here, causing the program to behave differently than developers intended.
The example:
function setPermissions(role) {
let permissions = Permissions.NONE;
if (role == ADMIN) {
permissions = Permissions.ANY;
} if (role == USER) { // <=
permissions = Permissions.ONLY_READ;
} else {
permissions = Permissions.NONE;
}
}
This snippet defines the system permissions based on the user's role. If the role is ADMIN, the rights variable is set to Permissions.ANY. However, the checks then continue. The role == USER condition is false, and the permissions variable is set to NONE.
The fixed code:
function setPermissions(role) {
let permissions = Permissions.NONE;
if (role == ADMIN) {
permissions = Permissions.ANY;
} else if (role == USER) {
permissions = Permissions.ONLY_READ;
} else {
permissions = Permissions.NONE;
}
}
If you do not intend to use the else-if chain, change the code formatting for clarity:
if (x > 10) {
Do1();
}
if (x > 7) {
Do2();
} else {
Do3();
}
This diagnostic rule is classified as:
Was this page helpful?
Your message has been sent. We will email you at
If you do not see the email in your inbox, please check if it is filtered to one of the following folders: