Сообщения компилятора F #

Что ж, 2020 год, пришло время для моего ежегодного (F #) сообщения в блоге.

Я написал свой первый пост на FsAdvent в 2018 году.

А потом я написал еще один пост в 2019 году.

Итак, что же произошло в моем мире F # с тех пор? Во-первых, я присоединился к потрясающей компании Quicken Loans, чтобы заниматься F # на постоянной основе. Это было потрясающе! Я также снова подписался на последний раунд Программы наставничества F # Software Foundation - на этот раз как наставник и подопечный. Думаю, в следующий раз сделаю то или другое!

В этом году я хотел бы поделиться небольшим вкладом, который я внес в документацию по F #, и пригласить вас принять участие.

Предыстория

Недавно я просматривал код в процессе работы и заметил, что один из наших файлов проекта F # игнорировал несколько предупреждений, но я не знал, что это были за ошибки. Выглядело это примерно так:

А теперь представьте, что у нас есть такой файл кода:

Компилятор F # обычно выдает предупреждение при обнаружении неполного шаблона (охвачены не все случаи). Однако из-за узла <NoWarn>0025</NoWarn> в файле проекта вывод сборки не включает предупреждение:

Build succeeded.
    0 Warning(s)
    0 Error(s)

Без узла <NoWarn> результат сборки будет:

/somepath/FsAdvent2020.fs(8,11): warning FS0025: Incomplete pattern matches on this expression. For example, the value 'Hot' may indicate a case not covered by the pattern(s). [/somepath/FsAdvent2020.fsproj]
    1 Warning(s)
    0 Error(s)

Теперь, как разработчик F # узнает, что такое FS0025? Что ж, им повезло ... вроде как. Если они посетят страницу Сообщения компилятора F #, они увидят список сообщений компилятора. Однако это еще не все. На момент написания оглавление выглядело так:

Как я внес свой вклад

Я не знал о упомянутой выше странице сообщений компилятора F #. Я поискал в Интернете несколько ошибок, связанных с F #, и наткнулся на проблему GitHub от декабря 2019 года: Страницы документации для ошибок компилятора F #, таких как C #. Идеально! Chet Husk проделал всю тяжелую работу в январе 2020 года. Затем, с небольшой поддержкой и руководством, я внес некоторые улучшения во вспомогательный скрипт и добавил сообщение 0025 о неполном сопоставлении с образцом:



Как вы можете внести свой вклад

  1. Используйте https://github.com/dotnet/docs/pull/21424 в качестве руководства.
  2. См. Https://github.com/dotnet/docs/issues/16177#issuecomment-724426546, чтобы узнать, где найти номера ошибок.

Удачи и благодарю вас за то, что каждый год вы вносите свой вклад в улучшение F #!

Этот пост является частью #FsAdvent 2020, организованной Сергеем Тихоном.
Список всех сообщений см. в Адвент-календаре F # на английском языке на 2020 год.
Спасибо, Сергей!