One more iteration to replace null with Result not to suppress errors.

Lots of code returns `null` without any reason. This ill pattern covers errors effectively making it impossible to find the root cause of any problem.

We replace `null` with `Result` to log and report errors.


Merge-request: IJ-MR-139850
Merged-by: Ilya Kazakevich <ilya.kazakevich@jetbrains.com>

GitOrigin-RevId: 7cbb173f672a44a98f24e89e247428ab6e8ca01d
This commit is contained in:
Ilya.Kazakevich
2024-07-18 16:07:28 +00:00
committed by intellij-monorepo-bot
parent 24b3d0a97f
commit ac673868e5
18 changed files with 112 additions and 87 deletions

View File

@@ -4,6 +4,7 @@ package com.intellij.python.featuresTrainer.ift
import com.intellij.ide.impl.OpenProjectTask
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.application.invokeLater
import com.intellij.openapi.diagnostic.getOrLogException
import com.intellij.openapi.module.Module
import com.intellij.openapi.project.Project
import com.intellij.openapi.project.ProjectManager
@@ -80,7 +81,7 @@ abstract class PythonBasedLangSupport : AbstractLangSupport() {
val module = project.modules.first()
val existingSdks = getExistingSdks()
val baseSdks = findBaseSdks(existingSdks, module, project)
val preferredSdk = findPreferredVirtualEnvBaseSdk(baseSdks)
val preferredSdk = findPreferredVirtualEnvBaseSdk(baseSdks) ?: return
invokeLater {
val venvSdk = applyBaseSdk(project, preferredSdk, existingSdks, module)
if (venvSdk != null) {
@@ -90,11 +91,11 @@ abstract class PythonBasedLangSupport : AbstractLangSupport() {
}
private fun applyBaseSdk(project: Project,
preferredSdk: Sdk?,
preferredSdk: Sdk,
existingSdks: List<Sdk>,
module: Module?): Sdk? {
val venvRoot = FileUtil.toSystemDependentName(PySdkSettings.instance.getPreferredVirtualEnvBasePath(project.basePath))
val venvSdk = createVirtualEnvSynchronously(preferredSdk, existingSdks, venvRoot, project.basePath, project, module, project)
val venvSdk = createVirtualEnvSynchronously(preferredSdk, existingSdks, venvRoot, project.basePath, project, module, project).getOrLogException(LOGGER)
return venvSdk?.also {
SdkConfigurationUtil.addSdk(it)
}