import java.util.ArrayList;
import java.util.List;
class Main {
void suspicious(Object[][] data) {
List<String> stringList = new ArrayList<>();
stringList.remove(<warning descr="'List<String>' may not contain objects of type 'Object[][]'">data</warning>);
stringList.remove(<warning descr="'List<String>' may not contain objects of type 'Object[]'">data[0]</warning>);
stringList.remove(<warning descr="Suspicious call to 'List.remove'">data[0][0]</warning>);
stringList.contains(<warning descr="'List<String>' may not contain objects of type 'Object[][]'">data</warning>);
stringList.contains(<warning descr="'List<String>' may not contain objects of type 'Object[]'">data[0]</warning>);
stringList.contains(<warning descr="Suspicious call to 'List.contains'">data[0][0]</warning>);
M<? extends String> m = new M<>();
stringList.contains(m.get());
M<? super String> m1 = new M<>();
stringList.contains(<warning descr="Suspicious call to 'List.contains'">m1.get()</warning>);
M<?> m2 = new M<>();
stringList.contains(<warning descr="Suspicious call to 'List.contains'">m2.get()</warning>);
}
class M<T> {
public T get() {
return null;
}
}
}