T
traeai
Sign in
返回首页
The JetBrains Blog

Qodana 2026.1: Rust EAP, Stable C/C++ Support, and New Code Inspections

8.7Score
Qodana 2026.1: Rust EAP, Stable C/C++ Support, and New Code Inspections

TL;DR · AI Summary

Qodana 2026.1 officially releases stable C/C++ support, launches Rust EAP, and introduces over 150 new code inspections across Kotlin, Python, and C# to catch subtle bugs early.

Key Takeaways

  • C/C++ linter moved from EAP to general availability with CMake support and 10-mi
  • Rust EAP includes over 150 inspections, covering dead code, lifetimes, unsafe co
  • New inspections detect suspicious `::javaClass` usage in Kotlin and coroutine bo

Outline

Jump quickly between sections.

  1. §Qodana 2026.1 Release Overview

    Qodana 2026.1 officially launches stable C/C++ support, opens Rust Early Access Program, and adds new inspections for multiple languages.

  2. Qodana for C/C++ has transitioned from EAP to general availability, supporting CMake and configurable 10-minute startup timeouts.

  3. Rust version enters early access with over 150 inspections, including cargo check and clippy integration.

  4. Introduces checks for suspicious `::javaClass` in Kotlin and coroutines in boolean contexts in Python.

  5. Ignores cached .idea files and advises cleaning local IDE instances to prevent build conflicts.

Mindmap

See how the topics connect at a glance.

查看大纲文本(无障碍 / 无 JS 友好)
  • Qodana 2026.1 新特性
    • C/C++ 稳定支持
      • EAP 结束,正式发布
      • 支持 CMake 构建系统
      • 可配置 10 分钟超时
    • Rust EAP 启动
      • 150+ 代码检查规则
      • 集成 cargo check/clippy
      • 支持多工作区与 proc macros
    • 新代码检查
      • Kotlin: ::javaClass 悬念引用
      • Python: 协程用于布尔条件
      • C#: 新增类型安全检查

Highlights

Key sentences worth saving and sharing.

  • Qodana for C/C++ is now generally available with support for CMake and configurable timeouts up to 10 minutes.

    Qodana for C/C++ is out of EAP

    ⬇︎ 下载 PNG𝕏 分享到 X
  • Over 150 inspections for Rust, including dead code, lifetime issues, unsafe code, and built-in cargo check/clippy integration.

    The Qodana for Rust EAP is now open

    ⬇︎ 下载 PNG𝕏 分享到 X
  • Suspicious use of `::javaClass` creates a KProperty0<Class<T>> instead of Class<T>, leading to hard-to-detect bugs.

    Kotlin: Suspicious ::javaClass callable reference

    ⬇︎ 下载 PNG𝕏 分享到 X
#Qodana#Static Analysis#Rust#C/C++#CI/CD
Open original article
Image 1: Qodana logo

The code quality platform for teams

Releases

Qodana 2026.1: Rust EAP, Stable C/C++ Support, and New Code Inspections

Image 2: Elizaveta Myšáková

May 12, 2026

Image 3

Qodana 2026.1 release brings two important linter updates and a new set of inspections designed to help you catch more issues earlier in development. In this release, Qodana for C/C++ moves out of EAP, Qodana for Rust becomes available in EAP, and several new inspections add protection against subtle bugs in Kotlin, Python, and C#.

If you’re new to Qodana, you can learn more about Qodana in our previous posts.

Qodana for C/C++ is out of EAP

Qodana for C/C++ is now generally available, enhancing its readiness for production use in native code development. We introduced support for C/C++ projects back in 2025.1, and since then, the linter has been expanded and refined based on your feedback. It’s now ready for production use in native code development.

Thank you to everyone who tried qodana-cpp during its EAP! Here are some of the changes we’ve made based on your feedback:

  • Qodana now properly detects build system failures, including for CMake and others, and helps you diagnose issues.
  • For large projects, Qodana now features configurable timeouts via qd.cpp.startup.timeout.minutes:

qodana.yaml

properties: qd.cpp.startup.timeout.minutes: "10"

  • Cached build configurations in the .idea folder are simply ignored. We still advise cleaning cached files before running an analysis and closing any local IDE instances to avoid access conflicts with the .idea folder.

For more details, check out the C/C++ documentation and our previous post on the linter.

[Qodana For C++ Info](https://www.jetbrains.com/help/qodana/clang.html "Qodana For C++ Info")

The Qodana for Rust EAP is now open

With Qodana 2026.1, we’re launching the Early Access Program for Qodana for Rust. Adoption of Rust has grown significantly, with over 2.5 million developers using it in the last year. According to Stack Overflow, Rust has been the #1 most admired language for the past 10 years straight. And, there is strong demand from Rust teams working on infrastructure and performance-sensitive systems for safeguards.

With this release, we aim to simplify the integration of static analysis into Rust workflows, supporting Rust’s growing use in infrastructure and performance-sensitive applications.

We’re bringing you:

  • Over 150 inspections, including for dead code, lifetime issues, unsafe code, and more, as well as built-in cargo check and cargo clippy inspections.
  • Conditional compilation, feature gating, and proc macro handling.
  • Configurable Rust toolchain via rustup in the bootstrap block.
  • Native support for multiple workspaces.

Your team can begin exploring automated inspections for Rust projects in CI and provide feedback as the linter develops. The current list of Rust inspections is available on Inspectopedia.

[Qodana For Rust Info](https://www.jetbrains.com/help/qodana/rust.html "Qodana For Rust Info")

New inspections in 2026.1

This release also adds new inspections for multiple ecosystems to help catch issues that can cause confusing behavior in production but that are easy to miss in the code review phase.

Kotlin: Suspicious `::javaClass` callable reference

This inspection reports suspicious uses of the kotlin.jvm.javaClass extension as a callable reference.

Using ::javaClass syntax does not result in a Class<T> instance, as may be expected. Instead, it creates a property reference of type KProperty0<Class<T>>, which is almost never the intended behavior and can lead to hard-to-detect bugs.

fun test(a: String) { val classRef = a::javaClass // KProperty0<Class<String>> println(classRef) // Prints "property javaClass", not "class java.lang.String" }

Python: Suspicious boolean condition

This inspection reports coroutines used in boolean contexts such as if, while, or ternary expressions, even in the absence of the await keyword.

A coroutine object itself is always truthy, so using it directly in a condition will evaluate as True even when that is not the intended logic. The actual result only becomes available after await. In practice, this inspection helps prevent async code from silently behaving incorrectly because a coroutine was checked instead of executed.

Wrong:

async def check() -> bool: return True

async def main(): if check(): # Always True - coroutine object is truthy print("hi") Expected:

async def main(): if await check(): # Correctly awaits the coroutine print("hi")

C#: Short-lived `HttpClient`

This inspection reports short-lived uses of HttpClient. Frequently creating new HttpClient instances can lead to socket exhaustion and unnecessary resource pressure. In most cases, it is better to use IHttpClientFactory or a long-lived shared HttpClient instance.

This is the kind of issue that may not show up immediately during development, but can become a reliability problem under real traffic.

public class C { static async Task<string> GetDataAsync(string url) { var client = new HttpClient() { Timeout = TimeSpan.FromMinutes(10) }; // Better to move in property var response = await client.GetAsync(url); response.EnsureSuccessStatusCode(); return await response.Content.ReadAsStringAsync(); } }

Coming soon…

  • Code quality and security support for Laravel
  • Project-specific code quality rules
  • Additions to Insights like code provenance tracking

What’s next for you?

If you’re already using the latest release, you’re ready to start using the improvements in Qodana 2026.1 right away. If not, update to 2026.1 to try the stable C/C++ linter, participate in the Rust EAP, and start benefiting from the new inspections for Kotlin, Python, and C#.

For setup details and feature-specific guidance, head over to the documentation. If you’d like to see what Qodana can do in your own environment, try it on your project and explore the latest updates on the Qodana blog.

[Switch To Qodana](https://www.jetbrains.com/qodana/request-a-demo/ "Switch to Qodana")

[](https://blog.jetbrains.com/qodana/2026/05/qodana-2026-1-release/#)

  1. Qodana for C/C++ is out of EAP
  2. The Qodana for Rust EAP is now open
  3. New inspections in 2026.1
  4. Kotlin: Suspicious ::javaClass callable reference
  5. Python: Suspicious boolean condition
  6. C#: Short-lived HttpClient
  1. Coming soon…
  2. What’s next for you?

Discover more

AI may generate inaccurate information. Please verify important content.