- そもそもsymgoで
--mode lib
を指定したときに遅いのと失敗している。- メモ化的なものを取り入れたい https://github.com/podhmo/go-scan/blob/develop/docs/plan-find-orphans-memoize.md
- find-orphansのようなものはメモ化できるがdocgenのようなものは補助関数をメモ化されると困る
- メモ化する時には戻り値を気にしないと、メソッド呼び出しをtraceできない
⚠️ そもそもメモ化効いてなくない?
- podhmo/go-scan#850 でローカル内の型定義が解決された
- しかし問題が現れた。それはderiving-allのe2eが壊れたこと。 podhmo/go-scan#853
- 順序を無視したInterfaceの取得をone-pathのscanメソッドでは上手く解析できない
- これは、そもそもインターフェイスのIsImplements()を複雑なものに書き換えたせい podhmo/go-scan#837
⚠️ cacheが壊れる場合がある?- そもそもScanPackage()とScanPackageByImport()の間に差異があるらしい。#853のドキュメントでは勘違いしているが同じ挙動にしたい
- ScanPackage()をScanPackageByImport()で置き換えられない?
- どうやらsymgoで異なる位置のmainを扱う時に問題が出てきてしまうらしい。 (integration_test/cross_main_package_test.go)
これらは大体全部解決した
問題2
- type-switchの後のフィールドを見れていない
- ifの中のtype-assertionを見ていない
別の話としてScanPackage(filePath), ScanPackageByImport(pkgPath) ってわかりにくくない?(あとByPos()というのもあるらしい)