Skip to content

Changelog 199 #187

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
Jul 24, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
123 changes: 123 additions & 0 deletions _posts/2023-07-24-changelog-199.markdown
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
---
layout: post
title: "IntelliJ Rust Changelog #199"
date: 2023-07-24 13:00:00 +0300
---


## New Features

* [#10648] Highlight `Unresolved Reference` error for type-independent paths

<img src="/assets/posts/changelog-199/unresolved_reference.png" width="700px"/>

* Completion improvements:

* [#10689] Complete chained iterator methods

{% include gif-img.html path="/assets/posts/changelog-199/chained_iterators" w="600px" %}

* [#10647] Complete Cargo [instructions](https://doc.rust-lang.org/cargo/reference/build-scripts.html#outputs-of-the-build-script) in build scripts

{% include gif-img.html path="/assets/posts/changelog-199/cargo_instructions" w="600px" %}

* [#10651] Show the value of constants in the completion list

<img src="/assets/posts/changelog-199/constant-values.png" width="600px"/>

* [#10692] Provide `fn` keyword completion in the type context

* [#10691] Provide completion for `fn main() { ... }`

* Improved error messages and provide new quick fixes:

* [#10684] When trying to use a prefix/postfix increment like `i++`

* [#10661] When incorrectly using `impl` or `dyn` in type parameters bounds

* [#10681] When trying to inherit one struct from another - a helpful reminder that Rust doesn't support inheritance like `struct Foo: Bar {}`

* [#10664] Add a new inspection for when the entry point of the program is marked as `async` ([E0752](https://doc.rust-lang.org/error_codes/E0752.html))

* [#10592] Add better support for the [`Path statements`](https://doc.rust-lang.org/rustc/lints/listing/warn-by-default.html#path-statements) inspection and enable it by default

* [#10650] Add `iter` alias for `for` [live template](https://plugins.jetbrains.com/plugin/8182-rust/docs/rust-code-generation.html#live-templates)

* [#10436] Now the `Trait objects must include the dyn keyword` inspection raises an error in the 2021 edition, and a warning on 2018 (by [@DeoTimeTheGithubUser])

## Fixes

* [#10671] Fix bugs related to grammar error detection in Rust code using new API from [Grazie](https://plugins.jetbrains.com/plugin/12175-grazie-lite) plugin. Note, grammar error detection is disabled by default for now. You can enable it for Rust in `Scope` tab of `Preferences | Editor | Natural Languages | Grammar and Style` settings

* Completion fixes:

* [#10679] Show completion auto-popup when literal suffix is typed

* [#10663] Don't add new line by smart enter action after `;` completion

* [#10682] Complete `macro` live template only in item context

* [#10680] Don't complete integer suffixes for literals in scientific notation

* [#10674] Fix dependency keys completion when another key exists before

* Macro expansion improvements:

* [#10678] Increase proc macro expansion timeout to 20 seconds

* [#10678] Improve error message in the case of too large macro expansion

* [#10675] Improve error message for a non-expanded macro inside an impl block

* [#10653] Use [E0403](https://doc.rust-lang.org/error_codes/E0403.html) instead of deprecated [E0263](https://doc.rust-lang.org/error_codes/E0263.html)

* [#10676] Fix name resolution inside a nested block under a `cfg` attribute

* [#10645] Fix live templates suggestion in loop labels and other positions

* [#10669] Fix type inference in case of struct pattern matching

* [#10688] Match negative numeric literals with `$l:literal` macro fragment spec

* [#10428] Suggest `Surround with unsafe block` quick fix instead of `Add unsafe to function` for an unsafe call in some cases (e.g. inside a test function, main function, etc.) (by [@DeoTimeTheGithubUser])

## Internal Improvements

* [#10670] Implement initial support for GDB debugging outside CLion. Right now it's disabled by default and works only on Linux

* [#10668], [#10686] Extract hardcoded strings into a message bundle, allowing its future internationalization

Full set of changes can be found [here](https://github.com/intellij-rust/intellij-rust/milestone/108?closed=1)

[@DeoTimeTheGithubUser]: https://github.com/DeoTimeTheGithubUser

[#10428]: https://github.com/intellij-rust/intellij-rust/pull/10428
[#10436]: https://github.com/intellij-rust/intellij-rust/pull/10436
[#10592]: https://github.com/intellij-rust/intellij-rust/pull/10592
[#10645]: https://github.com/intellij-rust/intellij-rust/pull/10645
[#10647]: https://github.com/intellij-rust/intellij-rust/pull/10647
[#10648]: https://github.com/intellij-rust/intellij-rust/pull/10648
[#10650]: https://github.com/intellij-rust/intellij-rust/pull/10650
[#10651]: https://github.com/intellij-rust/intellij-rust/pull/10651
[#10653]: https://github.com/intellij-rust/intellij-rust/pull/10653
[#10661]: https://github.com/intellij-rust/intellij-rust/pull/10661
[#10663]: https://github.com/intellij-rust/intellij-rust/pull/10663
[#10664]: https://github.com/intellij-rust/intellij-rust/pull/10664
[#10668]: https://github.com/intellij-rust/intellij-rust/pull/10668
[#10669]: https://github.com/intellij-rust/intellij-rust/pull/10669
[#10670]: https://github.com/intellij-rust/intellij-rust/pull/10670
[#10671]: https://github.com/intellij-rust/intellij-rust/pull/10671
[#10674]: https://github.com/intellij-rust/intellij-rust/pull/10674
[#10675]: https://github.com/intellij-rust/intellij-rust/pull/10675
[#10676]: https://github.com/intellij-rust/intellij-rust/pull/10676
[#10678]: https://github.com/intellij-rust/intellij-rust/pull/10678
[#10679]: https://github.com/intellij-rust/intellij-rust/pull/10679
[#10680]: https://github.com/intellij-rust/intellij-rust/pull/10680
[#10681]: https://github.com/intellij-rust/intellij-rust/pull/10681
[#10682]: https://github.com/intellij-rust/intellij-rust/pull/10682
[#10684]: https://github.com/intellij-rust/intellij-rust/pull/10684
[#10686]: https://github.com/intellij-rust/intellij-rust/pull/10686
[#10688]: https://github.com/intellij-rust/intellij-rust/pull/10688
[#10689]: https://github.com/intellij-rust/intellij-rust/pull/10689
[#10691]: https://github.com/intellij-rust/intellij-rust/pull/10691
[#10692]: https://github.com/intellij-rust/intellij-rust/pull/10692
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/posts/changelog-199/chained_iterators.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/posts/changelog-199/chained_iterators.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/posts/changelog-199/constant-values.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.