# V6100. An object is used as an argument to its own method. Consider checking the first actual argument of the 'Foo' method.

Анализатор обнаружил вызов метода, в который в качестве аргумента передаётся сам объект, у которого вызывается метод. Вероятно, данный код содержит ошибку, и в метод должен передаваться другой объект.

Рассмотрим пример:

    a.foo(a);

Здесь из-за опечатки используется неверное имя переменной. Тогда корректный код должен был быть таким:

    a.foo(b);

или таким:

    b.foo(a);

Пример кода из реального приложения:

    public class ByteBufferBodyConsumer {
      private ByteBuffer byteBuffer;
      ....
      public void consume(ByteBuffer byteBuffer) {
        byteBuffer.put(byteBuffer);
      }
    }

Здесь в 'byteBuffer' пытаются вставить его собственные значения.

Корректный код должен выглядеть так:

    public class ByteBufferBodyConsumer {
      private ByteBuffer byteBuffer;
      ....
      public void consume(ByteBuffer byteBuffer) {
        this.byteBuffer.put(byteBuffer);
      }
    }

Данная диагностика классифицируется как:

CWE-688

Взгляните на примеры ошибок, обнаруженных с помощью диагностики V6100.