Закрытые классы Kotlin - почему компилятор не проверяет все подтипы? - PullRequest
0 голосов
/ 23 января 2019

При использовании запечатанных классов компилятор проверяет только подтипы в одном и том же файле.

Одна из самых больших выгод от продаж закрытых классов - это исчерпывающие проверки при использовании выражения when.Так почему же это не реализовано?

В одном файле у меня есть:

class C : B()

В другом файле у меня есть:

sealed class A

open class B : A()

fun switch(input: A) =
    when(input) {
        is B -> Unit
//        is C -> Unit - I expect a compiler error since this is a subtype and it's commented out
    }

1 Ответ

0 голосов
/ 24 января 2019

Как прокомментировал Евгений Петренко , случай is B, требуемый компилятором, охватывает все подклассы B.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...