blob: 33683aaa4d1fa02ca6264f70512b66238737dbeb [file] [log] [blame]
package com.siyeh.igtest.bugs.mismatched_array_read_write;
public class MismatchedArrayReadWrite {
private int[] foo = new int[3];
private int[] bar;
public void bar()
{
foo[2] = bar[2];
}
public void bar2()
{
final int[] barzoom = new int[3];
barzoom[2] = 3;
}
public void bar3()
{
final int[] barzoom = new int[3];
int baz = barzoom[2];
}
public int[] bar4()
{
final int[] barzoom = new int[3];
return barzoom;
}
public int bar5()
{
final int[] barzoom = new int[3];
return barzoom[3];
}
public void bar6()
{
final int[] barzoom = new int[3];
System.out.println(barzoom[3]);
}
public void bar7()
{
final int[] barzoom = new int[3];
System.out.println(barzoom);
}
public void bar8() {
int[][] array = new int[10][10];
for (int i = 9; i >= 0; i--) {
for (int j = 9; j >= 0; j--) {
array[i][j] = 20;
}
}
System.out.println(array[0][0]);
}
public void bar9() {
final int[][] allResults = new int[10][10];
for (int row = 0; row < allResults.length; row++) {
final int[] rowData = allResults[row];
for (int col = 0; col < 10; col++) {
rowData[col] = 100 * 7;
}
}
}
}
class Test{
public void bar(){
int[] a = new int[5];
for(int i = 0; i < a.length; i++){
a[i] = i;
}
final java.lang.Object[] o = new java.lang.Object[]{a};
foo(o);
}
public void foo(java.lang.Object[] o){
}
private void testStuff() {
int[][] array = new int[2][2];
array[0][1]++;
System.out.println(array[0][1]);
}
void foo1() {
final int[] barzoom = {};
barzoom[2] = 3;
}
void foo2() {
final int[] barzoom = new int[]{};
barzoom[2] = 3;
}
void foo3(Object[] otherArr) {
Object[] arr = otherArr.clone();
for (int i = 0; i < 10; i++) arr[i] = i;
}
void foo4() {
int[] array = {1, 2, 4};
assert array.length == 3;
}
private String[] getAttrInfos() {
return null;
}
private String mon() {
String[] attributeInfo = getAttrInfos();
if (attributeInfo != null) {
System.out.println("");
}
return null;
}
}
class Bug {
// Example 1
public void test1() {
final java.util.List<long[]> results = new java.util.ArrayList<>();
for (int i = 0; i < 10; i++) {
results.add(new long[3]);
}
for (int i = 0; i < results.size(); i++) {
final long[] longs = results.get(i); // <-- Contents of array 'longs' are written to, but never read
for (int j = 0; j < 3; j++) {
longs[j] = i * j;
}
}
for (long[] result : results) {
for (long l : result) {
System.out.println(l);
}
}
}
// Example 2
private int[] _ints = {0};
public void print() {
for (int i : _ints) {
System.out.println(i);
}
}
public void test2() {
final Bug bug = new Bug();
final int[] ints = bug._ints; // <-- Contents of array 'ints' are written to, but never read
ints[0] = 1;
bug.print();
}
}
class Toster
{
private static final int MAX = 1;
public static void main(String[] args)
{
new Toster().run();
}
private int[][] values = new int[][] { {new java.util.Random().nextInt()}, {new java.util.Random().nextInt()} };
private void run()
{
for (int j = new java.util.Random().nextInt(values.length); j < new java.util.Random().nextInt(values.length); j++)
{
int[] array = values[j]; //IDEA says here: contents of array 'array' are written to, but never used
for (int i = 0; i < MAX; i++)
{
array[i] = new java.util.Random().nextInt();
}
}
}
}
class Ferrari458Spider implements java.io.Serializable {
private static final java.io.ObjectStreamField[] serialPersistentFields = {
new java.io.ObjectStreamField("b", String.class)
};
}
class TestIDEA128098 {
private static final String[] CONSTANT_ARRAY = new String[]{""}; // warning is on this constant
enum SomeEnum {
ITEM( CONSTANT_ARRAY);
private final String[] myPatterns;
SomeEnum(String... patterns) {
myPatterns = patterns;
}
}
}