V8024. Redundant type assertion. The type of a variable already embeds the type that is checked using type assertion.
Анализатор обнаружил избыточную проверку типа.
Рассмотрим пример:
func foo(rwc io.ReadWriteCloser) io.Reader {
....
return rwc.(io.Reader)
}
Проверка типа rwc.(io.Reader) не имеет смысла, т. к. тип io.ReadWriteCloser параметра rwc, включает в себя интерфейс io.Reader.
Исправленный код:
func foo(rwc io.ReadWriteCloser) io.Reader {
....
return rwc
}
Также не имеет смысла проверять тип выражения на пустой интерфейс (interface {} или any), т. к. любой тип включает в себя такой интерфейс. Пример:
func foo(rwc io.ReadWriteCloser) interface {} {
....
return rwc.(interface{})
}
Исправленный код:
func f(rwc io.ReadWriteCloser) interface {} {
....
return rwc
}