Дано: простой скрипт с тестами.
Требуется найти как можно больше стилистических проблем в коде, которые можно исправить с помощью ruleguard правил. Вам нужно написать эти правила.
Требования: после изменений, предлагаемых диагностиками, тесты должны по-прежнему проходить.
Пример решения находится в той же директории, но настоятельно рекомендуется не подглядывать в него до написания своего варианта.
Нужно реализовать диагностику, которая будет предлагать предлагать заменять x = x + 2
на x += 2
, но для случая
x = x + 1
рекомендация будет выглядеть как x++
.
Успешно выполненное задание означает два предупреждения на этом коде:
package target
func example(x int) {
x = x + 4 // want `\Qcould rewite as x += 4`
x = x + 1 // want `\Qcould rewrite as x++`
}
Портируем unslice диагостику из анализатора gocritic.
Стоит учесть все граничные случаи (их не так много, но они есть).
Вам потребуются паттерны типов.