■
プログラム変換系を書く側として、
class A { int a, b, c; }
とか、
class B { int a, b[], c[][]; }
とかって言う記法はやっぱりいただけないと思う。
class B { int a; int[] b; int[][] c; }
って記法にノーマライズしちゃってもいいんだけど、これはユーザに任せるべきか。ううむ。
下記の変換で怪しい匂いがしそう。いや、普通のJavaならいいんだけどね。
class C { @Hoge int a, b[]; } class C2 { @Hoge int a; @Hoge int b[]; }
fieldのtypeに注釈が付いてるのか、variable declarator(変数名)に注釈が付いているのか、セマンティクスがはっきりしない…。Javadoc@DocletAPIは先頭のvariable declaratorだけでなく2つ目以降にも掛かるからセマンティクスとしては宣言全体についていると考えるのが普通なんだけど。
ちなみに、最悪なのは下記。
class D { int method()[] { return new int[1]; } }
ううむ。