280: Fixed cast expression parsing in ra_syntax. r=matklad a=ruabmbua
Fixes#279
Related to https://github.com/rust-analyzer/rust-analyzer/pull/273
The cast expression expected any type via types::type_() function,
but the language spec does only allow TypeNoBounds (types without direct extra bounds
via `+`).
**Example:**
```rust
fn test() {
6i8 as i32 + 5;
}
```
This fails, because the types::type_() function which should parse the type after the
as keyword is greedy, and takes the plus sign after path types as extra type bounds.
My proposed fix is to replace the not implemented `type_no_plus()` just calls (`type_()`)
function, which is used at several places. The replacement is `type_with_bounds_cond(p: &mut Parser, allow_bounds: bool)`, which passes the condition to relevant sub-parsers.
This function is then called by `type_()` and the new public `type_no_bounds()`.
Co-authored-by: Roland Ruckerbauer <roland.rucky@gmail.com>
The cast expression expected any type via types::type_() function,
but the language spec does only allow TypeNoBounds (types without direct extra bounds
via `+`).
**Example:**
```rust
fn test() {
6i8 as i32 + 5;
}
```
This fails, because the types::type_() function which should parse the type after the
as keyword is greedy, and takes all plus sign after path types as extra.
My proposed fix is to replace the not implemented `type_no_plus()` just calls (`type_()`)
function, which is used at several places. The replacement is `type_with_bounds_cond(p: &mut Parser, allow_bounds: bool)`, which passes the condition to relevant sub-parsers.
This function is then called by `type_()` and the new public `type_no_bounds()`.
275: Update ARCHITECTURE.md r=matklad a=h-michael
I am still not familiar with the code base, so mostly I quote crate's comments.
Co-authored-by: Hirokazu Hata <h.hata.ai.t@gmail.com>
274: Add crates/*/target to gitignore r=matklad a=h-michael
I am using rls and rust-analyzer together.
Rls creates cache in `crates/*/target`, so I would like to add it to gitignore as well.
Co-authored-by: Hirokazu Hata <h.hata.ai.t@gmail.com>
272: use \b as word boundary when expanding single word in comments r=matklad a=vemoo
as discused in #266
Co-authored-by: Bernardo <berublan@gmail.com>
271: Implement format hook r=matklad a=DJMcNab
Tentatively: fixes#155.
However, this does add all changes in staged files, which might not be desirable. However, I think we can't solve that without explicit support in rustfmt for it, so it should be fine.
Co-authored-by: DJMcNab <36049421+djmcnab@users.noreply.github.com>
270: Checks r=matklad a=matklad
I see occasional panics when binding sources. Hopefully this assertions will make it clear where do the panics come from/
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
267: Fix the extend keybinding r=DJMcNab a=DJMcNab
Make the extend selection keybinding less annoying for users not used to Injelli-J (myself included). Also fixes a minor style issue and runs `npm update`.
Co-authored-by: DJMcNab <36049421+djmcnab@users.noreply.github.com>
Private stops npm publish working, which would be nonsensical anyway
In case it gets added to the vscode extension repository, preview marks it as such
Private may also prevent publishing to the vscode extension repository
266: handle expanding of words in comments at the beginning or end of line r=matklad a=vemoo
After fixing #140 i realized that the logic to determine word boundaries was not correct. It would only consider a word something surrounded by whitespaces in the line, but not newlines before and after the line. This means that one of the tests has changed, but i think that's what was intended.
Co-authored-by: Bernardo <berublan@gmail.com>
265: Refactor symbol resolve API r=matklad a=matklad
Introduce ReferenceResolution to avoid nesting to many non-nominal
types.
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>