Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

最初のシリアライザだけで処理している完全自動型クラスのコードが自動生成されない #44

Open
yossi-tahara opened this issue Nov 21, 2017 · 0 comments

Comments

@yossi-tahara
Copy link
Owner

commented Nov 21, 2017

特にシリアライズ指定していないクラスについても、そのインスタンスを保存/回復コードがあるコンパイル単位ではシリアライズに必要なコードが自動生成されます。

しかし、コンパイル単位内で最初の保存/回復処理だけでシリアライズしている上記クラスについてシリアライズに必要なコードが自動生成されないことに気が付きました。

保存/回復処理(THEOLIZER_PROCESS)すると、内部的にSwitcherクラス・テンプレートにて型の種別毎に分岐するため、libToolingを用いてSwitcherの実体化を列挙し自動生成するクラスを判定しています。この列挙に出てこないため、自動生成されないことまで分かっています。

暫定対策は、下記があります。

  • 当該クラスを侵入型半自動クラスへ変更する
  • 当該クラスをシリアライズするダミーコードをもう一つ設ける
    実行する必要はないです。そのようなコードがあればlibToolingのAST解析で抽出されますので、自動生成コードが生成されます。

早めに修正したいのですが、libToolingの動作が原因の可能性もあるため、修正には少し時間がかかりそうです。

@yossi-tahara yossi-tahara added the bug label Nov 21, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
1 participant
You can’t perform that action at this time.