LoginSignup
1
1

More than 5 years have passed since last update.

GOAの生成するコードちょっと変くない?

Last updated at Posted at 2018-09-18

どうも、お久しぶり。
えいやです。

GOA(v1.4.0)の生成するコードでちょっとおかしいんじゃないのかなー?というのがあったので共有します。

goagenがビルドが通らないコードを吐くケース

具体的には、

  1. 必須じゃない要素を使うと、ポインタ型と値型の対応が逆になっているのか、ビルドエラー
  2. ArrayOfを使うと、コードの生成が中途半端で終わってビルドエラー

1では、strConv.Itoa()に*int型を突っ込もうとしたり、*stringを[]byteいキャストしようとしたりして型違反エラー。
2では、定義したけど使っていない変数がでてきて静的チェック違反。

発生するエラーメッセージは以下のようなもの

# github.com/aya-eiya/goa-test/apps/app
apps/app/controllers.go:72:2: rawArrs declared and not used
# github.com/aya-eiya/goa-test/apps/client
apps/client/my_resorce.go:63:28: cannot use payload.IntVal (type *int) as type int in argument to strconv.Itoa

実際のコードを含むプロジェクトの例を以下に置いときます。

当該問題について、Issueを報告し、PRを投げています。

PRでは2つの問題のうち、片方、ポインタ型の問題を解決しています。

PRの取り込みが遅いようなら、もう一つの問題も解消して一つにまとめておこうかと思います。

※ Masterに取り込まれました。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1