4/16結構久々のSprint進捗報告。2017リリース前後の作業が「バグ修正してた」しかなかったので、割かしほんとに久々。7.1/7.2作業が始まっています。(ここに並んでいるのが7.1/7.2に入る全てでもないし、優先度の変更もあり得るものです。最近作業したもので、現状の予定としてこのバージョンで出したいというもの。左辺から型推論が効くなら、default(T)の(T)の部分を省略可能にするという話。前から実装を初めていて、masterにmerge済み。メソッドを非同期にできるようになるみたい。実装的には、Mainの戻り値にTaskとTask<int>を許すその場合、async修飾子を付けるの必須コード生成で、Main().GetAwaiter().GetResult()を呼ぶだけの繋ぎ用メソッドを生成するという感じみたい。namesタプルでも、匿名型みたいに要素名を自動で付けたいっていう話。y)と書けば、タプル要素名を自動的にxにしてほしいという。Labsで使ってもらい始めたみたい。7.0コンパイラーではビルドできないコードがあるんですよねぇ、corefxlab。SafetySystem.Memoryパッケージ中に入ってるSpan<T>構造体がらみで、ちょっとコンパイラーによる制限を掛けたいっていう話。フロー解析をしないとまずいということみたい。今は妥協的な実装をしているものの、将来的にはByReference<T>型とかいう、ほんとに「フィールドとして参照を持てる型」を作って使いたいみたいで、そうなると、Span<T>に対するフロー解析をちゃんとやらないといよいよまずい。普通の型のフィールドにできないref-like型のフィールドにはできる引数として受け取ったものとか、一部のものしか戻り値として返せないという型。Tと同じ扱いしないとまずい型」があったりします。隠し(ドキュメント化されていない)機能を使わないと扱えない型なので問題にはなっていませんが。現状のTypedReferenceは特殊な制約が掛かっていて、やっぱり普通の型のフィールドにできなくなっています。7.0で参照戻り値が書けるようになったのに対して、TypedReferenceはいまだに戻り値にも使えません。これも、参照戻り値と同ラインまでは制限を緩めて大丈夫なはずで、ref-like型の一例です。readonly2月に紹介したやつ。C++でいうconst&。構造体のコピーを避けるための参照渡しであって、書き換えは認めたくないっていうやつ。一部、プロトタイプ実装を始めたみたいです。メソッドの実装作業、もう始まっていたりします。それなりに時間が掛かる作業なので、今実装が始まっているって言っても、実際のリリースはだいぶ先。同様に、非null参照がらみもちらほら作業を進めてるみたいです。ついて運営者について。