.NET Foundationの一つである、Rx.NETにPull Request送ってそれが取り込まれました。
やったね、これで俺も.NET Founcation contributor!!!
と、言っても非常に非常に小さく、ごくまれに発生するコーナーケースのバグフィックスですが。。。あと、Rx.NETでなく、Ix.NETですが。
Pull Requestはこちら、「Fix Ix Catch method invalid behaviour with Array. #171」
修正前は、Ix.NETのCatchメソッドを配列で呼び出した場合、想定外の例外が発生していました。修正前は次のテストに失敗していました。
[TestMethod] public void Catch5_Array() { var xss = new[] { new[] { 0, 1, 2, 3, 4 }, new[] { 5, 6, 7, 8, 9 } }; var res = EnumerableEx.Catch(xss); Assert.IsTrue(res.SequenceEqual(Enumerable.Range(0, 5))); }
原因は、「 IEnumeratorIEnumerator<T>
のMoveNext()とCurrent周りのコードを修正しました。
こんなコーナーケース、自分でもよく発見したなって思います。「ix_example」っていうリポジトリで、Ix.NETのサンプルコード集を作っている時に気が付きました。
ちなみに、Pull Requestを送って2カ月近く無反応だったんで取り込まないかと思っていました。送ったPull Request内容も修正が必要だったり、Rebaseミスったりしてしまったりしたので、次はもう少しうまくやりたいです。
とは言え、どんな細かいことでも、Rx.NETそして.NET Foundationに貢献できてうれしいです。