никогда не становился never. То есть, вычисление вообще не происходило.
                  
                  
                  Есть пример, где оно уже произошло?
                  
                  
                  
                  
                  
                  > и ожидаемое поведение - чтобы тут не было ошибки
                  
                  
                  
                  
                  
                  Когда я пишу var _: T & U = (x as X), я ожидаю лишь то, что тайпчекер сначала проверит x <: T. Если это неверно, проверит X <: U. Если и это неверно, выдаст ошибку. Я не ожидаю никакого дополнительного поведения для конкретных значений T и U.
                  
                  
                  Аналогично с обратным направлением:
                  
                  
                  var _: A = (x as T & U). Ожидаю проверку лишь T <: A / U <: A, иначе ошибку.
                  
                  
                  Новое поведение может быть более удобно и практично, но я не вижу унифицированности с остальным тайпчекером.
                  
                  
                
но у тебя неверное ожидание, вот эти проверки T и U это пример реализации проверки X <: T & U, но неверной
Обсуждают сегодня