Skip to content

Latest commit

 

History

History
38 lines (23 loc) · 1.99 KB

tasks.md

File metadata and controls

38 lines (23 loc) · 1.99 KB

Практические задания

1. 99 bottles

Дано: простой скрипт с тестами.

Требуется найти как можно больше стилистических проблем в коде, которые можно исправить с помощью ruleguard правил. Вам нужно написать эти правила.

Требования: после изменений, предлагаемых диагностиками, тесты должны по-прежнему проходить.

Пример решения находится в той же директории, но настоятельно рекомендуется не подглядывать в него до написания своего варианта.

2. Разрешение конфликтов для правил

Нужно реализовать диагностику, которая будет предлагать предлагать заменять 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++`
}

3. unslice чекер из go-critic

Портируем unslice диагостику из анализатора gocritic.

image

Стоит учесть все граничные случаи (их не так много, но они есть).

Вам потребуются паттерны типов.