169 похожих чатов

Всем привет https://scastie.scala-lang.org/t4JvomInT6OwGvk6rvPrMw кто может подсказать - что позволяет компилятору обработать holder.genDoc.field

даже без указания type parameter ?
почему не собирается holderDoc.field понятно, но то, что собирается holder.genDoc.field стало сюрпризом

8 ответов

20 просмотров

Получилось в итоге найти/разобраться?) А то интересно и непонятно :) Может, вообще кандидат на https://github.com/scala/bug

Nothing подставляет, поч работает и правда интересно.

Truth-Serruf Автор вопроса
Evgeny Veretennikov
Получилось в итоге найти/разобраться?) А то интер...

найти/разобраться пока не получилось у нас на реальном проекте активно абьюзится такая бага/фича пока понятно только что не стоит так делать

Grigory Pomadchin
Nothing подставляет, поч работает и правда интерес...

Скорее всего где-то внутри тип Nothing & Document, есть же ограничение сверху явное на T

Truth Serruf
найти/разобраться пока не получилось у нас на реал...

Ой, наверное сюда нужен был реплай. Ну в общем, не похоже на магию, как мне кажется, есть разумное объяснение. С флагом -explain пробовали?

Ivan Klass
Скорее всего где-то внутри тип Nothing & Document,...

да думаю изза подтипа, его убрать и все свалится

КМК достаточно разумное поведение, насколько оно вообще может быть с asInstanceOf. Когда просишь сложить результат тебе в переменную - компилятор не имеет понятия, какой тип тебе нужен, а Nothing удовлетворяет ограничениям. А когда сразу в том же выражении вызываешь следующий метод, то тебе подбирают класс, где этот метод есть. Если же явно указать желаемый тип значения, то всё нормально. Но тут другой момент. Если указать посторонний тип, удовлетворяющий ограничениям, то всё тоже вроде будет нормально, но в рантайме будет падение: https://scastie.scala-lang.org/jjfWSe6jSG2tkv8KtXENzA

Andrey Smirnov / 𝓪𝓵𝓵𝓽𝓮𝓻 /
КМК достаточно разумное поведение, насколько оно в...

Ну это проблема не компилятора совершенно, а того, что там asInstanceOf написан небезопасно - явно говорит, что в любой тип может кастовать, а не тот, что в имплементации

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта