Yuri Astrakhan
1d59c7b667
Remove non-needed clones
...
I am not certain if this will improve performance,
but it seems having a .clone() without any need should be removed.
This was done with clippy, and manually reviewed:
```
cargo clippy --fix -- -A clippy::all -D clippy::redundant_clone
```
2022-12-23 02:20:03 -05:00
bors
a06525517b
Auto merge of #13820 - Veykril:or-pat-bm-fix, r=Veykril
...
Fix binding mode hints always adding parentheses to or-patterns
2022-12-22 23:02:19 +00:00
bors
b48a1ae004
Auto merge of #13822 - WaffleLapkin:famous, r=Veykril
...
internal: Pass `FamousDefs` around in inlay hints
Bind after at go brrrrr
2022-12-22 11:25:54 +00:00
Maybe Waffle
ef4c8167e8
Pass FamousDefs
around in inlay hints
2022-12-22 11:00:25 +00:00
bors
eb3963b22e
Auto merge of #13817 - WaffleLapkin:hide_adjustment_hints_outside_of_unsafe, r=Veykril
...
feat: Add an option to hide adjustment hints outside of `unsafe` blocks and functions
As the title suggests: this PR adds an option (namely `rust-analyzer.inlayHints.expressionAdjustmentHints.hideOutsideUnsafe`) that allows to hide adjustment hints outside of `unsafe` blocks and functions:
![2022-12-21_23-11](https://user-images.githubusercontent.com/38225716/208986376-d607de62-8290-4e16-b7fe-15b762dc5f60.png )
Requested by `@BoxyUwU` <3
2022-12-22 09:37:00 +00:00
Lukas Wirth
b9341e2fe6
Fix binding mode hints always adding parentheses to or-patterns
2022-12-22 10:35:35 +01:00
Waffle Maybe
1038db5f1d
Apply suggestions from code review
...
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2022-12-21 23:00:12 +00:00
bors
271f7b44d3
Auto merge of #13699 - HKalbasi:inlaylink, r=Veykril
...
Implement location link for type inlay hints
fix #11701
This actually doesn't work due a problem in vscode: https://github.com/microsoft/vscode/issues/167564
2022-12-21 21:43:38 +00:00
bors
113f17be6e
Auto merge of #13818 - Veykril:layout, r=Veykril
...
Simplify
2022-12-21 20:38:57 +00:00
Maybe Waffle
608dc492ea
Move is_inside_unsafe
to Semantics
impl
2022-12-21 20:36:05 +00:00
Lukas Wirth
8f8200eb14
Simplify
2022-12-21 21:34:01 +01:00
bors
c2840c809a
Auto merge of #13814 - Veykril:layout, r=Veykril
...
Calculate the TargetDataLayout correctly for the selected target
This fails the tests still since those don't call into rustc yet
2022-12-21 19:38:51 +00:00
Lukas Wirth
a694c342fa
Fix tests not using appropriate target data
2022-12-21 20:23:43 +01:00
Maybe Waffle
3bfe7040e8
Add an option to hide adjustment hints outside of unsafe blocks
2022-12-21 19:20:42 +00:00
bors
3c00b19b0a
Auto merge of #13771 - noritada:feature/release-notes-on-github-releases, r=lnicola
...
Add xtask for publishing release notes in Markdown on GitHub Releases from a changelog in AsciiDoc
This PR provides `xtask publish-release-notes` to convert a changelog written in AsciiDoc to Markdown and update descriptions (release notes) of a corresponding entry on GitHub Releases.
This AsciiDoc parser is not capable of processing every AsciiDoc document, but I have surveyed a set of existing changelog entries and have confirmed that the following notations used can be converted properly. In the future, I would like to improve the parser to accept any AsciiDoc. Alternatively, the parser could be moved out of the project.
Your feedback would be appreciated!
Closes #13191
### Supported AsciiDoc syntax
many occurrences
- [x] documentation header
- [x] section header
- [x] `*`-prefixed basic unordered single level list item
- [x] list continuation using `+`
- [x] block image macro `image::...[]` with empty alt
- [x] block image macro `image::...[]` with non-empty alt
- [x] block video marco `video::...[]` with `options=loop`
- [x] inline hard line break `+`
- [x] inline custom macro `commit:...[]`
- [x] inline custom macro `release:...[]`
- [x] inline custom macro `pr:...[]`
- [x] inline unconstrained bold text `**...**`
- [x] inline constrained monospace ``` `...` ```
[thisweek/_posts/2019-07-24-changelog-0.adoc](https://github.com/rust-analyzer/rust-analyzer.github.io/tree/src/thisweek/_posts#:~:text=2019%2D07%2D24%2Dchangelog%2D0.adoc )
- [x] paragraphs
- [x] mixture of `*` and `-` for unordered list item prefix
- [x] inline external link `https://...[] `
[thisweek/_posts/2020-01-13-changelog-7.adoc](https://github.com/rust-analyzer/rust-analyzer.github.io/tree/src/thisweek/_posts#:~:text=2020%2D01%2D13%2Dchangelog%2D7.adoc )
- [x] list item with multiline principal text with indent
- [x] inline image macro `image:...[]`
[thisweek/_posts/2020-03-02-changelog-14.adoc](https://github.com/rust-analyzer/rust-analyzer.github.io/blob/src/thisweek/_posts/2020-03-02-changelog-14.adoc )
- [x] empty lines between list items
- [x] nested unordered list item with `**`
- [x] inline macro `kbd:[...]`
[thisweek/_posts/2020-03-16-changelog-16.adoc](https://github.com/rust-analyzer/rust-analyzer.github.io/blob/src/thisweek/_posts/2020-03-16-changelog-16.adoc )
- [x] `[source]`-prefixed listing
[thisweek/_posts/2020-04-06-changelog-19.adoc](https://github.com/rust-analyzer/rust-analyzer.github.io/blob/src/thisweek/_posts/2020-04-06-changelog-19.adoc )
- [x] list item with multiline principal text without indent
- [x] `[source,lang]`-prefixed listing
- [x] `.`-prefiexed ordered list item
- [x] list item immediately after list continuation paragraph without an empty line in between
[thisweek/_posts/2020-04-20-changelog-21.adoc](https://github.com/rust-analyzer/rust-analyzer.github.io/blob/src/thisweek/_posts/2020-04-20-changelog-21.adoc )
- [x] title line for block image
[thisweek/_posts/2020-12-21-changelog-56.adoc](https://github.com/rust-analyzer/rust-analyzer.github.io/blob/src/thisweek/_posts/2020-12-21-changelog-56.adoc )
- [x] block video `video::...[]` with `options="autoplay,loop"`
2022-12-21 18:37:10 +00:00
Maybe Waffle
4748357045
Drive-by cleanup: fully qualify ast::Expr
in hir
2022-12-21 18:17:42 +00:00
hkalbasi
e1aa73ef40
Disable inlay hint location links on vscode < 1.76
2022-12-21 18:54:49 +03:30
Lukas Wirth
33591cd3f4
Calculate the TargetDataLayout correctly for the selected target
2022-12-21 15:11:24 +01:00
hkalbasi
801a2231bf
Implement location link for type inlay hints
2022-12-21 02:18:02 +03:30
bors
761b127c47
Auto merge of #13806 - WaffleLapkin:typed_blåhaj, r=Veykril
...
fix: Skip adjustment hints if the adjustment is identity (`T` -> `T`)
Supersedes https://github.com/rust-lang/rust-analyzer/pull/13765
2022-12-20 21:11:38 +00:00
Maybe Waffle
874ff2bc9d
Skip adjustment hints if the adjustment doesn't adjust
2022-12-20 20:04:10 +00:00
Maybe Waffle
91a89efcf2
Save source & target types in hir
's expr_adjustments
2022-12-20 19:33:27 +00:00
bors
927d56a67d
Auto merge of #13764 - WaffleLapkin:badassexprs, r=Veykril
...
fix: Correctly check for parentheses redundancy in `remove_parentheses` assist
This is quite a bunch of code and some hacks, but I _think_ this time it's correct.
I've added a lot of tests, most of which fail with the assist impl from #13733 :')
2022-12-20 18:11:54 +00:00
bors
5c8f00f835
Auto merge of #13805 - ntBre:master, r=jonas-schievink
...
Complete enum variants without parens when snippets are disabled
This handles the portion of #13767 that bothered me, but I can try to work on the other parts we discussed if needed.
2022-12-20 17:58:41 +00:00
Brent Westbrook
694ae77bf6
pass snippet_cap
to format_literal_label
, return early if None
2022-12-20 11:27:19 -05:00
Brent Westbrook
1116cc93ec
return immediately from render_tuple_lit
if snippet_cap
is None
...
partially addresses #13767
2022-12-20 11:07:37 -05:00
Maybe Waffle
babd4c7f7d
Don't panic in Expr::needs_parens_in
2022-12-20 15:16:26 +00:00
bors
9dfb9df4c5
Auto merge of #13804 - WaffleLapkin:inlay_hint_mods, r=Veykril
...
Split inlay hints into modules per hint type
I think this makes the code a lot easier to maintain.
2022-12-20 14:18:49 +00:00
Maybe Waffle
046a5679e3
Add docs to make tidy tests happy :')
2022-12-20 13:30:53 +00:00
Maybe Waffle
1c8bcf0d4e
Move inlay hints tests into implementation modules
2022-12-20 13:05:18 +00:00
Maybe Waffle
191cfba9d2
Split inlay hints into modules
2022-12-20 12:58:57 +00:00
bors
ccbf8fef9b
Auto merge of #13800 - lowr:fix/mbe-expr-backwards-compat, r=Veykril
...
fix: don't let mbe expr fragments match let exprs and inline consts
Fixes #11729
`expr` fragment in mbe should not match let expressions and inline consts for backwards compatibility. See rust-lang/rust#86730 for details.
This patch is porting [this logic in rustc](f0c4da4998/compiler/rustc_parse/src/parser/nonterminal.rs (L28-L34)
) (which is called [here in rustc's mbe engine](f0c4da4998/compiler/rustc_expand/src/mbe/macro_parser.rs (L576)
)) to our mbe engine.
2022-12-20 12:01:30 +00:00
Ryo Yoshida
e027ac0fbf
fix: don't let mbe expr fragments match let exprs and inline consts
2022-12-20 20:31:47 +09:00
bors
ffedfc63a1
Auto merge of #13795 - jonas-schievink:fix-rustfmt-edition-in-path-deps, r=jonas-schievink
...
fix: Use the correct edition when formatting code in path dependencies
Fixes https://github.com/rust-lang/rust-analyzer/issues/13790
Don't go through the Cargo workspace info, since that doesn't contain path dependencies. Instead, query the crate graph via `Analysis::crate_edition`.
2022-12-19 16:57:12 +00:00
Jonas Schievink
5706910add
Use the correct edition when formatting path deps
2022-12-19 17:53:56 +01:00
bors
1f74b1b04e
Auto merge of #13794 - jonas-schievink:reset-step-limit-after-bump, r=jonas-schievink
...
fix: fix "parser seems stuck" panic when parsing colossal files
The parser step count is incremented every time the parser inspects a token. It's purpose is to ensure the parser doesn't get stuck in infinite loops. But since `self.pos` grows monotonically when parsing source code, it gives a better idea for whether the parser is stuck or not: if `self.pos` is changed, we know that the parser cannot be stuck, so it is safe to reset the step count to 0. This makes the limit check scale with the size of the file, and so should fix https://github.com/rust-lang/rust-analyzer/issues/13788 .
2022-12-19 16:07:40 +00:00
Jonas Schievink
c110481dd4
Reset parser step count when bumping
2022-12-19 16:27:00 +01:00
bors
9ed1829f1f
Auto merge of #13792 - Veykril:flycheck, r=Veykril
...
Add a command to clear flycheck diagnostics
And document the flycheck notifications
2022-12-17 22:45:08 +00:00
Lukas Wirth
cf8d89e46b
Add a command to clear flycheck diagnostics
2022-12-17 23:43:26 +01:00
Lukas Wirth
d8ddde27f9
Make cancelFlycheck request a notification
2022-12-17 23:29:31 +01:00
Lukas Wirth
cdfe98fe94
Make manual flycheck runs work when checkOnSave is disabled
2022-12-17 23:26:54 +01:00
rami3l
cfa914958c
refactor: use generate_trait_impl_text_intransitive
for From
-like traits
2022-12-17 22:59:30 +08:00
bors
e0aa5afd7b
Auto merge of #13785 - Veykril:run-flycheck, r=Veykril
...
Add command for manually running flychecks
Closes https://github.com/rust-lang/rust-analyzer/issues/13125
2022-12-16 22:06:35 +00:00
Lukas Wirth
a04feb915a
Add command for manually running flychecks
2022-12-16 22:47:19 +01:00
bors
19c2ede549
Auto merge of #13784 - Veykril:bm-hints, r=Veykril
...
Deduplicate inserted parentheses in binding mode hints
2022-12-16 20:51:20 +00:00
Lukas Wirth
ba3e3282da
Deduplicate inserted parentheses in binding mode hints
2022-12-16 21:17:10 +01:00
bors
8f6d0cd1b0
Auto merge of #13783 - Veykril:bm-hints, r=Veykril
...
Add parentheses for binding mode hints when they attach to an Or-pattern
2022-12-16 19:53:06 +00:00
Lukas Wirth
b6c2bb21ab
Add parentheses for binding mode hints when they attach to an Or-pattern
2022-12-16 20:52:31 +01:00
bors
4909d4fbdb
Auto merge of #13777 - dzvon:fix-13776, r=jonas-schievink
...
fix: add a check for `if` token in patterns parser
Closes #13776
2022-12-16 03:23:38 +00:00
Dezhi Wu
258e532434
docs: update the comment and add a test to half_open_range_pat
2022-12-16 10:44:25 +08:00