b5f31a3d76
The CodeCleaner treated all expressions with type `Nothing` as non-terminating. This is not true for cases when return type is generic, e.g: ``` fun <T> foo(): T = Any() as T foo<Nothing>() // type: Nothing ``` This change makes the CodeCleaner more conservative, so that it doesn't treat to such functions as non-terminating. This eliminates the need to change call types from Nothing to Unit in KotlinNothingValueExceptionLowering.