<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>IntelliJ Rust</title>
    <description>Open-source Rust plugin for IntelliJ-based IDEs</description>
    <link>https://intellij-rust.github.io/</link>
    <atom:link href="https://intellij-rust.github.io/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Thu, 02 Nov 2023 10:24:16 +0000</pubDate>
    <lastBuildDate>Thu, 02 Nov 2023 10:24:16 +0000</lastBuildDate>
    <generator>Jekyll v3.9.3</generator>
    
      <item>
        <title>IntelliJ Rust Changelog #200</title>
        <description>&lt;h2 id=&quot;new-features&quot;&gt;New Features&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Add &lt;a href=&quot;https://www.jetbrains.com/help/rider/Code_Vision.html&quot;&gt;Code Vision hints&lt;/a&gt;&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10763&quot;&gt;#10763&lt;/a&gt; Usages hints for some top-level items&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10756&quot;&gt;#10756&lt;/a&gt; VCS hints&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;

    &lt;p&gt;&lt;img src=&quot;/assets/posts/changelog-200/code_vision.png&quot; width=&quot;350px&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10744&quot;&gt;#10744&lt;/a&gt; Improve completion of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;if&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;match&lt;/code&gt; keywords&lt;/p&gt;

    &lt;p&gt;&lt;img class=&quot;gif&quot; data-wait=&quot;true&quot; data-scope=&quot;gif-scope&quot; width=&quot;350px&quot; src=&quot;/assets/posts/changelog-200/match.png&quot; data-gif=&quot;/assets/posts/changelog-200/match.gif&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10718&quot;&gt;#10718&lt;/a&gt; Show the macro expansion in quick documentation on hover&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10729&quot;&gt;#10729&lt;/a&gt; Add the quick fix for printing a struct that doesn’t implement &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Debug&lt;/code&gt; or &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Display&lt;/code&gt; traits&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/9424&quot;&gt;#9424&lt;/a&gt; The intention to convert a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;match&lt;/code&gt; expression to a series of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;if let&lt;/code&gt; expressions is now offered in more situations (by &lt;a href=&quot;https://github.com/Kobzol&quot;&gt;@Kobzol&lt;/a&gt;)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10716&quot;&gt;#10716&lt;/a&gt; Respect &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CARGO_HOME&lt;/code&gt; env variable when looking for Rust toolchain&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10739&quot;&gt;#10739&lt;/a&gt; Support &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Unused must_use&lt;/code&gt; inspection for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;impl Trait&lt;/code&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10714&quot;&gt;#10714&lt;/a&gt; Support &lt;a href=&quot;https://rust-lang.github.io/rfcs/3348-c-str-literal.html&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;c_str_literal&lt;/code&gt; feature&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10726&quot;&gt;#10726&lt;/a&gt; Add inspection to replace &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;therad_rng().gen()&lt;/code&gt; with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;random()&lt;/code&gt; from &lt;a href=&quot;https://docs.rs/rand/latest/rand/&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;rand&lt;/code&gt;&lt;/a&gt; crate&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;fixes&quot;&gt;Fixes&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10760&quot;&gt;#10760&lt;/a&gt; Adjust IntelliSense file size limit for Rust files. This fixes the expansion of macros from &lt;a href=&quot;https://github.com/swc-project/swc&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;swc&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10755&quot;&gt;#10755&lt;/a&gt; Implement &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;impl&lt;/code&gt;s search for an alias of an alias and for an alias usage&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10749&quot;&gt;#10749&lt;/a&gt; Fix expansion of macro in pattern binding position&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10748&quot;&gt;#10748&lt;/a&gt; Fix type inference for macro expanded to closure&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10721&quot;&gt;#10721&lt;/a&gt; Consider trait bounds when performing dereference&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10720&quot;&gt;#10720&lt;/a&gt; Fix resolve of an associated type pointed to an enum variant&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10719&quot;&gt;#10719&lt;/a&gt; Fix Cargo tool window initialization on 2023.3&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10706&quot;&gt;#10706&lt;/a&gt; Fix handling of stdlib dependencies on 1.72.0-beta&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10702&quot;&gt;#10702&lt;/a&gt; Don’t show integer literal suffix completion if the literal already contains a suffix&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10685&quot;&gt;#10685&lt;/a&gt; Support multiple &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;build.target&lt;/code&gt; values in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.cargo/config.toml&lt;/code&gt; (by &lt;a href=&quot;https://github.com/mryall-mawson&quot;&gt;@mryall-mawson&lt;/a&gt;)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10762&quot;&gt;#10762&lt;/a&gt; Remove &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;unused_qualifications&lt;/code&gt; lint from &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;unused&lt;/code&gt; group, change level to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;WEAK WARNING&lt;/code&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;internal-improvements&quot;&gt;Internal Improvements&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/9958&quot;&gt;#9958&lt;/a&gt; Add support for showing implementations (inheritors) Code Vision. Note, these hints are available starting with 2022.3 and are currently disabled by default. You can turn it on via &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Registry... | org.rust.code.vision.implementation&lt;/code&gt; (by &lt;a href=&quot;https://github.com/Kobzol&quot;&gt;@Kobzol&lt;/a&gt;)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10708&quot;&gt;#10708&lt;/a&gt; Make 2023.2 the default platform for development&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10705&quot;&gt;#10705&lt;/a&gt; Merge &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;toml&lt;/code&gt; module source into the main module&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Full set of changes can be found &lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/milestone/109?closed=1&quot;&gt;here&lt;/a&gt;&lt;/p&gt;

</description>
        <pubDate>Mon, 07 Aug 2023 10:00:00 +0000</pubDate>
        <link>https://intellij-rust.github.io/2023/08/07/changelog-200.html</link>
        <guid isPermaLink="true">https://intellij-rust.github.io/2023/08/07/changelog-200.html</guid>
        
        
      </item>
    
      <item>
        <title>IntelliJ Rust Changelog #199</title>
        <description>&lt;h2 id=&quot;new-features&quot;&gt;New Features&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10648&quot;&gt;#10648&lt;/a&gt; Highlight &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Unresolved Reference&lt;/code&gt; error for type-independent paths&lt;/p&gt;

    &lt;p&gt;&lt;img src=&quot;/assets/posts/changelog-199/unresolved_reference.png&quot; width=&quot;700px&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Completion improvements:&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10689&quot;&gt;#10689&lt;/a&gt; Complete chained iterator methods&lt;/p&gt;

        &lt;p&gt;&lt;img class=&quot;gif&quot; data-wait=&quot;true&quot; data-scope=&quot;gif-scope&quot; width=&quot;600px&quot; src=&quot;/assets/posts/changelog-199/chained_iterators.png&quot; data-gif=&quot;/assets/posts/changelog-199/chained_iterators.gif&quot; /&gt;&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10647&quot;&gt;#10647&lt;/a&gt; Complete Cargo &lt;a href=&quot;https://doc.rust-lang.org/cargo/reference/build-scripts.html#outputs-of-the-build-script&quot;&gt;instructions&lt;/a&gt; in build scripts&lt;/p&gt;

        &lt;p&gt;&lt;img class=&quot;gif&quot; data-wait=&quot;true&quot; data-scope=&quot;gif-scope&quot; width=&quot;600px&quot; src=&quot;/assets/posts/changelog-199/cargo_instructions.png&quot; data-gif=&quot;/assets/posts/changelog-199/cargo_instructions.gif&quot; /&gt;&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10651&quot;&gt;#10651&lt;/a&gt; Show the value of constants in the completion list&lt;/p&gt;

        &lt;p&gt;&lt;img src=&quot;/assets/posts/changelog-199/constant-values.png&quot; width=&quot;600px&quot; /&gt;&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10692&quot;&gt;#10692&lt;/a&gt; Provide &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;fn&lt;/code&gt; keyword completion in the type context&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10691&quot;&gt;#10691&lt;/a&gt; Provide completion for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;fn main() { ... }&lt;/code&gt;&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Improved error messages and provide new quick fixes:&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10684&quot;&gt;#10684&lt;/a&gt; When trying to use a prefix/postfix increment like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;i++&lt;/code&gt;&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10661&quot;&gt;#10661&lt;/a&gt; When incorrectly using &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;impl&lt;/code&gt; or &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;dyn&lt;/code&gt; in type parameters bounds&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10681&quot;&gt;#10681&lt;/a&gt; When trying to inherit one struct from another - a helpful reminder that Rust doesn’t support inheritance like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;struct Foo: Bar {}&lt;/code&gt;&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10664&quot;&gt;#10664&lt;/a&gt; Add a new inspection for when the entry point of the program is marked as &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;async&lt;/code&gt; (&lt;a href=&quot;https://doc.rust-lang.org/error_codes/E0752.html&quot;&gt;E0752&lt;/a&gt;)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10592&quot;&gt;#10592&lt;/a&gt; Add better support for the &lt;a href=&quot;https://doc.rust-lang.org/rustc/lints/listing/warn-by-default.html#path-statements&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Path statements&lt;/code&gt;&lt;/a&gt; inspection and enable it by default&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10650&quot;&gt;#10650&lt;/a&gt; Add &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;iter&lt;/code&gt; alias for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;for&lt;/code&gt; &lt;a href=&quot;https://plugins.jetbrains.com/plugin/8182-rust/docs/rust-code-generation.html#live-templates&quot;&gt;live template&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10436&quot;&gt;#10436&lt;/a&gt; Now the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Trait objects must include the dyn keyword&lt;/code&gt; inspection raises an error in the 2021 edition, and a warning on 2018 (by &lt;a href=&quot;https://github.com/DeoTimeTheGithubUser&quot;&gt;@DeoTimeTheGithubUser&lt;/a&gt;)&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;fixes&quot;&gt;Fixes&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10671&quot;&gt;#10671&lt;/a&gt; Fix bugs related to grammar error detection in Rust code using new API from &lt;a href=&quot;https://plugins.jetbrains.com/plugin/12175-grazie-lite&quot;&gt;Grazie&lt;/a&gt; plugin. Note, grammar error detection is disabled by default for now. You can enable it for Rust in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Scope&lt;/code&gt; tab of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Preferences | Editor | Natural Languages | Grammar and Style&lt;/code&gt; settings&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Completion fixes:&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10679&quot;&gt;#10679&lt;/a&gt; Show completion auto-popup when literal suffix is typed&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10663&quot;&gt;#10663&lt;/a&gt; Don’t add new line by smart enter action after &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;;&lt;/code&gt; completion&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10682&quot;&gt;#10682&lt;/a&gt; Complete &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;macro&lt;/code&gt; live template only in item context&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10680&quot;&gt;#10680&lt;/a&gt; Don’t complete integer suffixes for literals in scientific notation&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10674&quot;&gt;#10674&lt;/a&gt; Fix dependency keys completion when another key exists before&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Macro expansion improvements:&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10678&quot;&gt;#10678&lt;/a&gt; Increase proc macro expansion timeout to 20 seconds&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10678&quot;&gt;#10678&lt;/a&gt; Improve error message in the case of too large macro expansion&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10675&quot;&gt;#10675&lt;/a&gt; Improve error message for a non-expanded macro inside an impl block&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10653&quot;&gt;#10653&lt;/a&gt; Use &lt;a href=&quot;https://doc.rust-lang.org/error_codes/E0403.html&quot;&gt;E0403&lt;/a&gt; instead of deprecated &lt;a href=&quot;https://doc.rust-lang.org/error_codes/E0263.html&quot;&gt;E0263&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10676&quot;&gt;#10676&lt;/a&gt; Fix name resolution inside a nested block under a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;cfg&lt;/code&gt; attribute&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10645&quot;&gt;#10645&lt;/a&gt; Fix live templates suggestion in loop labels and other positions&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10669&quot;&gt;#10669&lt;/a&gt; Fix type inference in case of struct pattern matching&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10688&quot;&gt;#10688&lt;/a&gt; Match negative numeric literals with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;$l:literal&lt;/code&gt; macro fragment spec&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10428&quot;&gt;#10428&lt;/a&gt; Suggest &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Surround with unsafe block&lt;/code&gt; quick fix instead of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Add unsafe to function&lt;/code&gt; for an unsafe call in some cases (e.g. inside a test function, main function, etc.) (by &lt;a href=&quot;https://github.com/DeoTimeTheGithubUser&quot;&gt;@DeoTimeTheGithubUser&lt;/a&gt;)&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;internal-improvements&quot;&gt;Internal Improvements&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10670&quot;&gt;#10670&lt;/a&gt; Implement initial support for GDB debugging outside CLion. Right now it’s disabled by default and works only on Linux&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10668&quot;&gt;#10668&lt;/a&gt;, &lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10686&quot;&gt;#10686&lt;/a&gt; Extract hardcoded strings into a message bundle, allowing its future internationalization&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Full set of changes can be found &lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/milestone/108?closed=1&quot;&gt;here&lt;/a&gt;&lt;/p&gt;

</description>
        <pubDate>Mon, 24 Jul 2023 10:00:00 +0000</pubDate>
        <link>https://intellij-rust.github.io/2023/07/24/changelog-199.html</link>
        <guid isPermaLink="true">https://intellij-rust.github.io/2023/07/24/changelog-199.html</guid>
        
        
      </item>
    
      <item>
        <title>IntelliJ Rust Changelog #198</title>
        <description>&lt;h2 id=&quot;update-on-procedural-macros-support&quot;&gt;Update on Procedural Macros Support&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10607&quot;&gt;#10607&lt;/a&gt; We finally enabled &lt;a href=&quot;https://doc.rust-lang.org/reference/procedural-macros.html#attribute-macros&quot;&gt;attribute&lt;/a&gt; procedural macro expansion by default 🎉&lt;/p&gt;

&lt;p&gt;Now generated items are suggested in code completion and considered in other code insight features:&lt;/p&gt;

&lt;p&gt;&lt;img class=&quot;gif&quot; data-wait=&quot;true&quot; data-scope=&quot;gif-scope&quot; width=&quot;600px&quot; src=&quot;/assets/posts/changelog-198/macro_expansion.png&quot; data-gif=&quot;/assets/posts/changelog-198/macro_expansion.gif&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;new-features&quot;&gt;New Features&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Completion improvements:&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10631&quot;&gt;#10631&lt;/a&gt; Suggest &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.slice&lt;/code&gt;/&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.sublist&lt;/code&gt; postfix completion that inserts &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;[a..b]&lt;/code&gt; for indexable types&lt;/p&gt;

        &lt;p&gt;&lt;img class=&quot;gif&quot; data-wait=&quot;true&quot; data-scope=&quot;gif-scope&quot; width=&quot;600px&quot; src=&quot;/assets/posts/changelog-198/slice.png&quot; data-gif=&quot;/assets/posts/changelog-198/slice.gif&quot; /&gt;&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10637&quot;&gt;#10637&lt;/a&gt; Provide completion for literal suffixes&lt;/p&gt;

        &lt;p&gt;&lt;img class=&quot;gif&quot; data-wait=&quot;true&quot; data-scope=&quot;gif-scope&quot; width=&quot;600px&quot; src=&quot;/assets/posts/changelog-198/literal_suffix.png&quot; data-gif=&quot;/assets/posts/changelog-198/literal_suffix.gif&quot; /&gt;&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10635&quot;&gt;#10635&lt;/a&gt; Complete keys inside TOML dependency specification&lt;/p&gt;

        &lt;p&gt;&lt;img class=&quot;gif&quot; data-wait=&quot;true&quot; data-scope=&quot;gif-scope&quot; width=&quot;600px&quot; src=&quot;/assets/posts/changelog-198/toml_key_completion.png&quot; data-gif=&quot;/assets/posts/changelog-198/toml_key_completion.gif&quot; /&gt;&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10634&quot;&gt;#10634&lt;/a&gt; Provide &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;as&lt;/code&gt; keyword completion&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10636&quot;&gt;#10636&lt;/a&gt; Complete enum variants inside patterns&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10605&quot;&gt;#10605&lt;/a&gt; Suggest replacing casts like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;1 as u8&lt;/code&gt; to a literal suffix &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;1u8&lt;/code&gt;&lt;/p&gt;

    &lt;p&gt;&lt;img class=&quot;gif&quot; data-wait=&quot;true&quot; data-scope=&quot;gif-scope&quot; width=&quot;600px&quot; src=&quot;/assets/posts/changelog-198/1_as_u8.png&quot; data-gif=&quot;/assets/posts/changelog-198/1_as_u8.gif&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10608&quot;&gt;#10608&lt;/a&gt; Show inlay hints for exclusive range patterns and expressions&lt;/p&gt;

    &lt;p&gt;&lt;img src=&quot;/assets/posts/changelog-198/range.png&quot; width=&quot;600px&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10630&quot;&gt;#10630&lt;/a&gt; Detect &lt;a href=&quot;https://doc.rust-lang.org/error_codes/E0557.html&quot;&gt;E0557&lt;/a&gt; error and provide a quick-fix for it&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10602&quot;&gt;#10602&lt;/a&gt; Highlight &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;compile_error!()&lt;/code&gt; usage as an error&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10640&quot;&gt;#10640&lt;/a&gt; Parse default parameter values (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;fn foo(a: i32 = 1) {}&lt;/code&gt;) and highlight that they are not
supported in Rust&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10119&quot;&gt;#10119&lt;/a&gt; Support &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Emulate terminal in output console&lt;/code&gt; for Debug runner on 2023.1&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10622&quot;&gt;#10622&lt;/a&gt; Add notification about disabling the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Test tool window&lt;/code&gt; with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Revert&lt;/code&gt; button&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;fixes&quot;&gt;Fixes&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10620&quot;&gt;#10620&lt;/a&gt; Highlight &lt;a href=&quot;https://doc.rust-lang.org/error_codes/E0061.html&quot;&gt;E0061&lt;/a&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;An invalid number of arguments was passed when calling a function&lt;/code&gt; error
for impl trait calls&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10604&quot;&gt;#10604&lt;/a&gt; Don’t mishighlight cfg-disabled code in macro calls&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10628&quot;&gt;#10628&lt;/a&gt; Fix &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Failed to get project sysroot&lt;/code&gt; error when opening a project with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;rust-toolchain.toml&lt;/code&gt;
file the first time if the toolchain is not yet installed&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10613&quot;&gt;#10613&lt;/a&gt; Fixes a lot of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Unresolved Reference&lt;/code&gt; false-positives in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ruffle&lt;/code&gt; project&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10593&quot;&gt;#10593&lt;/a&gt; Take into account lint level by &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Unused mut&lt;/code&gt; inspection during highlighting&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10619&quot;&gt;#10619&lt;/a&gt; Fix false positive unused &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mut&lt;/code&gt; inspection detection for some macros like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;writeln!()&lt;/code&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10590&quot;&gt;#10590&lt;/a&gt; Move &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Unused mut modifier&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Unnecessary cast&lt;/code&gt; inspections to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Rust/Lint&lt;/code&gt; group in inspection settings&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10621&quot;&gt;#10621&lt;/a&gt; Don’t run &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;cargo clean&lt;/code&gt; on &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Build&lt;/code&gt; action&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;performance-improvements&quot;&gt;Performance Improvements&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10580&quot;&gt;#10580&lt;/a&gt; Specifying a display name for project configurables in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.xml&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;internal-improvements&quot;&gt;Internal Improvements&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10623&quot;&gt;#10623&lt;/a&gt; Next bunch of MIR&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10641&quot;&gt;#10641&lt;/a&gt; Add &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Advanced Settings&lt;/code&gt; usages collector statistics&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Full set of changes can be found &lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/milestone/107?closed=1&quot;&gt;here&lt;/a&gt;&lt;/p&gt;

</description>
        <pubDate>Mon, 10 Jul 2023 10:00:00 +0000</pubDate>
        <link>https://intellij-rust.github.io/2023/07/10/changelog-198.html</link>
        <guid isPermaLink="true">https://intellij-rust.github.io/2023/07/10/changelog-198.html</guid>
        
        
      </item>
    
      <item>
        <title>IntelliJ Rust Changelog #197</title>
        <description>&lt;h2 id=&quot;new-features&quot;&gt;New Features&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10552&quot;&gt;#10552&lt;/a&gt;, &lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10581&quot;&gt;#10581&lt;/a&gt;, &lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10569&quot;&gt;#10569&lt;/a&gt; Enable &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Unused mut&lt;/code&gt; inspection by default with several improvements&lt;/p&gt;

    &lt;p&gt;&lt;img src=&quot;/assets/posts/changelog-197/unused_mut.png&quot; width=&quot;700px&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10579&quot;&gt;#10579&lt;/a&gt; Make &lt;a href=&quot;https://plugins.jetbrains.com/plugin/8182-rust/docs/rust-code-generation.html#intention-actions&quot;&gt;quick-fixes&lt;/a&gt; work inside an attribute macro expansion. Note that &lt;a href=&quot;https://doc.rust-lang.org/reference/procedural-macros.html#attribute-macros&quot;&gt;attribute&lt;/a&gt; procedural macro expansion is disabled by default. If you want to try it out, enable &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;org.rust.macros.proc.attr&lt;/code&gt; &lt;a href=&quot;https://plugins.jetbrains.com/plugin/8182-rust/docs/rust-faq.html#experimental-features&quot;&gt;experimental feature&lt;/a&gt;.&lt;/p&gt;

    &lt;p&gt;&lt;img class=&quot;gif&quot; data-wait=&quot;true&quot; data-scope=&quot;gif-scope&quot; width=&quot;350px&quot; src=&quot;/assets/posts/changelog-197/quick_fixes_attribute_macros.png&quot; data-gif=&quot;/assets/posts/changelog-197/quick_fixes_attribute_macros.gif&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10577&quot;&gt;#10577&lt;/a&gt; Add quick-fixes for incorrect &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Display&lt;/code&gt;/&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Debug&lt;/code&gt; format modifiers&lt;/p&gt;

    &lt;p&gt;&lt;img class=&quot;gif&quot; data-wait=&quot;true&quot; data-scope=&quot;gif-scope&quot; width=&quot;700px&quot; src=&quot;/assets/posts/changelog-197/change_display_to_debug.png&quot; data-gif=&quot;/assets/posts/changelog-197/change_display_to_debug.gif&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10570&quot;&gt;#10570&lt;/a&gt; Highlight missing format string inside &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;println&lt;/code&gt;-like calls&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10561&quot;&gt;#10561&lt;/a&gt; Support &lt;a href=&quot;https://www.jetbrains.com/help/idea/viewing-reference-information.html&quot;&gt;parameter info&lt;/a&gt; inside struct literal (&lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;P&lt;/kbd&gt;)&lt;/p&gt;

    &lt;p&gt;&lt;img src=&quot;/assets/posts/changelog-197/struct_literal_parameter_info.png&quot; width=&quot;350px&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10550&quot;&gt;#10550&lt;/a&gt; Support &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Unnecessary cast&lt;/code&gt; inspection for function types&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10546&quot;&gt;#10546&lt;/a&gt; Provide unresolved imported items as completion items&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10545&quot;&gt;#10545&lt;/a&gt; Detect &lt;a href=&quot;https://doc.rust-lang.org/error-index.html#E0061&quot;&gt;E0061&lt;/a&gt; for function pointer types&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10539&quot;&gt;#10539&lt;/a&gt; Support &lt;a href=&quot;https://doc.rust-lang.org/error-index.html#E0308&quot;&gt;E0308&lt;/a&gt; for closure and function types&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10541&quot;&gt;#10541&lt;/a&gt; Add filename in error message for pre-commit rustfmt&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10572&quot;&gt;#10572&lt;/a&gt; Deprecate &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;box&lt;/code&gt; syntax&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;fixes&quot;&gt;Fixes&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10586&quot;&gt;#10586&lt;/a&gt; Fix false-positive &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Unnecessary cast&lt;/code&gt; when casting enum constructors to function&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10563&quot;&gt;#10563&lt;/a&gt; Suggest &lt;a href=&quot;https://plugins.jetbrains.com/plugin/8182-rust/docs/rust-refactorings.html#change-sign&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Change signature&lt;/code&gt;&lt;/a&gt; refactoring when editing a signature of a method with explicit &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;self&lt;/code&gt; type&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10548&quot;&gt;#10548&lt;/a&gt; Test inspections and error annotators against attribute procedural macros&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10540&quot;&gt;#10540&lt;/a&gt; Fix regression for &lt;a href=&quot;https://doc.rust-lang.org/error-index.html#E0562&quot;&gt;E0562&lt;/a&gt; in return types&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Full set of changes can be found &lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/milestone/106?closed=1&quot;&gt;here&lt;/a&gt;&lt;/p&gt;

</description>
        <pubDate>Mon, 26 Jun 2023 10:00:00 +0000</pubDate>
        <link>https://intellij-rust.github.io/2023/06/26/changelog-197.html</link>
        <guid isPermaLink="true">https://intellij-rust.github.io/2023/06/26/changelog-197.html</guid>
        
        
      </item>
    
      <item>
        <title>IntelliJ Rust Changelog #196</title>
        <description>&lt;h2 id=&quot;new-features&quot;&gt;New Features&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10477&quot;&gt;#10477&lt;/a&gt; Add &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;unnecessary cast&lt;/code&gt; inspection&lt;/p&gt;

    &lt;p&gt;&lt;img class=&quot;gif&quot; data-wait=&quot;true&quot; data-scope=&quot;gif-scope&quot; width=&quot;700px&quot; src=&quot;/assets/posts/changelog-196/unnecessary_cast.png&quot; data-gif=&quot;/assets/posts/changelog-196/unnecessary_cast.gif&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10524&quot;&gt;#10524&lt;/a&gt; Make &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Run rustfmt&lt;/code&gt; available as a pre-commit action&lt;/p&gt;

    &lt;p&gt;&lt;img src=&quot;/assets/posts/changelog-196/pre_commit_rustfmt.png&quot; width=&quot;700px&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10530&quot;&gt;#10530&lt;/a&gt; Support &lt;a href=&quot;https://rust-lang.github.io/impl-trait-initiative/RFCs/rpit-in-traits.html&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;return_position_impl_trait_in_trait&lt;/code&gt;&lt;/a&gt; feature&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10480&quot;&gt;#10480&lt;/a&gt; Add completion for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;for&lt;/code&gt; keyword after &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;impl&lt;/code&gt; block&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;fixes&quot;&gt;Fixes&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10554&quot;&gt;#10554&lt;/a&gt; Fix &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;cargo test&lt;/code&gt; on Rust 1.70.0+ stable if the Test Tool Window is enable.
         Note: now IDE runs &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;cargo test&lt;/code&gt; with the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;RUSTC_BOOTSTRAP=1&lt;/code&gt; environment variable 1.70.0+ stable.
         This enables required experimental features but may impact build and test results in rare cases.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10528&quot;&gt;#10528&lt;/a&gt; Fix expansion of macro 2.0 with multiple patterns (cases)&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;internal-improvements&quot;&gt;Internal Improvements&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10514&quot;&gt;#10514&lt;/a&gt; Initial support for &lt;a href=&quot;https://doc.rust-lang.org/error_codes/E0505.html&quot;&gt;E0505&lt;/a&gt; using MIR framework&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Full set of changes can be found &lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/milestone/105?closed=1&quot;&gt;here&lt;/a&gt;&lt;/p&gt;

</description>
        <pubDate>Mon, 12 Jun 2023 10:00:00 +0000</pubDate>
        <link>https://intellij-rust.github.io/2023/06/12/changelog-196.html</link>
        <guid isPermaLink="true">https://intellij-rust.github.io/2023/06/12/changelog-196.html</guid>
        
        
      </item>
    
      <item>
        <title>IntelliJ Rust Changelog #195</title>
        <description>&lt;p&gt;The minimal supported IDE platform version for this plugin update is &lt;strong&gt;2023.1&lt;/strong&gt;.
To receive this and further plugin updates, please upgrade your IDE to 2023.1 or 2023.2 EAP.&lt;/p&gt;

&lt;h2 id=&quot;new-features&quot;&gt;New Features&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10467&quot;&gt;#10467&lt;/a&gt; Provide support for &lt;strong&gt;2023.2&lt;/strong&gt; &lt;a href=&quot;https://www.jetbrains.com/clion/nextversion/&quot;&gt;EAP&lt;/a&gt; builds.
Note, the Early Access Program gives you free access to pre-release versions of JetBrains software and doesn’t require a paid IDE subscription&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Detect new compiler errors:&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10460&quot;&gt;#10460&lt;/a&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;#[repr(align())]&lt;/code&gt; representation hint was incorrectly declared
&lt;a href=&quot;https://doc.rust-lang.org/error_codes/E0589.html&quot;&gt;E0589&lt;/a&gt;, &lt;a href=&quot;https://doc.rust-lang.org/error_codes/E0693.html&quot;&gt;E0693&lt;/a&gt;&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10456&quot;&gt;#10456&lt;/a&gt; A function is using &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;continue&lt;/code&gt; keyword incorrectly &lt;a href=&quot;https://doc.rust-lang.org/error_codes/E0696.html&quot;&gt;E0696&lt;/a&gt;&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10450&quot;&gt;#10450&lt;/a&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;break&lt;/code&gt; or &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;continue&lt;/code&gt; keywords were used in a condition of a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;while&lt;/code&gt; loop without a label
&lt;a href=&quot;https://doc.rust-lang.org/error_codes/E0590.html&quot;&gt;E0590&lt;/a&gt;&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10426&quot;&gt;#10426&lt;/a&gt; A literal value was used inside &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;#[derive]&lt;/code&gt; &lt;a href=&quot;https://doc.rust-lang.org/error_codes/E0777.html&quot;&gt;E0777&lt;/a&gt;&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10140&quot;&gt;#10140&lt;/a&gt; A &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;#[deprecated]&lt;/code&gt; attribute was malformed &lt;a href=&quot;https://doc.rust-lang.org/error_codes/E0538.html&quot;&gt;E0538&lt;/a&gt;,
&lt;a href=&quot;https://doc.rust-lang.org/error_codes/E0551.html&quot;&gt;E0551&lt;/a&gt;, &lt;a href=&quot;https://doc.rust-lang.org/error_codes/E0541.html&quot;&gt;E0541&lt;/a&gt;&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10459&quot;&gt;#10459&lt;/a&gt; Provide completion for the keyword &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;let&lt;/code&gt; after &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;if&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;while&lt;/code&gt; keywords&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10424&quot;&gt;#10424&lt;/a&gt; Provide a quickfix for replacing a constant with a predefined one in std/core library (by &lt;a href=&quot;https://github.com/DeoTimeTheGithubUser&quot;&gt;@DeoTimeTheGithubUser&lt;/a&gt;)&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;fixes&quot;&gt;Fixes&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10511&quot;&gt;#10511&lt;/a&gt; Land a temporary workaround for the issue &lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/issues/10512&quot;&gt;#10512&lt;/a&gt; “Cannot run tests on Rust 1.70-beta”.
With this fix, the plugin run tests in a simple terminal instead of the rich test-tree tool window
(if you use Rust 1.70-beta or greater). The test running functionality has been degraded because of
&lt;a href=&quot;https://github.com/rust-lang/rust/pull/109044&quot;&gt;rust-lang/rust#109044&lt;/a&gt;. Please follow the
&lt;a href=&quot;https://github.com/rust-lang/rust/issues/49359&quot;&gt;rust-lang/rust#49359&lt;/a&gt; tracking issue for the proper fix.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10456&quot;&gt;#10456&lt;/a&gt; When completing a label in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;continue&lt;/code&gt; expression, don’t complete irrelevant label names&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10421&quot;&gt;#10421&lt;/a&gt; Fixes false-positive “&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;#![feature]&lt;/code&gt; may not be used on the stable release channel” (which appeared in rare cases)&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;internal-improvements&quot;&gt;Internal Improvements&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10452&quot;&gt;#10452&lt;/a&gt;, &lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10453&quot;&gt;#10453&lt;/a&gt;, &lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10457&quot;&gt;#10457&lt;/a&gt; Setup MIR-dataflow framework, experimentally annotate &lt;a href=&quot;https://doc.rust-lang.org/error_codes/E0381.html&quot;&gt;E0381&lt;/a&gt; and &lt;a href=&quot;https://doc.rust-lang.org/error_codes/E0382.html&quot;&gt;E0382&lt;/a&gt; using MIR-based
borrow checker&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10455&quot;&gt;#10455&lt;/a&gt; Drop support for 2022.3 platform&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Full set of changes can be found &lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/milestone/104?closed=1&quot;&gt;here&lt;/a&gt;&lt;/p&gt;

</description>
        <pubDate>Tue, 30 May 2023 10:00:00 +0000</pubDate>
        <link>https://intellij-rust.github.io/2023/05/30/changelog-195.html</link>
        <guid isPermaLink="true">https://intellij-rust.github.io/2023/05/30/changelog-195.html</guid>
        
        
      </item>
    
      <item>
        <title>IntelliJ Rust Changelog #194</title>
        <description>&lt;p&gt;This is the last release that supports the 2022.3 IDEs. To receive plugin updates further, please upgrade your IDE to 2023.1.&lt;/p&gt;

&lt;h2 id=&quot;new-features&quot;&gt;New Features&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Detect new compiler errors:&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10406&quot;&gt;#10406&lt;/a&gt; The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;not&lt;/code&gt; cfg-predicate was malformed &lt;a href=&quot;https://doc.rust-lang.org/error_codes/E0536.html&quot;&gt;E0536&lt;/a&gt;&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10387&quot;&gt;#10387&lt;/a&gt; A non-ident or non-wildcard pattern has been used as a parameter of a function pointer type &lt;a href=&quot;https://doc.rust-lang.org/error_codes/E0561.html&quot;&gt;E0561&lt;/a&gt;&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10399&quot;&gt;#10399&lt;/a&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;async&lt;/code&gt; non-&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;move&lt;/code&gt; closures with parameters are currently not supported &lt;a href=&quot;https://doc.rust-lang.org/error_codes/E0708.html&quot;&gt;E0708&lt;/a&gt;&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10361&quot;&gt;#10361&lt;/a&gt; Variadic parameters have been used on a non-C ABI function &lt;a href=&quot;https://doc.rust-lang.org/error_codes/E0045.html&quot;&gt;E0045&lt;/a&gt;&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10315&quot;&gt;#10315&lt;/a&gt; Support extracting code containing control flow in &lt;a href=&quot;https://plugins.jetbrains.com/plugin/8182-rust/docs/rust-refactorings.html#extractmethod-refactoring&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Extract function&lt;/code&gt;&lt;/a&gt; refactoring (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Refactor | Extract Method&lt;/code&gt; or &lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;Alt&lt;/kbd&gt;+&lt;kbd&gt;M&lt;/kbd&gt;)&lt;/p&gt;

    &lt;p&gt;&lt;img class=&quot;gif&quot; data-wait=&quot;true&quot; data-scope=&quot;gif-scope&quot; width=&quot;700px&quot; src=&quot;/assets/posts/changelog-194/extract_function_control_flow.png&quot; data-gif=&quot;/assets/posts/changelog-194/extract_function_control_flow.gif&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/9219&quot;&gt;#9219&lt;/a&gt; Adjust new Rust project generator to new project wizard in IDEA&lt;/p&gt;

    &lt;p&gt;&lt;img src=&quot;/assets/posts/changelog-194/new_project_wizard.png&quot; width=&quot;700px&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10398&quot;&gt;#10398&lt;/a&gt; Highlight constants and statics differently to visually distinguish them.
You can change the corresponding highlighting via &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Preferences | Editor | Color Scheme | Rust&lt;/code&gt; settings&lt;/p&gt;

    &lt;p&gt;&lt;img src=&quot;/assets/posts/changelog-194/static_const.png&quot; width=&quot;350px&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10359&quot;&gt;#10359&lt;/a&gt; Annotate built-in attributes (by &lt;a href=&quot;https://github.com/kuksag&quot;&gt;@kuksag&lt;/a&gt;)&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;Check that the proper delimiter is applied when specifying an attribute&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;Check that attribute format is conforming with the respective template&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;Check that no literal suffixes are used when specifying an attribute&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;Check if an attribute is used multiple times on the same item&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/9551&quot;&gt;#9551&lt;/a&gt; Allow to configure the channel and environment variables for external linters. You can configure it in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Settings | Languages &amp;amp; Frameworks | Rust | External Linters&lt;/code&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/9287&quot;&gt;#9287&lt;/a&gt; Enable Debugger, Profiler, Valgrind, Code Coverage, and Build/Test tool windows for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;bench&lt;/code&gt; command (CLion only).
Note, default bench profile doesn’t contain debuginfo. You have to use, for example, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;dev&lt;/code&gt; profile (add &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;--profile=dev&lt;/code&gt; to your command)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/8161&quot;&gt;#8161&lt;/a&gt; Allow loading NatVis debugger renderers when using MSVC toolchain on Windows&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/8207&quot;&gt;#8207&lt;/a&gt; Add an experimental option to use source-based coverage&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/8087&quot;&gt;#8087&lt;/a&gt; Add a quick-fix for &lt;a href=&quot;https://doc.rust-lang.org/error-index.html#E0308&quot;&gt;type mismatch E0308&lt;/a&gt; error that adds a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;#[repr(...)]&lt;/code&gt; attribute to an enum: (by &lt;a href=&quot;https://github.com/serid&quot;&gt;@serid&lt;/a&gt;)&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;fixes&quot;&gt;Fixes&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10410&quot;&gt;#10410&lt;/a&gt; Parse and expand macros in attributes: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;#[doc = foo!()]&lt;/code&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10367&quot;&gt;#10367&lt;/a&gt; Properly build local crate index to provide completion of crate names and version in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Cargo.toml&lt;/code&gt; after collapsing cargo git crate index into one commit&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/8147&quot;&gt;#8147&lt;/a&gt; Render const generics in quick docs and inline hints&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/9254&quot;&gt;#9254&lt;/a&gt; Fix &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Needless lifetimes&lt;/code&gt; inspection in case of async functions&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/9740&quot;&gt;#9740&lt;/a&gt; Support smart enter for type aliases&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/8762&quot;&gt;#8762&lt;/a&gt; Fix running build if Cargo project is in a subdirectory&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10382&quot;&gt;#10382&lt;/a&gt; Fix formatting and links in descriptions of some intentions and inspections&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10396&quot;&gt;#10396&lt;/a&gt; Reduce the error scope for E0130, E0561 and E0642 compiler errors from value parameter to pattern&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/8908&quot;&gt;#8908&lt;/a&gt; Fix a bug when applying changes to multiple configurable (e.g. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Rust&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Cargo&lt;/code&gt;) at once&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/7917&quot;&gt;#7917&lt;/a&gt; Fixes &lt;a href=&quot;https://doc.rust-lang.org/error-index.html#E0518&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;E0518&lt;/code&gt;&lt;/a&gt; error detection when there is cfg-disabled import of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;inline&lt;/code&gt; proc macro&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/7141&quot;&gt;#7141&lt;/a&gt; Fix completion of derive proc macro with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;doc(hidden)&lt;/code&gt; attribute in imports&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10380&quot;&gt;#10380&lt;/a&gt; Fix showing error when assigning value to union field outside unsafe block&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/9948&quot;&gt;#9948&lt;/a&gt; Allow cargo packages installed via &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;cargo install --path&lt;/code&gt; (by &lt;a href=&quot;https://github.com/joshuataylor&quot;&gt;@joshuataylor&lt;/a&gt;)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10361&quot;&gt;#10361&lt;/a&gt; Don’t show error &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;function cannot be variadic&lt;/code&gt; when use default ABI&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;internal-improvements&quot;&gt;Internal Improvements&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10389&quot;&gt;#10389&lt;/a&gt; Extend MIR support with most basic cases (by &lt;a href=&quot;https://github.com/LebedevEA&quot;&gt;@LebedevEA&lt;/a&gt;)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10388&quot;&gt;#10388&lt;/a&gt; Migrate tests to JUnit4&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10146&quot;&gt;#10146&lt;/a&gt; Generate info about built-in attributes&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Full set of changes can be found &lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/milestone/103?closed=1&quot;&gt;here&lt;/a&gt;&lt;/p&gt;

</description>
        <pubDate>Mon, 08 May 2023 10:00:00 +0000</pubDate>
        <link>https://intellij-rust.github.io/2023/05/08/changelog-194.html</link>
        <guid isPermaLink="true">https://intellij-rust.github.io/2023/05/08/changelog-194.html</guid>
        
        
      </item>
    
      <item>
        <title>IntelliJ Rust Changelog #193</title>
        <description>&lt;h2 id=&quot;new-features&quot;&gt;New Features&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/8842&quot;&gt;#8842&lt;/a&gt; Provide lint-based suppress quick-fixes for some external linter annotations&lt;/p&gt;

    &lt;p&gt;&lt;img class=&quot;gif&quot; data-wait=&quot;true&quot; data-scope=&quot;gif-scope&quot; width=&quot;700px&quot; src=&quot;/assets/posts/changelog-193/suppress.png&quot; data-gif=&quot;/assets/posts/changelog-193/suppress.gif&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10294&quot;&gt;#10294&lt;/a&gt; Add intention to create an enum variant from usage&lt;/p&gt;

    &lt;p&gt;&lt;img class=&quot;gif&quot; data-wait=&quot;true&quot; data-scope=&quot;gif-scope&quot; width=&quot;700px&quot; src=&quot;/assets/posts/changelog-193/enum-variant.png&quot; data-gif=&quot;/assets/posts/changelog-193/enum-variant.gif&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10322&quot;&gt;#10322&lt;/a&gt;, &lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10335&quot;&gt;#10335&lt;/a&gt; Parse reserved keywords properly, annotate them and suggest to escape&lt;/p&gt;

    &lt;p&gt;&lt;img class=&quot;gif&quot; data-wait=&quot;true&quot; data-scope=&quot;gif-scope&quot; width=&quot;700px&quot; src=&quot;/assets/posts/changelog-193/keywords.png&quot; data-gif=&quot;/assets/posts/changelog-193/keywords.gif&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Detect new compiler errors:&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10311&quot;&gt;#10311&lt;/a&gt; A where clause contains a nested quantification over lifetimes &lt;a href=&quot;https://doc.rust-lang.org/error_codes/E0316.html&quot;&gt;E0316&lt;/a&gt;&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10288&quot;&gt;#10288&lt;/a&gt; Multiple types were used as bounds for a closure or trait object &lt;a href=&quot;https://doc.rust-lang.org/error_codes/E0225.html&quot;&gt;E0225&lt;/a&gt;&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10272&quot;&gt;#10272&lt;/a&gt; Manual implementation of a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Fn*&lt;/code&gt; trait &lt;a href=&quot;https://doc.rust-lang.org/error_codes/E0183.html&quot;&gt;E0183&lt;/a&gt;&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10272&quot;&gt;#10272&lt;/a&gt; The precise format of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Fn&lt;/code&gt;-family traits’ type parameters is subject to change &lt;a href=&quot;https://doc.rust-lang.org/error_codes/E0658.html&quot;&gt;E0658&lt;/a&gt;&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10272&quot;&gt;#10272&lt;/a&gt; Parenthetical notation is only stable when used with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Fn&lt;/code&gt;-family traits &lt;a href=&quot;https://doc.rust-lang.org/error_codes/E0658.html&quot;&gt;E0658&lt;/a&gt;&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10339&quot;&gt;#10339&lt;/a&gt; Unwrap &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Ok(...)?&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Some(...)?&lt;/code&gt; in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Inline function&lt;/code&gt; refactoring&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;performance-improvements&quot;&gt;Performance Improvements&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10331&quot;&gt;#10331&lt;/a&gt; Don’t expand special macros (e.g., &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;vec!&lt;/code&gt;) in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Liveness analysis&lt;/code&gt; inspection&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;fixes&quot;&gt;Fixes&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10317&quot;&gt;#10317&lt;/a&gt; Provide proper completion/annotation for crate names and versions in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Cargo.toml&lt;/code&gt; when &lt;a href=&quot;https://doc.rust-lang.org/cargo/reference/registries.html#registry-protocols&quot;&gt;sparse&lt;/a&gt; protocol is used&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10338&quot;&gt;#10338&lt;/a&gt; Fix handling async function in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Inline function&lt;/code&gt; refactoring&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10308&quot;&gt;#10308&lt;/a&gt; Fix handling paths to associated constants in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Implement members&lt;/code&gt; intention&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Full set of changes can be found &lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/milestone/102?closed=1&quot;&gt;here&lt;/a&gt;&lt;/p&gt;

</description>
        <pubDate>Mon, 24 Apr 2023 10:00:00 +0000</pubDate>
        <link>https://intellij-rust.github.io/2023/04/24/changelog-193.html</link>
        <guid isPermaLink="true">https://intellij-rust.github.io/2023/04/24/changelog-193.html</guid>
        
        
      </item>
    
      <item>
        <title>IntelliJ Rust Changelog #192</title>
        <description>&lt;h2 id=&quot;new-features&quot;&gt;New Features&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Detect new compiler errors:&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10285&quot;&gt;#10285&lt;/a&gt; More than one explicit lifetime bound was used on a trait object &lt;a href=&quot;https://doc.rust-lang.org/error_codes/E0226.html&quot;&gt;E0226&lt;/a&gt;&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10283&quot;&gt;#10283&lt;/a&gt; A union expression does not have exactly one field &lt;a href=&quot;https://doc.rust-lang.org/error_codes/E0784.html&quot;&gt;E0784&lt;/a&gt;&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10268&quot;&gt;#10268&lt;/a&gt; Unsafe code was used outside an unsafe function or block &lt;a href=&quot;https://doc.rust-lang.org/error_codes/E0133.html&quot;&gt;E0133&lt;/a&gt; when accessing union field outside unsafe block&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/9375&quot;&gt;#9375&lt;/a&gt; Warn about unused label &lt;a href=&quot;https://doc.rust-lang.org/rustc/lints/listing/warn-by-default.html#unused-labels&quot;&gt;unused_labels&lt;/a&gt;&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10281&quot;&gt;#10281&lt;/a&gt; Support &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Clean&lt;/code&gt; (CLion only) and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Rebuild ...&lt;/code&gt; actions which are
equivalent to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;cargo clean&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;cargo clean &amp;amp;&amp;amp; cargo build&lt;/code&gt; respectively.
You can access then from the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Build&lt;/code&gt; menu&lt;/p&gt;

    &lt;p&gt;&lt;img src=&quot;/assets/posts/changelog-192/clean-rebuild.png&quot; width=&quot;600px&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;fixes&quot;&gt;Fixes&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10301&quot;&gt;#10301&lt;/a&gt; Fix expansion of macros that contain reserved keywords (e.g. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;do&lt;/code&gt;) in their body&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10295&quot;&gt;#10295&lt;/a&gt; Don’t suggest a project model reloading after creating a file in a nested dir in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;tests&lt;/code&gt; dir&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10266&quot;&gt;#10266&lt;/a&gt; Fix code analysis inside functions under &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sqlx::test&lt;/code&gt; macro&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10265&quot;&gt;#10265&lt;/a&gt; Don’t show “Conditionally disabled code” in the &lt;a href=&quot;https://www.jetbrains.com/help/clion/problems-tool-window.html&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Problems&lt;/code&gt;&lt;/a&gt; view&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;internal-improvements&quot;&gt;Internal Improvements&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10286&quot;&gt;#10286&lt;/a&gt; Initial implementation of &lt;a href=&quot;https://rustc-dev-guide.rust-lang.org/mir/index.html&quot;&gt;MIR&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10277&quot;&gt;#10277&lt;/a&gt; Set up tests for an intention action inside an attribute macro&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Full set of changes can be found &lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/milestone/101?closed=1&quot;&gt;here&lt;/a&gt;&lt;/p&gt;

</description>
        <pubDate>Tue, 11 Apr 2023 10:00:00 +0000</pubDate>
        <link>https://intellij-rust.github.io/2023/04/11/changelog-192.html</link>
        <guid isPermaLink="true">https://intellij-rust.github.io/2023/04/11/changelog-192.html</guid>
        
        
      </item>
    
      <item>
        <title>IntelliJ Rust Changelog #191</title>
        <description>&lt;h2 id=&quot;new-features&quot;&gt;New Features&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10059&quot;&gt;#10059&lt;/a&gt; Show the contents of references and pointers when debugging with LLDB. For example, now the content of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;amp;Vec&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;*const Vec&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;*mut Vec&lt;/code&gt; is rendered, in addition to previously supported &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Vec&lt;/code&gt;.&lt;/p&gt;

    &lt;p&gt;&lt;img src=&quot;/assets/posts/changelog-191/lldb-pointer-deref.png&quot; width=&quot;700px&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Attribute procedural macro improvements:&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10236&quot;&gt;#10236&lt;/a&gt; Show parameter hints inside attribute procedural macros&lt;/p&gt;

        &lt;p&gt;&lt;img src=&quot;/assets/posts/changelog-191/parameter-hints-in-attr-proc-macro.png&quot; width=&quot;400px&quot; /&gt;&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10230&quot;&gt;#10230&lt;/a&gt; Show hints for chained method calls inside attribute procedural macros&lt;/p&gt;

        &lt;p&gt;&lt;img src=&quot;/assets/posts/changelog-191/chain-hints-in-attr-proc-macro.png&quot; width=&quot;500px&quot; /&gt;&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10182&quot;&gt;#10182&lt;/a&gt; Make &lt;a href=&quot;https://plugins.jetbrains.com/plugin/8182-rust/docs/rust-code-generation.html#intention-actions&quot;&gt;intentions&lt;/a&gt; work inside an attribute macro expansion&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;

    &lt;p&gt;Note that &lt;a href=&quot;https://doc.rust-lang.org/reference/procedural-macros.html#attribute-macros&quot;&gt;attribute&lt;/a&gt; procedural macro expansion is disabled by default. If you want to try it out, enable &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;org.rust.macros.proc.attr&lt;/code&gt; &lt;a href=&quot;https://plugins.jetbrains.com/plugin/8182-rust/docs/rust-faq.html#experimental-features&quot;&gt;experimental feature&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10200&quot;&gt;#10200&lt;/a&gt; Highlight that an &lt;a href=&quot;https://doc.rust-lang.org/reference/expressions/underscore-expr.html&quot;&gt;underscore expression (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;_&lt;/code&gt;)&lt;/a&gt; can only be used in the left-hand side of an assignment&lt;/p&gt;

    &lt;p&gt;&lt;img src=&quot;/assets/posts/changelog-191/underscore-expr.png&quot; width=&quot;600px&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Detect new compiler errors:&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10193&quot;&gt;#10193&lt;/a&gt; Annotate mismatched members in trait implementation (&lt;a href=&quot;https://doc.rust-lang.org/error_codes/E0323.html&quot;&gt;E0323&lt;/a&gt;, &lt;a href=&quot;https://doc.rust-lang.org/error_codes/E0324.html&quot;&gt;E0324&lt;/a&gt;, &lt;a href=&quot;https://doc.rust-lang.org/error_codes/E0325.html&quot;&gt;E0325&lt;/a&gt;)&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10179&quot;&gt;#10179&lt;/a&gt; Annotate when an inherent implementation was written on a dyn auto trait (&lt;a href=&quot;https://doc.rust-lang.org/error_codes/E0785.html&quot;&gt;E0785&lt;/a&gt;)&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10176&quot;&gt;#10176&lt;/a&gt; Detect if the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Copy&lt;/code&gt; trait was implemented on a type that is neither a struct nor an enum  (&lt;a href=&quot;https://doc.rust-lang.org/error_codes/E0206.html&quot;&gt;E0206&lt;/a&gt;)&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;fixes&quot;&gt;Fixes&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10260&quot;&gt;#10260&lt;/a&gt; Fix the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Invert if condition&lt;/code&gt; intention when there is another &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;if&lt;/code&gt; after the current one&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10215&quot;&gt;#10215&lt;/a&gt; Fix false-positive detection of unreachable code with &lt;a href=&quot;https://rust-lang.github.io/rfcs/3137-let-else.html&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;let else&lt;/code&gt;&lt;/a&gt; syntax (by &lt;a href=&quot;https://github.com/White-Green&quot;&gt;@White-Green&lt;/a&gt;)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10196&quot;&gt;#10196&lt;/a&gt; Don’t run some inspections on Rust files outside a valid Cargo project to avoid expected false-positive errors&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10096&quot;&gt;#10096&lt;/a&gt; Improve support for multiple attribute macro calls on a single item&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/7910&quot;&gt;#7910&lt;/a&gt; Fix &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Before launch&lt;/code&gt; configurations for Cargo command configurations&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;internal-improvements&quot;&gt;Internal Improvements&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10231&quot;&gt;#10231&lt;/a&gt; Provide plugin sources along with the plugin archive to simplify plugin development with IntelliJ Rust plugin as a dependency&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10221&quot;&gt;#10221&lt;/a&gt; Make 2023.1 the default platform for development&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10218&quot;&gt;#10218&lt;/a&gt; Now all macros are expanded by default in all &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;RsTestBase&lt;/code&gt;-based tests and the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;@ExpandMacros&lt;/code&gt; annotation is not needed there anymore&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/pull/10229&quot;&gt;#10229&lt;/a&gt; Provide &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;RsDiagnostic&lt;/code&gt;-based API for quick-fixes with arbitrary ranges&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Full set of changes can be found &lt;a href=&quot;https://github.com/intellij-rust/intellij-rust/milestone/100?closed=1&quot;&gt;here&lt;/a&gt;&lt;/p&gt;

</description>
        <pubDate>Mon, 27 Mar 2023 10:00:00 +0000</pubDate>
        <link>https://intellij-rust.github.io/2023/03/27/changelog-191.html</link>
        <guid isPermaLink="true">https://intellij-rust.github.io/2023/03/27/changelog-191.html</guid>
        
        
      </item>
    
  </channel>
</rss>
