4.2.2. Unqualified Names
Names of methods, fields, local variables, and formal parameters are stored as unqualified names. An unqualified name must contain at least one Unicode code point and must not contain any of the ASCII characters . ; [ / (that is, period or semicolon or left square bracket or forward slash).
なるほど、仕様書にそう書かれているのか。
先日のエントリでなぜそんなチェックをしているのか分からないと書いたけど、Javaの仕様書には書かれていなかった、JVM側の仕様に起因していた。バイトコードだからそりゃそうか。
Scala側にissueをあげた
そうしたら、早速PRが作られた。JVMの仕様と合っていないから、直すのが適切だろうと。
Parameter names are encoded by som-snytt · Pull Request #9435 · scala/scala · GitHub
なにげなく立てたけど、改善に役になってよかった。
ちなみにDotty(Scala 3.0.0)はバイトコードにパラメータ名を設定しないことが分かった。issueをあげようかな。