﻿# V8024\. Redundant type assertion\. The type of a variable already embeds the type that is checked using type assertion\.

Анализатор обнаружил избыточную проверку типа\. 

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

```cpp
func foo(rwc io.ReadWriteCloser) io.Reader {
  ....
  return rwc.(io.Reader)
}
```

Проверка типа `rwc.(io.Reader)` не имеет смысла, т\. к\. тип [`io.ReadWriteCloser`](https://pkg.go.dev/io#ReadWriteCloser) параметра `rwc`,  включает в себя интерфейс [`io.Reader`](https://pkg.go.dev/io#Reader)\.

Исправленный код:

```cpp
func foo(rwc io.ReadWriteCloser) io.Reader {
  ....
  return rwc
}
```

Также не имеет смысла проверять тип выражения на пустой интерфейс \(`interface {}` или `any`\), т\. к\. любой тип включает в себя такой интерфейс\. Пример:

```cpp
func foo(rwc io.ReadWriteCloser) interface {} {
  ....
  return rwc.(interface{})
}
```

Исправленный код:

```cpp
func f(rwc io.ReadWriteCloser) interface {} {
  ....
  return rwc
}
```