The `is` construction is a preferred way to check whether a variable can be cast to some type statically because a compile-time error will occur in case of incompatible types. The `isInstance()` functions from https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-class/is-instance.html[`kotlin.reflect.KClass`] and https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html#isInstance-java.lang.Object-[`java.lang.Class`] work differently and type check at runtime only. Incompatible types will therefore not be detected as early during development, potentially resulting in dead code. `isInstance()` function calls should only be used in dynamic cases when the `is` operator can't be used.
This rule raises an issue when `isInstance()` is used and could be replaced with an `is` check.