diff options
| author | Chayim Refael Friedman <chayimfr@gmail.com> | 2025-01-07 08:00:18 +0200 |
|---|---|---|
| committer | Chayim Refael Friedman <chayimfr@gmail.com> | 2025-01-09 05:43:08 +0200 |
| commit | 89a72c78fc60106b8eeba707dd82cf6eaafe41ef (patch) | |
| tree | f8a0c9c9091dbfecdd9bfd8477b723fd7f3ef547 /src/tools/rust-analyzer/crates/ide-diagnostics | |
| parent | d0db5035156882fbe12f32d5b8f09e22b7bb5be5 (diff) | |
| download | rust-89a72c78fc60106b8eeba707dd82cf6eaafe41ef.tar.gz rust-89a72c78fc60106b8eeba707dd82cf6eaafe41ef.zip | |
Make edition per-token, not per-file
More correctly, *also* per-token. Because as it turns out, while the top-level edition affects parsing (I think), the per-token edition affects escaping of identifiers/keywords.
Diffstat (limited to 'src/tools/rust-analyzer/crates/ide-diagnostics')
| -rw-r--r-- | src/tools/rust-analyzer/crates/ide-diagnostics/src/handlers/no_such_field.rs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/tools/rust-analyzer/crates/ide-diagnostics/src/handlers/no_such_field.rs b/src/tools/rust-analyzer/crates/ide-diagnostics/src/handlers/no_such_field.rs index e5d871975b6..0f126a1a656 100644 --- a/src/tools/rust-analyzer/crates/ide-diagnostics/src/handlers/no_such_field.rs +++ b/src/tools/rust-analyzer/crates/ide-diagnostics/src/handlers/no_such_field.rs @@ -399,4 +399,38 @@ fn f(s@m::Struct { "#, ) } + + #[test] + fn editions_between_macros() { + check_diagnostics( + r#" +//- /edition2015.rs crate:edition2015 edition:2015 +#[macro_export] +macro_rules! pass_expr_thorough { + ($e:expr) => { $e }; +} + +//- /edition2018.rs crate:edition2018 deps:edition2015 edition:2018 +async fn bar() {} +async fn foo() { + edition2015::pass_expr_thorough!(bar().await); +} + "#, + ); + check_diagnostics( + r#" +//- /edition2018.rs crate:edition2018 edition:2018 +pub async fn bar() {} +#[macro_export] +macro_rules! make_await { + () => { async { $crate::bar().await }; }; +} + +//- /edition2015.rs crate:edition2015 deps:edition2018 edition:2015 +fn foo() { + edition2018::make_await!(); +} + "#, + ); + } } |
