Commit Graph

8123 Commits

Author SHA1 Message Date
Aleksey Kladov
28332d9b63 Simplify SourceBinder 2020-02-29 18:32:18 +01:00
Aleksey Kladov
a6a623dfbb Small cleanup 2020-02-29 16:57:56 +01:00
bors[bot]
099a8f37f5
Merge #3309
3309: Find cargo toml up the fs r=matklad a=not-much-io

Currently rust-analyzer will look for Cargo.toml in the root of the project and if failing that then go down the filesystem until root.

This unfortunately wouldn't work automatically with (what I imagine is) a fairly common project structure. As an example with multiple languages like:
```
js/
  ..
rust/
  Cargo.toml
  ...
```

Added this small change so rust-analyzer would glance one level up if not found in root or down the filesystem.

## Why not go deeper?

Could be problematic with large project vendored dependencies etc.

## Why not add a Cargo.toml manual setting option?

Loosely related and a good idea, however the convenience of having this automated also is hard to pass up. 

## Testing?

Build a binary with various logs and checked it in a project with such a structure:

```
[ERROR ra_project_model] find_cargo_toml()
[ERROR ra_project_model] find_cargo_toml_up_the_fs()
[ERROR ra_project_model] entities: ReadDir("/workspaces/my-project")
[ERROR ra_project_model] candidate: "/workspaces/my-project/rust/Cargo.toml", exists: true
```

## Edge Cases?

If you have multiple Cargo.toml files one level deeper AND not in the root, will get whatever comes first (order undefined), example:
```
crate1/
    Cargo.toml
crate2/
     Cargo.toml
... (no root Cargo.toml)
```

However this is quite unusual and wouldn't have worked before either. This is only resolvable via manually choosing.

Co-authored-by: nmio <kristo.koert@gmail.com>
2020-02-29 15:36:03 +00:00
bors[bot]
0ae7054210
Merge #3376
3376: Fix a common false-positive type mismatch r=matklad a=flodiebold

E.g. for `&{ some_string() }` in a context where a `&str` is expected, we
reported a mismatch inside the block. The problem is that we're passing an
expectation of `str` down, but the expectation is more of a hint in this case.
There's a long comment in rustc about this, which I just copied.

Also, fix reported location for type mismatches in macros.

Co-authored-by: Florian Diebold <flodiebold@gmail.com>
2020-02-29 15:27:53 +00:00
Florian Diebold
5fe220b987 Fix a common false-positive type mismatch
E.g. for `&{ some_string() }` in a context where a `&str` is expected, we
reported a mismatch inside the block. The problem is that we're passing an
expectation of `str` down, but the expectation is more of a hint in this case.
There's a long comment in rustc about this, which I just copied.

Also, fix reported location for type mismatches in macros.
2020-02-29 15:31:07 +01:00
nmio
b9fbb3da17 lint warn fix 2020-02-29 13:14:31 +00:00
nmio
e15424c1b7 keep one CargoTomlNotFoundError 2020-02-29 13:05:10 +00:00
bors[bot]
0ec7f760fc
Merge #3375
3375: Cleanup editing API a bit r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-02-29 12:52:56 +00:00
Aleksey Kladov
9abcab1669 Fix typo 2020-02-29 13:51:23 +01:00
Aleksey Kladov
5f8b37563e Cleanup editing API 2020-02-29 13:51:23 +01:00
bors[bot]
b53ff214aa
Merge #3374
3374: More orthogonal API for building paths r=matklad a=matklad



bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-02-29 10:56:10 +00:00
Aleksey Kladov
ca713e462b More orthogonal API for building paths 2020-02-29 11:55:36 +01:00
bors[bot]
7cf710c66f
Merge #3372
3372: vscode: migrate to more type-safe assert impl r=matklad a=Veetaha

https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html#assertion-functions

Co-authored-by: Veetaha <gerzoh1@gmail.com>
2020-02-28 23:03:28 +00:00
Veetaha
6dc598fa63 vscode: simplify assert.eq() to assert() as per matklad 2020-02-29 00:59:42 +02:00
Veetaha
e7bf99e6fd vscode: add dat semicolon 2020-02-29 00:33:34 +02:00
Veetaha
3ad0574d7e vscode: add equality assertion 2020-02-29 00:26:22 +02:00
Veetaha
9cf2577054 vscode: rename nodeAssert -> nativeAssert 2020-02-29 00:07:29 +02:00
Veetaha
b88887e70e vscode: add error loging on failed assertion 2020-02-29 00:02:19 +02:00
Veetaha
1b9ab04d4b vscode: migrate to more type-safe assert impl 2020-02-28 23:56:17 +02:00
bors[bot]
cc477edc66
Merge #3371
3371: Simplify r=matklad a=matklad



bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-02-28 21:44:07 +00:00
Aleksey Kladov
067cb928f0 Simplify 2020-02-28 22:43:13 +01:00
bors[bot]
61ba56d433
Merge #3370
3370: Move insert_use util to utils r=matklad a=matklad



bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-02-28 20:54:21 +00:00
Aleksey Kladov
ff42008679 Move insert_use util to utils 2020-02-28 21:53:20 +01:00
bors[bot]
d2bf2adc27
Merge #3369
3369: Reduce visibility r=matklad a=matklad



bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-02-28 16:28:53 +00:00
Aleksey Kladov
e7c82eab21 Reduce visibility 2020-02-28 17:28:29 +01:00
bors[bot]
c692e07b4f
Merge #3367
3367: Fix highlighting of const patterns r=matklad a=matklad



bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-02-28 15:56:07 +00:00
Aleksey Kladov
56ce34c6a7 Correctly flag 'lifetime definitions as definitions 2020-02-28 16:53:12 +01:00
Aleksey Kladov
5ebfcb9cb7 Fix highlighting of const patterns 2020-02-28 16:38:36 +01:00
bors[bot]
93f632ca4e
Merge #3366
3366: Simpilfy original_range logic r=matklad a=edwin0cheng

This PR fixed another [bug](https://github.com/rust-analyzer/rust-analyzer/issues/3000#issuecomment-592474844) which incorrectly map the wrong range of `punct` in macro_call and simplify the logic a little bit by introducing an `ascend_call_token` function.



Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2020-02-28 15:07:33 +00:00
Edwin Cheng
7a5ff0f37c Simpilfy origin_range logic 2020-02-28 22:53:59 +08:00
Aleksey Kladov
209eb32796 Classify name takes const patterns into account 2020-02-28 15:27:52 +01:00
bors[bot]
9ef6359950
Merge #3364
3364: Fix union classification r=matklad a=matklad



bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-02-28 14:04:46 +00:00
Aleksey Kladov
da40149572 Fix union classification 2020-02-28 15:03:09 +01:00
bors[bot]
2995fd2c87
Merge #3363
3363: Cleanup highlighting tags r=matklad a=matklad



bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-02-28 13:48:42 +00:00
Aleksey Kladov
9464ca97c9 Fix highlighting test 2020-02-28 14:47:33 +01:00
bors[bot]
7e5cfcd4fb
Merge #3362
3362: removing ctrl+r key binding fixes #2733 r=matklad a=jasonwilliams

@matklad i didn't see this mentioned anywhere else in the features.md 

Co-authored-by: Jason Williams <jwilliams720@bloomberg.net>
2020-02-28 12:53:09 +00:00
Jason Williams
8e88db90bc removing ctrl+r key binding fixes #2733 2020-02-28 12:50:11 +00:00
Aleksey Kladov
701cf43606 Cleanup highlighting tags 2020-02-28 12:13:37 +01:00
bors[bot]
3e25b17cfd
Merge #3361
3361: Reset fontStyle for inlay hints r=matklad a=matklad

Otherwise, we get bold hints on `true` and `false`



bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-02-28 10:32:18 +00:00
Aleksey Kladov
84b009cbf7 Reset fontStyle for inlay hints
Otherwise, we get bold hints on `true` and `false`
2020-02-28 11:31:53 +01:00
Aleksey Kladov
996e18846d add more tags 2020-02-28 10:39:31 +01:00
bors[bot]
2d5e54e955
Merge #3355
3355: vscode: added feature flags for better short-term ux r=matklad a=Veetaha

See [this zulip thread](https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/Feature.20flags) for more details.

Co-authored-by: Veetaha <gerzoh1@gmail.com>
2020-02-28 09:32:56 +00:00
bors[bot]
553353e316
Merge #3360
3360: Parse attribues in RHS of let statments r=matklad a=edwin0cheng

Fixed #3315

Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2020-02-28 09:23:41 +00:00
bors[bot]
4741ae7852
Merge #3359
3359: Remove AnalysisHost::type_of  r=matklad a=edwin0cheng

This PR remove ` AnalysisHost::type_of` (It is subsume by hover now) and use `Semantics::type_of_x` to infer the type inside `hover` directly. 

And this also solved a bug : Right now hovering on a string literal inside a macro will show up a `&str` popup correctly. (Except if that involved builtin macro, e.g. `println`)

Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2020-02-28 07:53:19 +00:00
Edwin Cheng
cda04d2077 Fix typo 2020-02-28 15:39:34 +08:00
bors[bot]
901edac5f1
Merge #3357
3357: introduce const visibility assist r=matklad a=qmx

this adds the same change visibility assist to `const` declarations too - as suggested by @matklad 

Co-authored-by: Douglas Campos <qmx@qmx.me>
2020-02-28 07:07:21 +00:00
Edwin Cheng
f4e48ad3e4 Parse attr in rhs of let stmts 2020-02-28 13:08:47 +08:00
Edwin Cheng
5f30dd6f72 Remove hover::type_of 2020-02-28 11:37:22 +08:00
Douglas Campos
34a7e4fbaf introduce const visibility assist 2020-02-28 01:15:17 +00:00
nmio
12b595e817 remove code used for testing 2020-02-27 22:06:51 +00:00