ピックアップ Roslyn 4/5
C# Design Meeting Notes for Mar 18, 2015
https://github.com/dotnet/roslyn/issues/1677
3/18 議事録。今回は、UserVoice (要望アンケート サイト)で、C# がらみの上位に入ってる項目について、現状の取り組み状況を説明。
とりあえず、一覧だけ抜き出し、状況のところだけ和訳。
- Non-nullable reference types (すでに取組中)
- Non-nullary constructor constraints (CLR のサポートが必要)
- Support for INotifyPropertyChanged (ちょっと目的限定しすぎ。しいていうならメタプログラミング?)
- GPU and DirectX support (ほとんどライブラリでの仕事。言語的にサポートできるとすると、ジェネリックの数値制約?)
- Extension properties and static members (確かに興味は持っている)
- More code analysis (これこそ、Roslynのアナライザーの存在意義)
- Extension methods in instance members (よい要求だと思う。優先度は低いけど)
- XML comments (言語に対する要求じゃない(docコメントはC#チームとは別枠みたい))
- Unmanaged constraint (CLR のサポートが必要)
- Compilable strings (nameof 式はこのために足した)
- Mulitple returns (取り組み中。タプルがそう)
- ISupportInitialize (ちょっと目的限定しすぎ。オブジェクト初期化子の動作をフックできればいいのかな?)
- ToNullable (null関連の取り組みはしてるんで、その一環に含まれるかも)
- Statement lambdas in expression trees (よい要求だと思う。でっかい機能だ!)
- Language support for Lists, Dictionaries and Tuples (よい。タプルについてはすでに取組中)
Proposal: Add Async support for Main() / Console Apps #1695
https://github.com/dotnet/roslyn/issues/1695
コンソール アプリで Main メソッドを非同期メソッドにさせて(async Task Main を認めて、中で await できるようにして)という要求。
ただ、同期コンテキストをどうしよう(未だと、コンソール アプリの SynchronizationContext.Current はnullで、GUI アプリなら問題なく動かせるようなものが、一工夫しないと動かなかったりする)という課題あり。
Over Our Dead Bodies タグ
https://github.com/dotnet/roslyn/issues/1746
このURL自体は、「C# にも XML リテラルを入れてほしい」という要望なんですが…
XML リテラル、VB では VB 9 (C# 3.0 と同世代)で導入された機能です。が、まあ、C# 的には「やっぱりあの時入れない判断してよかった」「特定のマークアップ言語仕様に依存するのはちょっと」と言われている機能。当然、C# チーム的にこの要望を受け入れるとは思えないわけですが。
「Over Our Dead Bodies」(ほしければ我々を倒してから行け!我々の目が黒いうちは絶対に許さん!)とかいうタグがついてる(笑)
なるほど “Over Our Dead Bodies” って、そういう意味なんですね。勉強になりました。一時的に貼られて除去されたこの愉快なタグ、ひょっとして April Fool ネタ?
kanjywm
2015年4月9日 at 12:55
まあ、さすがにふざけ過ぎたと反省したのか、
あるいは、C# の構文レベルで足すんじゃなくて、属性付けて文字列リテラル中のXMLを Roslyn Analyzer で処理するディスカッションも出てきたんで、そっちならまずくはないしディスカッションしてほしいという意図かだと思われます。
ufcpp
2015年4月9日 at 13:19