From a3a693fb752d0847e86795467d9f4fae91aa0ed2 Mon Sep 17 00:00:00 2001 From: Vladislav Beskrovny Date: Tue, 24 Feb 2026 10:20:14 +0100 Subject: [PATCH] RUST-19790 Use ExceptionAutoReporter in RustRover EAP (cherry picked from commit d5ae2c1b8a1dc50fc0668f23f23f9257e1dc8de3) IJ-CR-193464 GitOrigin-RevId: 5c429251a2c4218adcd1cf4abf87196766436147 --- .../diagnostic/ExceptionAutoReportUtil.kt | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/platform/platform-impl/src/com/intellij/diagnostic/ExceptionAutoReportUtil.kt b/platform/platform-impl/src/com/intellij/diagnostic/ExceptionAutoReportUtil.kt index 294c1a8ea1bc..ba9922c3564b 100644 --- a/platform/platform-impl/src/com/intellij/diagnostic/ExceptionAutoReportUtil.kt +++ b/platform/platform-impl/src/com/intellij/diagnostic/ExceptionAutoReportUtil.kt @@ -10,6 +10,7 @@ import com.intellij.ide.plugins.PluginUtil import com.intellij.ide.util.PropertiesComponent import com.intellij.idea.AppMode import com.intellij.internal.statistic.utils.getPluginInfoByDescriptor +import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.application.impl.ApplicationInfoImpl import com.intellij.openapi.diagnostic.thisLogger import com.intellij.openapi.project.Project @@ -38,6 +39,14 @@ object ExceptionAutoReportUtil { return consent?.isAccepted == true && !needsReconfirm } + @JvmStatic + val isAutoReportEnabledOrUndecided: Boolean + get() { + if (!isAutoReportVisible) return false + val (consent, needsReconfirm) = getConsentAndNeedsReconfirm() + return consent?.isAccepted == true || needsReconfirm + } + private fun getConsentAndNeedsReconfirm(): Pair { val (consents, needsReconfirm) = ConsentOptions.getInstance().getConsents(ConsentOptions.condEAAutoReportConsent()) thisLogger().assertTrue(consents.size <= 1) { @@ -88,7 +97,12 @@ object ExceptionAutoReportUtil { return Pair(submitter, plugin) } - private fun isDefaultSubmitter(submitter: ITNReporter): Boolean = submitter.javaClass == ITNReporter::class.java + private fun isDefaultSubmitter(submitter: ITNReporter): Boolean { + val cls = submitter.javaClass + return cls == ITNReporter::class.java + || cls.name == $$"com.intellij.rustrover.RustRoverMessagePoolAutoReporter$MyITNReporter" + && ApplicationManager.getApplication().isEAP + } } internal class ReporterIdForEAAutoReporters : AboutPopupDescriptionProvider {