Commit graph

23746 commits

Author SHA1 Message Date
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
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
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
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
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
Noritada Kobayashi fccc094712 Make minor improvements and cleanups 2022-12-15 14:52:23 +09:00
Noritada Kobayashi 0c6fd4dbe5 Split the input/output data of the conversion from the test code to the respective files 2022-12-15 14:25:59 +09:00
Dezhi Wu 6a295fcd3b fix: add a check for if token in patterns parser
Closes #13776
2022-12-15 12:46:02 +08:00
bors 95671d53ea Auto merge of #13772 - noritada:minor/set-experimental-attr-to-changelog-draft, r=lnicola
minor: Set the `experimental` AsciiDoc document attribute to generated draft changelog

This PR sets the `experimental` AsciiDoc document attribute to generated draft changelog.

That attribute is required by the keyboard macro (`kbd:[...]`).
This change of the draft will prevent issues like https://github.com/rust-analyzer/rust-analyzer.github.io/pull/191 .
2022-12-14 14:54:19 +00:00
bors 16de9a7130 Auto merge of #13774 - lowr:fix/no-infer-vars-in-inference-result, r=Veykril
fix: resolve all inference vars in `InferenceResult::assoc_resolutions`

I think this fixes '#13773, ~but still haven't found repro. I'll try finding one so we can have a regression test~.

We should resolve every inference variable in `InferenceResult` after inference is done. We started recording `Substitution`s for each resolved associated items in #13725, but failed to do so which causes crash when analyzing source in IDE layer.
2022-12-14 14:27:32 +00:00
bors fb4e9359d1 Auto merge of #13769 - jonas-schievink:parse-half-open-range-pat, r=jonas-schievink
feat: Parse half-open `..= X` patterns

Closes https://github.com/rust-lang/rust-analyzer/issues/13739
2022-12-14 14:14:46 +00:00
Ryo Yoshida bb99d2a6fb
fix: resolve all inference vars in InferenceResult::assoc_resolutions 2022-12-14 23:07:43 +09:00
bors 5bd9373c5b Auto merge of #13766 - rust-lang:fix-config-patch, r=Veykril
Fix wrong config patching logic for addCallParenthesis
2022-12-14 13:50:29 +00:00
Noritada Kobayashi 37b404d6c6 minor: Set the experimental AsciiDoc document attribute to generated draft changelog
The keyboard macro (`kbd:[...]`) requires this attribute.

This default change will prevent issues like
https://github.com/rust-analyzer/rust-analyzer.github.io/pull/191 .
2022-12-14 18:49:26 +09:00
Noritada Kobayashi c78d759ab3 Add a link to the original changelog from release notes on GitHub Releases 2022-12-14 14:14:55 +09:00
Noritada Kobayashi fd5be91d94 Integrate inline macro support with the main AsciiDoc-to-Markdown conversion process 2022-12-14 13:33:20 +09:00