Refactor `plus` function to replace nullable return type with `INVALID`
diff --git a/libraries/stdlib/src/kotlin/time/Duration.kt b/libraries/stdlib/src/kotlin/time/Duration.kt index 1835ef9..21fe4d0 100644 --- a/libraries/stdlib/src/kotlin/time/Duration.kt +++ b/libraries/stdlib/src/kotlin/time/Duration.kt
@@ -292,13 +292,13 @@ return addFiniteDurations(other) } - internal fun plus(other: Duration, throwException: Boolean): Duration? { + internal fun plus(other: Duration, throwException: Boolean): Duration { when { this.isInfinite() -> { if (other.isFinite() || (this.rawValue xor other.rawValue >= 0)) return this else - if (throwException) throw IllegalArgumentException(SUMMING_INFINITE_DURATIONS_OF_DIFFERENT_SIGN_ERROR_MESSAGE) else return null + if (throwException) throw IllegalArgumentException(SUMMING_INFINITE_DURATIONS_OF_DIFFERENT_SIGN_ERROR_MESSAGE) else return INVALID } other.isInfinite() -> return other } @@ -963,17 +963,17 @@ result = result.plus( (parseOverLongIsoComponent(whole, throwExceptionOnParsingError) ?: return Duration.INVALID).toDuration(unit), throwExceptionOnParsingError - )?.plus( + ).plus( component.substring(dotIndex) .let { if (throwExceptionOnParsingError) it.toDouble() else (it.toDoubleOrNull() ?: return Duration.INVALID) } .toDuration(unit), throwExceptionOnParsingError - ) ?: return Duration.INVALID + ) } else { result = result.plus( (parseOverLongIsoComponent(component, throwExceptionOnParsingError) ?: return Duration.INVALID).toDuration(unit), throwExceptionOnParsingError - ) ?: return Duration.INVALID + ) } } } @@ -1011,19 +1011,19 @@ (if (throwExceptionOnParsingError) whole.toLong() else (whole.toLongOrNull() ?: return Duration.INVALID)) .toDuration(unit), throwExceptionOnParsingError - )?.plus( + ).plus( component.substring(dotIndex) .let { if (throwExceptionOnParsingError) it.toDouble() else (it.toDoubleOrNull() ?: return Duration.INVALID) } .toDuration(unit), throwExceptionOnParsingError - ) ?: return Duration.INVALID + ) if (index < length) return throwExceptionOrInvalid("Fractional component must be last") } else { result = result.plus( (if (throwExceptionOnParsingError) component.toLong() else (component.toLongOrNull() ?: return Duration.INVALID)) .toDuration(unit), throwExceptionOnParsingError - ) ?: return Duration.INVALID + ) } } }