mirror of
https://github.com/rust-lang/rust.git
synced 2025-05-05 14:37:37 +00:00
![]() fix: Insert spaces when inlining a function defined in a macro. (partially) fixes #12860. This PR (only) addresses the whitespace issue when inlining functions defined in macros. Additionally, the indentation/spacing is not ideal, but works, e.g. ```rs macro_rules! define_function { () => { fn test_function_macro() { if let Some(3) = 3i32.checked_add(0) { println!("3 + 0 == 3"); } } }; } define_function!(); fn main() { test_function_macro(); } // previously became // ... fn main() { ifletSome(3)=3i32.checked_add(0){println!("3 + 0 == 3");}; } // now becomes // ... fn main() { if let Some(3) = 3i32.checked_add(0){ println!("3 + 0 == 3"); }; } ``` The `self` -> `this` problem[^this] is (probably?) a separate problem that I am also looking into. [^this]: As mentioned in [my comment on the above issue](https://github.com/rust-lang/rust-analyzer/issues/12860#issuecomment-1193231766), inlining a method defined in a macro does not properly replace `self` with the new local `this`. |
||
---|---|---|
.. | ||
base-db | ||
cfg | ||
flycheck | ||
hir | ||
hir-def | ||
hir-expand | ||
hir-ty | ||
ide | ||
ide-assists | ||
ide-completion | ||
ide-db | ||
ide-diagnostics | ||
ide-ssr | ||
limit | ||
mbe | ||
parser | ||
paths | ||
proc-macro-api | ||
proc-macro-srv | ||
proc-macro-srv-cli | ||
proc-macro-test | ||
profile | ||
project-model | ||
rust-analyzer | ||
sourcegen | ||
stdx | ||
syntax | ||
test-utils | ||
text-edit | ||
toolchain | ||
tt | ||
vfs | ||
vfs-notify |