I'm trying to understand how to use inline modifier correctly. I understand general case, when we inlining lambda to prevent excess allocation, as described in docs. 
I was inspecting kotlin stdlib and found in _Strings.kt the following piece of code:
@kotlin.internal.InlineOnly
public inline fun CharSequence.elementAtOrNull(index: Int): Char? {
    return this.getOrNull(index)
}
What's the reasoning behind using inline here? 
 
     
     
     
    