По мере приближения стабильного релиза Scala 3.8 компания JetBrains объявила о готовности обновленного плагина для Scala, который теперь поддерживает новые функции этого языка.
Scala, если вы не в курсе, — это язык высокого уровня, сочетающий концепции объектно-ориентированного и функционального программирования. Он работает на JVM, что позволяет использовать существующие библиотеки Java, и широко применяется в обработке больших данных с такими инструментами, как Apache Spark, а также при создании параллельных систем.
Возвращаясь к плагину, JetBrains обновила его, добавив поддержку нового модификатора «into». Scala 3.8 вводит этот модификатор, чтобы предоставить разработчикам более явный контроль над неявными преобразованиями. Его можно использовать как обертку типа, например, into[String], для параметра функции. Это позволяет функции принимать любой тип, который может быть неявно преобразован в String, без необходимости использовать старый импорт implicitConversions. В качестве альтернативы можно добавить ключевое слово into непосредственно в определение класса или трейта, чтобы всегда разрешать неявные преобразования в этот тип.

Что касается конструкций for-comprehension, синтаксис стал немного свободнее. Ранее for-comprehension обязательно нужно было начинать с генератора, например, item <- myList. Если вы хотели создать псевдоним перед генератором, такой возможности не было. Теперь можно начать с псевдонима, например, numbers = List(1, 2, 3), и плагин корректно это обработает.
Плагин Scala также был обновлен для поддержки capture checking — новой функции в Scala 3.8. Это система для отслеживания побочных эффектов функции на этапе компиляции с использованием системы «возможностей» (capabilities).
Сигнатура функции может объявлять, какие разрешения ей необходимы, например, ввод-вывод файлов, и компилятор запретит ей выполнять любые действия, на которые у нее нет разрешения. На данный момент поддержка плагина базовая, в основном для того, чтобы разработчики могли просматривать стандартную библиотеку Scala 3.8, которая уже использует эту функцию, без того, чтобы экран заполнялся красными линиями ошибок.
Среди других функций, которые теперь поддерживает плагин Scala, есть метод runtimeChecked. Это метод расширения, который можно добавить к выражению, чтобы сообщить компилятору пропустить определенные статические проверки. Например, если у вас сопоставление с образцом (pattern match) не охватывает все возможные случаи, компилятор обычно выдает предупреждение. Добавление .runtimeChecked к выражению подавит это предупреждение. Плагин также распознает, что Scala 3.8 требует JDK 17, и отобразит предупреждение, если ваш проект настроен на использование более старой версии.

В других новостях от JetBrains компания недавно представила дорожную карту для CLion 2026.1, релиз которого ожидается примерно в марте. Этот IDE для C/C++ получит такие обновления, как выделенный отладочный сервер для OpenOCD, улучшенная интеграция с Bazel с парсером логов выполнения и исправления производительности для пользователей Windows.
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – David Uzondu




