F# 4.1からCallerLineNumber, CallerFileName, CallerMemberNameが機能するようになる話
この記事はF# Advent Calendar 2016の7日目の穴埋め用記事です。
今回は標題にあげたCallerLineNumber, CallerFileName, CallerMemberNameの話。
C# 5.0から導入されたCaller Information機能がF# 4.1から使えるようになります。
- 省略可能なパラメータに属性を付ける
- デフォルト値を定義したいならdefaultArg関数を使いましょう
- 関数は対象外
- Optional Parametersはメソッドにしか定義できないので仕方ない
何が嬉しいかって、これのためだけにFSharp.Compiler.Serviceに依存しなくても良くなることですね。
個人的な利用用途の一つにPersimmonでの情報量増加があります。 assertionに失敗した時にファイル名、行番号が簡単にだせるので嬉しいですね*1。
*1:F# 4.1しか表示できない問題は残る