f9b8ab3a3a
This commit introduces CompositeResolverForModuleFactory, which should work under so-called "composite resolution mode", where sources of all all modules are analyzed in one global facade. This allows to: - avoid re-analyzation of common sources - avoid retaining memory for all platforms (which can be very bad as soon as we'll start distinguishing various flavours of platforms, especially "flavours" of common platform) - support running platform-specific checks in common modules (e.g., report JVM_PLATFORM_DECLARATION_CLASH if common sources are going to have it) - support analysis of shared platform modules, like commonNative This mode heavily depends on so-called "type refinement" support in the compiler, which is introduced in other series of commits. In this commit, CompositeResolver and related codepaths are left unused. Also, this commit misses several important pieces of logic in resolvers-setup code, which should be different for CompositeResolver - computation of 'firstDependency' - computation of built-ins - computation of modules owned by facade They will be covered in the following commits