Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top

Вебинар: Стратегия без иллюзий: как превращать цели в результаты - 19.08

menu mobile close menu
Проверка проектов
Дополнительная информация
toggle menu Оглавление

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

06 Авг 2026

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

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

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 будут одинаковыми:

type Validator interface {
  Validate() error
}

type ContextValidator interface {
  Validate() error
}