﻿# V8035\. Type assertion is always false\. Check interfaces used in the type assertion, as they contain methods with incompatible signatures\.

Анализатор обнаружил type assertion, который никогда не завершится успешно, потому что оба интерфейса содержат метод с одинаковым именем, но разными сигнатурами\.

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

```cpp
type Validator interface {
  Validate() error
}

type ContextValidator interface {
  Validate(map[string]string) error
}

func check(v Validator) {
  ....
  if cv, ok = v.(ContextValidator); ok {
    ....
  }
  ....
}
```

В примере утверждение типа `v.(ContextValidator)` никогда не будет истинным, т\. к\. сигнатуры метода `Validate` у интерфейсов `Validator` и `ContextValidator` отличаются\.

Такой type assertion будет иметь смысл только в том случае, если сигнатуры метода `Validate` будут одинаковыми:

```cpp
type Validator interface {
  Validate() error
}

type ContextValidator interface {
  Validate() error
}
```