Отключить предупреждения компилятора в строке - PullRequest
12 голосов
/ 29 августа 2011

Можно ли отключить предупреждения компилятора для определенных строк?

В C # это работает:

[Obsolete]
class Old { }

#pragma warning disable 612
    var oldWithoutWarning = new Old();
#pragma warning restore 612
    var oldWithWarning = new Old();

Это было бы очень полезно для отключения предупреждений о неполных совпадениях с образцом, особенно когдафункция принимает частный случай DU.

Ответы [ 2 ]

6 голосов
/ 29 августа 2011

Нет, предупреждения отключаются для каждого файла (или, возможно, «отсюда до конца файла») при использовании #nowarn. (Или для каждой компиляции / проекта при использовании свойств проекта / --nowarn командной строки.)

1 голос
/ 26 марта 2018

Поскольку в F # все является выражением, нетрудно извлечь строку или часть строки и поместить ее в собственный файл.

Пример моей проблемы, где :: сопоставление с образцом предупредило о возможности пустого списка, но мое состояние, переданное Seq.fold, всегда имеет список по крайней мере с одним элементом.

module FoldBookmarks
#nowarn "25"

let foldIntoBookmarks: (string * int * int) seq -> XamlReport.PDF.Bookmark seq = 
        Seq.fold (fun ((tl,pl,acc)::l) (t,p,_) -> (t,acc,p+acc)::((tl,pl,acc)::l)) [("",0,1)]
        >> Seq.map(fun (x,y,_) -> PDF.Bookmark(Title=x, PageNumber= System.Nullable(y)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...