Size: a a a

2021 November 08

АО

Алексей Овсянников... in Kotlin JVM
аааа
источник

VP

Vladimir Petrakovich in Kotlin JVM
Я вам ещё раз объясняю, что это никак не влияет не на ваш код
источник

АО

Алексей Овсянников... in Kotlin JVM
блин, я прочитал неправильно извиняюсь
источник

AN

Alexander Nozik in Kotlin JVM
Это не важно, потому что ошибка нахождения метода в рантайме.
источник

VP

Vladimir Petrakovich in Kotlin JVM
И что, что не используется, резолвится именно метод из ByteBuffer (так как он переопределён)
источник

АО

Алексей Овсянников... in Kotlin JVM
говорю - просто прочитал не то
источник

AN

Alexander Nozik in Kotlin JVM
То есть там в байткоде идет ссылка на метод не того класса? Ну в принципе да, может быть. Вообще странно, они должны были это на проверке бинарной совместимости увидеть
источник

VP

Vladimir Petrakovich in Kotlin JVM
Да, в итоге идёт ссылка на метод, которого не было в 8.
А их ABI не изменился, так это не заметишь)
источник

AN

Alexander Nozik in Kotlin JVM
Ну да, оно же наружу не утекает.
источник

VP

Vladimir Petrakovich in Kotlin JVM
То есть получается, что не указывать --release довольно опасно. Обычно хотя бы видно, что метод since 11 или что-нибудь в таком духе. А тут просто обновил jdk и совместимость потерялась.
источник

VP

Vladimir Petrakovich in Kotlin JVM
Хотя я даже не уверен, что котлиновский компилятор это умеет
источник

AN

Alexander Nozik in Kotlin JVM
Закинул в ктор чат, чтобы оно не потерялось
источник

VS

Vladimir Sitnikov in Kotlin JVM
В этом-то и дело, что, похоже, котлиновый компилятор не умеет компилироваться об --release 8.
источник

VP

Vladimir Petrakovich in Kotlin JVM
Тогда вся надежда на IDE
источник

VS

Vladimir Sitnikov in Kotlin JVM
Нее, надежда, что Котлин компилятор научится в --release.
Кстати, кто-нибудь знает как оно в Java сделано?
Там захардкожено ABI? Оно в виде каких-нибудь специальных ресурсов в JDK присутствует?
источник

VP

Vladimir Petrakovich in Kotlin JVM
По-моему, на аннотациях, как в андроиде (но это не точно)
источник

VP

Vladimir Petrakovich in Kotlin JVM
Ух, надежды 🙂
источник

VP

Vladimir Petrakovich in Kotlin JVM
Эх, если бы. JEP 247 говорит вот такое:
For JDK N and --release M, M < N, signature data of the documented APIs of release M of the platform is needed. This data is stored in the $JDK_ROOT/lib/ct.sym file, which is similar, but not the same, as the file of the same name in JDK 8. The ct.sym file is a ZIP file containing stripped-down class files corresponding to class files from the target platform versions.
For JDK N and --release N,the JDK's own image is used as the source of the class files to compile against. The list of observable modules is limited, however, to the documented modules and the jdk.unsupported module.
источник

VP

Vladimir Petrakovich in Kotlin JVM
Подозреваю, что в котлине такое если и сделают, то нескоро
источник

VS

Vladimir Sitnikov in Kotlin JVM
источник