Internships
Register
Copyright © 2000—2025 JetBrains s.r.o.

coCheKt: Contract Checker for Kotlin

Description

В языке Kotlin с версии 1.3 появились контракты --- специальный способ описания интересного поведения функций, понятный компилятору.
С их помощью можно, например, расширять доступные smart cast'ы или уточнять анализ инициализированности переменных, т.е. делать мир лучше.

Вместе с тем, у текущей реализации контрактов есть две основные проблемы.
Во-первых, все контракты принимаются на веру; в случае, если разработчик случайно или намеренно сделал ошибку в контракте, это может привести к ошибкам или падениям программы.
Во-вторых, контракты необходимо писать вручную, что не всегда является удобным для разработчика.

В данном проекте предлагается попробовать справиться с одной или с обеими проблемами контрактов.
Подойдет как разработка отдельного (внешнего) инструмента, так и (для смелых духом) интеграция внутрь самого компилятора Kotlin.

Requirements

  • Знание JVM
  • Владение одним из JVM языков (Java, Kotlin, ...)
  • Понимание основ статического анализа
  • Готовность читать и понимать статьи на английском языке
  • Самоорганизованность

Admission

JetBrains Research лето 2020

Mentor

Marat Akhin, Mikhail Belyaev (Blocked)

Product/Team

JetBrains Research

Tags

Compilers
Kotlin
Research