GCが発生するIReadOnlyList<T>等のforeachに警告を出すRoslynAnalyzer

IReadOnlyListをforeachで回すとGCが発生するのは周知の事実ですが、
外部にプロパティを公開するならIReadOnlyListやIReadOnlyDictionaryを使いたいし、
そもそも他にもGCが発生するforeachのパターンあるよな・・・と考え出すと、
気軽にforeachも書けないわけです。

ということで、RoslynAnalyzerでGCが発生するforeachを書いたら警告が出るようにしてみました。
これで本当に条件が網羅出来ているか不安...
もっと良い判定方法ご存知の方いたら教えてください。

netstandard2.0のクラスライブラリプロジェクトとしてビルドし、
できたdllをUnityプロジェクトのAssets以下に配置、
Asset LabelsにRoslynAnalyzerを追加するとUnityプロジェクトでも動作します。