Sharpenの最新版
「dcsoupがテストに通るようになりました」に書いたSharpenですが、MonoプロジェクトのGitHubに置いてあるやつを使ってみました。
- Eclipseプラグインとして使うのは想定してないっぽい。EclipseのJavaパーザーとかそういうのも含めて全部jarにまとめてしまって、コマンドラインから叩けってことみたい。
- ただコマンドライン引数の解析のやり方がやっつけっぽい。
java -jar sharpenの全部入りjar SOURCEPATH
でいいとか言ってるんだけど、ソースパスにスラッシュ(/)が入ってることを前提としてたりして、コード読まないとわからん。 - コマンドライン引数がちゃんとしてればちゃんと動くっぽい。
- ジャグ配列の初期化
int[][] array = new int[3][4];
で変換がこけた。たぶん古いバージョンでもこける。 - エンクロージング型の親クラスメソッドへの呼び出し、つまり
エンクロージング型名.super.メソッド();
も変換がこけた。たぶん古いバージョンでもこける。 タイプセーフenumがどうなったかは確認してない。以下のような感じになりました。
Javaコード
public enum Strategy { Foo { String execute() { return "this is Foo"; } }, Bar { String execute() { return "this is Bar"; } }; abstract String execute(); }
C#コード
using Sharpen; [System.Serializable] public sealed class Strategy { public static readonly Strategy Foo = new Strategy(); public static readonly Strategy Bar = new Strategy(); internal abstract string execute(); }
変換ではエラーにならなかったけど、execute()
の実装がぜんぶ抜け落ちてるじゃん……
Strategy
クラスはabstract
メンバー持ってるよね、コンパイル通らないよ……