Skip to content

Commit 999a914

Browse files
KTLN-458: Resolving Warning: Return can be lifted out of 'when' in Kotlin (#1036)
* Added unit test * Made code changes * code refactor * Update core-kotlin-modules/core-kotlin-advanced-3/src/main/kotlin/optimizeWhenStatement/OptimizeReturnStatmentInWhenExpressionUnitTest.kt --------- Co-authored-by: Brandon Ward <[email protected]>
1 parent 8bd100a commit 999a914

File tree

1 file changed

+87
-0
lines changed

1 file changed

+87
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
package optimizeWhenStatement
2+
3+
fun getErrorCode(type: String): String {
4+
when (type) {
5+
"error" -> return "404"
6+
"success" -> return "200"
7+
else -> return "Unknown type"
8+
}
9+
}
10+
11+
fun getErrorCodeOptimized(type: String): String {
12+
return when (type) {
13+
"error" -> "404"
14+
"success" -> "200"
15+
else -> "Unknown type"
16+
}
17+
}
18+
19+
fun getErrorCodeOptimizedUsingExpressionBodySyntax(type: String): String = when (type) {
20+
"error" -> "404"
21+
"success" -> "200"
22+
else -> "Unknown type"
23+
}
24+
25+
fun getMessageLength(type: String): Int {
26+
when (type) {
27+
"short" -> return 5
28+
"medium" -> return 10
29+
"long" -> return 20
30+
else -> return 0
31+
}
32+
}
33+
34+
fun categorizeNumber(number: Int): String {
35+
when {
36+
number < 0 -> {
37+
println("Logging negative number: $number")
38+
return "Negative"
39+
}
40+
number % 2 == 0 -> {
41+
println("Logging even number: $number")
42+
return "Even"
43+
}
44+
else -> {
45+
println("Logging odd number: $number")
46+
return "Odd"
47+
}
48+
}
49+
}
50+
51+
fun categorizeNumberOptimized(number: Int): String {
52+
return when {
53+
number < 0 -> {
54+
println("Logging negative number: $number")
55+
"Negative"
56+
}
57+
number % 2 == 0 -> {
58+
println("Logging even number: $number")
59+
"Even"
60+
}
61+
else -> {
62+
println("Logging odd number: $number")
63+
"Odd"
64+
}
65+
}
66+
}
67+
68+
fun processStatus(status: String): String {
69+
when (status) {
70+
"active" -> return "Processing"
71+
"inactive" -> return "Idle"
72+
"error" -> return "Error occurred"
73+
else -> return "Unknown status"
74+
}
75+
}
76+
77+
fun processStatusOptimized(status: String): String {
78+
val result = when (status) {
79+
"active" -> "Processing"
80+
"inactive" -> "Idle"
81+
"error" -> "Error occurred"
82+
else -> "Unknown status"
83+
}
84+
println("Processing status: $result")
85+
86+
return result
87+
}

0 commit comments

Comments
 (0)