Files
Tagir Valeevandintellij-monorepo-bot 70a61859ea IdempotentLoopBody: disable for volatile reads
GitOrigin-RevId: 27aa820f0311844e7fd4a23daa2e306e2f6bae9d
2020-06-22 20:18:36 +03:00

67 lines
1.7 KiB
Java

import java.util.*;
class IdempotentLoopBody {
String getUniqueName(String baseName, Set<String> names) {
int index = 1;
String name = baseName;
<warning descr="Idempotent loop body">while</warning>(names.contains(name)) {
name = baseName + index;
}
return name;
}
String getUniqueNameComplex(String baseName, Set<String> names) {
int index = 1;
String name = baseName;
<warning descr="Idempotent loop body">while</warning> (names.contains(name)) {
String suffix = String.valueOf(index);
if (suffix.length() == 1) {
suffix = "0" + suffix;
}
name = baseName + suffix;
}
return name;
}
String getUniqueNameCorrect(String baseName, Set<String> names) {
int index = 1;
String name = baseName;
while(names.contains(name)) {
name = baseName + (index++);
}
return name;
}
String getUniqueNameFor(String baseName, Set<String> names) {
int index = 1;
String name;
<warning descr="Idempotent loop body">for</warning>(name = baseName; names.contains(name); name = baseName + index);
return name;
}
String leftPad(String val, int desiredLength) {
String result = val;
<warning descr="Idempotent loop body">while</warning>(result.length() < desiredLength) {
result = " " + val;
}
return result;
}
String leftPadCorrect(String val, int desiredLength) {
String result = val;
while(result.length() < desiredLength) {
result = " " + result;
}
return result;
}
volatile int x;
int testVolatile() {
while(true) {
int localX = x;
if (localX > 0) return localX;
if (localX % 2 == 0) return localX / 2;
}
}
}