The fact that the private implementation detail type is responsible for tracking types that aren't nested into it is very confusing.
This also creates an unnecessary coupling between otherwise unrelated things, forcing us to create the PrivateImplementationDetails type in the output when we might not need it. The coupling was introduced by the work for "Collection Expressions".
I think the tracking should be moved to PEModuleBuilder.
The fact that the private implementation detail type is responsible for tracking types that aren't nested into it is very confusing.
This also creates an unnecessary coupling between otherwise unrelated things, forcing us to create the PrivateImplementationDetails type in the output when we might not need it. The coupling was introduced by the work for "Collection Expressions".
I think the tracking should be moved to
PEModuleBuilder.