diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/DynamicPlugins.kt b/platform/platform-impl/src/com/intellij/ide/plugins/DynamicPlugins.kt index 4dac6a96cb9f..71e0d059ceb6 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/DynamicPlugins.kt +++ b/platform/platform-impl/src/com/intellij/ide/plugins/DynamicPlugins.kt @@ -997,7 +997,13 @@ object DynamicPlugins { loadModules( modules = optionalDependenciesOnPlugin(dependencyPlugin = pluginDescriptor, classLoaderConfigurator = classLoaderConfigurator, - pluginSet = pluginSet).toList(), + pluginSet = pluginSet).filter { descriptorImpl -> + when (descriptorImpl) { + is ContentModuleDescriptor if !pluginSet.isModuleEnabled(descriptorImpl.moduleName) -> false + is PluginMainDescriptor if !pluginSet.isPluginEnabled(descriptorImpl.pluginId) -> false + else -> true + } + }.toList(), app = app, listenerCallbacks = listenerCallbacks, ) @@ -1263,9 +1269,6 @@ private fun processDependenciesOnPlugin( } for (module in plugin.contentModules) { - if (!pluginSet.isModuleEnabled(module.moduleName)) { - continue - } if (loadStateFilter != LoadStateFilter.ANY) { val isModuleLoaded = module.pluginClassLoader != null if (isModuleLoaded != (loadStateFilter == LoadStateFilter.LOADED)) { diff --git a/platform/platform-tests/testSrc/com/intellij/ide/plugins/DynamicPluginsTest.kt b/platform/platform-tests/testSrc/com/intellij/ide/plugins/DynamicPluginsTest.kt index 3ec3d38d2fad..71add6c38577 100644 --- a/platform/platform-tests/testSrc/com/intellij/ide/plugins/DynamicPluginsTest.kt +++ b/platform/platform-tests/testSrc/com/intellij/ide/plugins/DynamicPluginsTest.kt @@ -1109,6 +1109,7 @@ class DynamicPluginsTest { PluginSetTestBuilder.fromPath(pluginsDir).withDisabledPlugins("bar").build() loadPluginInTest(fooPluginPath) { loadPluginInTest(barPluginPath) { + assertThat(PluginManagerCore.getPluginSet().findEnabledModule("foo.b")).isNull() assertThat(ActionManager.getInstance().getAction("foo.b.action")).isNull() } }