При вызове override fun triggerNow() = trigger(this as T)
вы пытаетесь привести Triggerable<T>
к T
, поэтому компилятор предупреждает вас о непроверенном приведении
, имеющем
val trigger: (TriggerInterface<T>) -> Unit
, позволит вам вызвать триггер с нет приведения
override fun triggerNow() = trigger(this)
для фактического выполнения
override val trigger: (Test) -> Unit = { /*...*/ }
вам необходим экземпляр Test
для прохода внутрь триггера, который еще нигде не объявлен в вашем коде