Add catchingExceptions method to replace runCatching (#4797)
- Add `runCatchingExceptions` and `mapCatchingExceptions` to replace `runCatching` and `mapCatching`.
- Make `tryOrNull { ... }` catch only exceptions too.
- Apply the changes to the whole project.
- Add new Rust fakes for tests to handle the code that's now unblocked - previously it just threw an `UnsatisfiedLinkError` which we ignored.
- Add a new `detekt-rules` project with a `RunCatchingRule` to prevent `runCatching` and `mapCatching` usages.
This commit is contained in:
parent
01d6012760
commit
58a3ea8b1f
144 changed files with 716 additions and 375 deletions
|
|
@ -0,0 +1,33 @@
|
|||
/*
|
||||
* Copyright 2025 New Vector Ltd.
|
||||
*
|
||||
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.detektrules
|
||||
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
import io.gitlab.arturbosch.detekt.api.Config
|
||||
import io.gitlab.arturbosch.detekt.test.compileAndLint
|
||||
import org.junit.Test
|
||||
|
||||
class RunCatchingRuleTest {
|
||||
private val subject = RunCatchingRule(Config.empty)
|
||||
|
||||
@Test
|
||||
fun `test RunCatchingRule`() {
|
||||
val findings = subject.compileAndLint(code)
|
||||
assertThat(findings).hasSize(3)
|
||||
}
|
||||
|
||||
private val code = """
|
||||
object Foo {
|
||||
fun bar() {
|
||||
runCatching {}
|
||||
kotlin.runCatching {}
|
||||
Result.success(true).mapCatching { false }
|
||||
}
|
||||
}
|
||||
""".trimIndent()
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue