Problem Statement
What does the reified keyword do with inline functions?
Explanation
The reified keyword can only be used with inline functions and preserves generic type information at runtime, allowing you to check types with is operator or use class references like T colon colon class. Without reified, generic types are erased at runtime due to Java's type erasure.
Reified enables writing functions that need runtime type information like inline fun less than reified T greater than isType where you can check if a value is of type T, or inline fun less than reified T greater than startActivity to get the class reference. This makes APIs more type-safe and convenient.
The reified keyword works because inline functions copy their code to the call site, so the compiler can substitute the actual type at each call location, eliminating the need for class parameters that generic functions typically require.
