Roslyn拡張: Analyzerの作り方と、各メソッドの使い方 - Build Insider https://www.buildinsider.net/enterprise/roslynextension/03
> プログラムがプラグインと動的にリンクされ、お互いにファンクションコールを使ってデータ構造を共有している場合、それらは単一のプログラムを形成していると見なされますので、プラグインはメインプログラムの拡張部分として扱われなければなりません。このことは、GPLの及ぶプラグインをメインプログラムとリンクするのはGPL違反となることを意味しています。しかし、あなたはこの法的問題を、あなたのプログラムのライセンスに自由でないメインプログラムとのリンクを許可する例外を加えることで解決できます。
GNUライセンスに関してよく聞かれる質問 - GNUプロジェクト - フリーソフトウェアファウンデーション
https://www.gnu.org/licenses/gpl-faq.ja.html#GPLPluginsInNF
> 自由でないプログラム向けのプラグインにGPLを適用することはできますか? (#GPLPluginsInNF)
易しそうなサンプル見つけた><
Roslyn のコード解析機能を試してみる - Chintax Sugar https://sunlight0915.hatenablog.jp/entry/2014/12/08/093828
つまり、BigInteger hoge="42"; って書けるようにした上で BigInteger hoge="42.195";とかはIDEが怒ってくれて、さらに BigInteger hoge=(string)fuga; って書くとIDEが「そうする為にそうなってるんじゃないんだけど・・・」って言ってくれる・・・なんかそういうの><(語彙)
これが出来るようになったら、自分で好きな型で、好きなリテラル形式で(互換性の為に " で囲ってC# 的には文字列として)記述しても、IDEで静的に検査できるじゃん?>< 超便利じゃん?><(既にそういうアドオンあったりしないのかな?><)
長い><
さらに暗黙の型変換と組み合わせて、
BigNantokaInt hoge = "123";//(実際は123じゃんなすごく巨大な数値だとする)
って書くと、BigNantokaInt のstringからの暗黙の型変換の宣言にその属性がついていたら、BigNantokaIntに実際にキャストできるか検査させて、「無理!」って例外が出たらIDEで警告出すみたいなの><
さらに、暗黙の型変換はリテラルからのみ受け入れたいって追加属性もつけると、
void Hoge(string fuga)
{
BigNantokaInt hoge = fuga;
}
みたいに書くと、同様にチェックする時に「いや、暗黙の型変換はは組み込み型みたいに使うためにつけただけなので、それだと実行時まで検査できなくてどうなるかわかんないじゃん・・・」って警告が出るようにするとか><(でもビルドは通すみたいな)