Нет, но в каждом кейсе уже доказано, что w конкретного подтипа.
Вам не кажется странным, что при мэтчинге слева от стрелки компилятор отличает Wrapper[Foo1] от Wrapper[Foo2] (разбирая дополнительно обернутый объект), а справа он снова оперирует абстрактным Wrapper[Foo] ?
вы сейчас какой сниппет имеете в виду?
Почему? Могут быть ситуации когда там другой тип?
Я больше про этот: https://scastie.scala-lang.org/LMnet/3Z9I0IkXQbyUp1LXeKKODg/14
Компилятор от противного не может выводить, нужно предложить правило, по которому он сможет сконструировать вывод A = Foo1, предложи его
ну здесь нет ничего странного, с моей точки зрения, никаких названных вами противоречий, компилятор и слева и справа оперирует Wrapper[Foo]
Справа тип уже уточнен
Справа не уточнён тип, справа используется паттерн для фильтрации значений, как этот паттерн связать с аргументом типа?
Надо подумать, но я уверен на 90%, что можно создать правило
Ну если придумаешь - скажи
Обсуждают сегодня