Smart cast for two subclasses of a sealed class?

I don’t know how deep you want to go into “x is deducible from the current situation, therefor you don’t have to explicitly state x” style smart-casting. It doesn’t exactly make for the most readable code.
Reading if( x is SomeB) return x.smartCast() is pretty clear exactly what it does and why (especially since, ideally, the method smartCast should have something to do with WHAT SomeB is. But reading if( x !is SomeA) return x.doWhatSomeBDoes(), the code is pretty obtuse even if you’re fairly familiar with the fact that there are only two types of Somethings.

However, what Kotlin CAN do with sealed classes is view them as a “complete” (i.e. covering all cases) when statement allowing you to use it as an determined value:

sealed class Something
class SomeA : Something()
class SomeB : Something() {
    fun smartCast(): String = "Smart cast"
}

fun test( sth: Something) = when( sth) {
    is SomeA -> "A"
    is SomeB -> sth.smartCast()
}