CompilationUnitの同一性

id:taichitaichi:20070808:1186583849

結局の所、DeclarationFactoryImpl#loadTopLevelTypeで生成されたCtClassMasterに、CtCompilationUnitはセットされない。


じつはこれ、悩んだ挙句後回しにしている項目です。
CtTypeInfoPathの設計がよろしくなくて、複数のクラスを含むICompilationUnitに対し、ひとつだけCtClassInfoを生成して返しちゃっています。さらにASTParser経由でICompilationUnit->CompilationUnitをしているのですが、parseを呼び出すたびに同一でないオブジェクトを返すので、非常に扱いが難しくなってしまっています。

現状では、ビルドの直接の対象となった場合のみ、CtCompilationUnitが付与されるイメージです。さらにこれがないと、NamingContextImplでCtImportを読まなくてひどいことになります。

明日はこの辺を盛大に直す予感です。


コメントで書けばいいのものを、長くなりそうだったので。