Skip to content

Commit 15b249e

Browse files
committed
Enable Unused Return Value checker
1 parent f1e52ab commit 15b249e

File tree

56 files changed

+180
-123
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+180
-123
lines changed

benchmark/src/jmh/kotlin/kotlinx/benchmarks/json/ImplicitNullsBenchmark.kt

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -82,37 +82,30 @@ open class ImplicitNullsBenchmark {
8282
private val serializer = Values.serializer()
8383

8484
@Benchmark
85-
fun decodeNoNulls() {
85+
fun decodeNoNulls() =
8686
Json.decodeFromString(serializer, jsonNoNulls)
87-
}
8887

8988
@Benchmark
90-
fun decodeNoNullsImplicit() {
89+
fun decodeNoNullsImplicit() =
9190
jsonImplicitNulls.decodeFromString(serializer, jsonNoNulls)
92-
}
9391

9492
@Benchmark
95-
fun decodeNulls() {
93+
fun decodeNulls() =
9694
Json.decodeFromString(serializer, jsonWithNulls)
97-
}
9895

9996
@Benchmark
100-
fun decodeNullsImplicit() {
97+
fun decodeNullsImplicit() =
10198
jsonImplicitNulls.decodeFromString(serializer, jsonWithNulls)
102-
}
10399

104100
@Benchmark
105-
fun decodeAbsenceImplicit() {
101+
fun decodeAbsenceImplicit() =
106102
jsonImplicitNulls.decodeFromString(serializer, jsonWithAbsence)
107-
}
108103

109104
@Benchmark
110-
fun encodeNulls() {
105+
fun encodeNulls() =
111106
Json.encodeToString(serializer, valueWithNulls)
112-
}
113107

114108
@Benchmark
115-
fun encodeNullsImplicit() {
109+
fun encodeNullsImplicit() =
116110
jsonImplicitNulls.encodeToString(serializer, valueWithNulls)
117-
}
118111
}

buildSrc/src/main/kotlin/global-compiler-options.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ val globalCompilerArgs
1515
"-P", "plugin:org.jetbrains.kotlinx.serialization:disableIntrinsic=false",
1616
"-Xreport-all-warnings",
1717
"-Xrender-internal-diagnostic-names",
18+
"-Xreturn-value-checker=full",
1819
)
1920

2021
val kotlin_Werror_override: String? by project

buildSrc/src/main/kotlin/source-sets-conventions.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ kotlin {
7676
freeCompilerArgs.add("-Xsuppress-version-warnings")
7777
}
7878
freeCompilerArgs.add("-Xexpect-actual-classes")
79+
// for some reason, IDE does not enable feature in test source sets without this line:
80+
freeCompilerArgs.add("-Xreturn-value-checker=full")
7981
}
8082

8183
sourceSets {

core/commonMain/src/kotlinx/serialization/internal/Tagged.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,7 @@ public abstract class TaggedEncoder<Tag : Any?> : Encoder, CompositeEncoder {
158158
tagStack.add(name)
159159
}
160160

161+
@IgnorableReturnValue
161162
protected fun popTag(): Tag =
162163
if (tagStack.isNotEmpty())
163164
tagStack.removeAt(tagStack.lastIndex)
@@ -316,6 +317,7 @@ public abstract class TaggedDecoder<Tag : Any?> : Decoder, CompositeDecoder {
316317

317318
private var flag = false
318319

320+
@IgnorableReturnValue
319321
protected fun popTag(): Tag {
320322
val r = tagStack.removeAt(tagStack.lastIndex)
321323
flag = true

core/commonTest/src/kotlinx/serialization/SerializersLookupEnumTest.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@ import kotlinx.serialization.internal.EnumSerializer
1010
import kotlinx.serialization.test.*
1111
import kotlin.test.*
1212

13-
// This is unimplemented functionality that should be
14-
@Suppress("RemoveExplicitTypeArguments") // This is exactly what's being tested
13+
@Suppress("RETURN_VALUE_NOT_USED") // assertIs, KT-82363
1514
class SerializersLookupEnumTest {
1615
@Serializable(with = EnumExternalObjectSerializer::class)
1716
enum class EnumExternalObject

core/commonTest/src/kotlinx/serialization/features/SealedInterfacesSerializationTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,9 @@ class SealedInterfacesSerializationTest {
6868
assertEquals(listOf("ImplA", "ImplB"), subclasses)
6969
}
7070

71-
private fun SerialDescriptor.isDummy() = serialName == "Dummy"
71+
private fun SerialDescriptor.isDummy() = assertEquals(serialName, "Dummy")
7272

73-
private fun SerialDescriptor.isPolymorphic() = kind == PolymorphicKind.OPEN
73+
private fun SerialDescriptor.isPolymorphic() = assertEquals(kind, PolymorphicKind.OPEN)
7474

7575
operator fun SerialDescriptor.get(i: Int) = getElementDescriptor(i)
7676

core/commonTest/src/kotlinx/serialization/internal/ObjectSerializerTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import kotlinx.serialization.*
1010
class ObjectSerializerTest {
1111
@Test
1212
fun testSequentialDecoding() {
13-
SimpleObject.serializer().deserialize(DummySequentialDecoder())
13+
assertSame(SimpleObject, SimpleObject.serializer().deserialize(DummySequentialDecoder()))
1414
}
1515

1616
@Serializable

core/commonTest/src/kotlinx/serialization/internal/TuplesTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class TuplesTest {
1212
fun testSequentialDecodingKeyValue() {
1313
val decoder = DummySequentialDecoder()
1414
val serializer = MapEntrySerializer(Unit.serializer(), Unit.serializer())
15-
serializer.deserialize(decoder)
15+
assertNotNull(serializer.deserialize(decoder))
1616
assertEquals(decoder.beginStructureCalled, decoder.endStructureCalled)
1717
}
1818
}

core/commonTest/src/kotlinx/serialization/test/TestHelpers.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ inline fun jvmOnly(test: () -> Unit) {
3838
if (isJvm()) test()
3939
}
4040

41-
inline fun <reified T : Throwable> assertFailsWithMessage(message: String, block: () -> Unit) {
41+
inline fun <reified T : Throwable> assertFailsWithMessage(message: String, block: () -> Any?) {
4242
val exception = assertFailsWith(T::class, null, block)
4343
assertTrue(exception.message!!.contains(message), "Expected message '${exception.message}' to contain substring '$message'")
4444
}

core/jvmMain/src/kotlinx/serialization/internal/Caching.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import kotlin.reflect.KTypeProjection
1818
* and fallback to ConcurrentHashMap-based cache.
1919
*/
2020
private val useClassValue = try {
21-
Class.forName("java.lang.ClassValue")
21+
val _ = Class.forName("java.lang.ClassValue")
2222
true
2323
} catch (_: Throwable) {
2424
false

0 commit comments

Comments
 (0)