Changelog #119

Commit: 5fae65d
Release: 2022-03-07


Become a sponsor: On OpenCollective or GitHub Sponsors.

A Message from the Team

We of the rust-analyzer team never took the opportunity to introduce ourselves, but we want to make an exception because of the current events.

One of the early rust-analyzer contributors is currently in Kyiv, amidst falling missiles and artillery shells.

Our friend did not ask for this, did not ask to be liberated or saved by the Russian Army. Neither did the other countless Ukrainians who are today at risk. Their fault is having been born in a country which a bully decided shouldn’t exist.

In Ukraine, Putin’s army is committing war crimes, while those at home have no idea because independent journalism has been outlawed.

So please, speak up. If you have friends or family in Russia, call and tell them what millions of people are going through. And consider making a donation or going to a protest.

Thank you and Slava Ukraini!


The latest Visual Studio Code version (1.65, released on March 3) has native support for inlay hints. We have been using a custom implementation of that, but would like to switch to the upstream one in #11445, planned to be merged next week. This means that the next release will require VS Code 1.65.

Unfortunately, the upstream implementation brings some regressions. Specifically, the caret behaves differently when passing over the hint, and the styling is not necessarily better. In addition, Code only updates the hints about four times per second while typing, causing them to feel more sluggish.

New Features

  • #11620 support locals with multiple declaration sites:

    156833306 6bdb97ae 1fb3 4fd0 9f7d 1783c54c23a5
  • #11598 parse destructuring assignments.


  • #11609 add another case to the syntax fixup code.

  • #11140 preserve order of generic args.

  • #11616 fix semantic highlighting breaking for lifetimes in macros.

  • #11595 lower string literal values.

  • #11622 show variadic args in hover function signature.

  • #11623 add type variable table to InferenceTableSnapshot.

  • #11629 fix macro-calls expanding to items in if/while conditions.

  • #11630 recognize Self as a proper keyword.

  • #11613 add abort to safe intrinsics list.

Internal Improvements

  • #11593 build release binaries on Ubuntu 18.04.

  • #11610 add currently failing test for #11242.

  • #11574 slightly refactor TextEdit.

  • #11631 refactor syntax_highlighting.

  • #11632 bring back syntax highlighting in test data.

  • #11639 re-arrange ide_db modules.

  • #11633 automatically change text color in logo based on dark mode.