CompilationUnitの同一性
id:taichitaichi:20070808:1186583849
結局の所、DeclarationFactoryImpl#loadTopLevelTypeで生成されたCtClassMasterに、CtCompilationUnitはセットされない。
じつはこれ、悩んだ挙句後回しにしている項目です。
CtTypeInfoPathの設計がよろしくなくて、複数のクラスを含むICompilationUnitに対し、ひとつだけCtClassInfoを生成して返しちゃっています。さらにASTParser経由でICompilationUnit->CompilationUnitをしているのですが、parseを呼び出すたびに同一でないオブジェクトを返すので、非常に扱いが難しくなってしまっています。
現状では、ビルドの直接の対象となった場合のみ、CtCompilationUnitが付与されるイメージです。さらにこれがないと、NamingContextImplでCtImportを読まなくてひどいことになります。
明日はこの辺を盛大に直す予感です。
コメントで書けばいいのものを、長くなりそうだったので。