]>
git.lizzy.rs Git - rust.git/log
Seivan Heidari [Mon, 23 Dec 2019 23:04:36 +0000 (00:04 +0100)]
Fix https://github.com/rust-analyzer/rust-analyzer/pull/2061#discussion_r348716036
Fix https://github.com/rust-analyzer/rust-analyzer/pull/2061/files/
68a5ff050faf514e9d122212a66703ca8ce66ab7 #r361019340
Seivan Heidari [Mon, 23 Dec 2019 14:35:31 +0000 (15:35 +0100)]
Merge branch 'master' into feature/themes
bors[bot] [Mon, 23 Dec 2019 10:58:06 +0000 (10:58 +0000)]
Merge #2636
2636: Chalk update and refactoring r=flodiebold a=flodiebold
This updates the Chalk integration to https://github.com/rust-lang/chalk/pull/311, which will presumably get merged soon, and refactors it some more, most notably introducing our own `TypeFamily` instead of reusing `ChalkIr`. It's still mostly the same as `ChalkIr` though, except for using Salsa `InternId`s directly.
Co-authored-by: Florian Diebold <flodiebold@gmail.com>
bors[bot] [Mon, 23 Dec 2019 10:19:32 +0000 (10:19 +0000)]
Merge #2652
2652: Bump lsp-types to 0.66.0 (fixes #2651) r=matklad a=udoprog
Co-authored-by: John-John Tedro <udoprog@tedro.se>
John-John Tedro [Mon, 23 Dec 2019 10:02:54 +0000 (11:02 +0100)]
Bump lsp-types to 0.66.0 (fixes #2651)
Florian Diebold [Sat, 21 Dec 2019 18:15:06 +0000 (19:15 +0100)]
Filter out error predicates in type bounds as well
Florian Diebold [Sat, 21 Dec 2019 14:00:44 +0000 (15:00 +0100)]
Introduce our own Chalk TypeFamily, instead of using ChalkIr
It's not very different, except we can directly use Salsa IDs instead of casting
them. This means we need to refactor the handling of errors to get rid of
UNKNOWN_TRAIT though.
Florian Diebold [Sat, 21 Dec 2019 13:46:15 +0000 (14:46 +0100)]
Refactor Chalk integration some more
Florian Diebold [Sat, 21 Dec 2019 13:29:33 +0000 (14:29 +0100)]
Update Chalk, clean up Chalk integration a bit
bors[bot] [Sun, 22 Dec 2019 21:42:54 +0000 (21:42 +0000)]
Merge #2648
2648: Rudimentary name resolution for local items r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Aleksey Kladov [Sun, 22 Dec 2019 19:12:23 +0000 (20:12 +0100)]
Rudimentary name resolution for local items
Aleksey Kladov [Sun, 22 Dec 2019 18:32:35 +0000 (19:32 +0100)]
Simplify
Aleksey Kladov [Sun, 22 Dec 2019 18:31:01 +0000 (19:31 +0100)]
Refactor
bors[bot] [Sun, 22 Dec 2019 14:57:34 +0000 (14:57 +0000)]
Merge #2646
2646: Share impl Scope between modules and blocks r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Aleksey Kladov [Sun, 22 Dec 2019 14:49:39 +0000 (15:49 +0100)]
Share impl Scope between modules and blocks
bors[bot] [Sun, 22 Dec 2019 14:43:15 +0000 (14:43 +0000)]
Merge #2645
2645: Simplify r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Aleksey Kladov [Sun, 22 Dec 2019 14:37:07 +0000 (15:37 +0100)]
Simplify
Aleksey Kladov [Sun, 22 Dec 2019 14:31:30 +0000 (15:31 +0100)]
Remove unused parameters
Aleksey Kladov [Sun, 22 Dec 2019 14:28:55 +0000 (15:28 +0100)]
Remove import field
Aleksey Kladov [Sun, 22 Dec 2019 14:21:48 +0000 (15:21 +0100)]
Separate defs from imports
Aleksey Kladov [Sun, 22 Dec 2019 14:08:57 +0000 (15:08 +0100)]
Refactor PerNs construction
Aleksey Kladov [Sun, 22 Dec 2019 14:04:31 +0000 (15:04 +0100)]
Minor rename
bors[bot] [Sun, 22 Dec 2019 13:48:43 +0000 (13:48 +0000)]
Merge #2644
2644: More compact profiling display r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Aleksey Kladov [Sun, 22 Dec 2019 13:17:31 +0000 (14:17 +0100)]
More compact profiling display
bors[bot] [Sun, 22 Dec 2019 13:07:33 +0000 (13:07 +0000)]
Merge #2643
2643: Don't fire no-op changes after files are saved to disk r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Aleksey Kladov [Sun, 22 Dec 2019 12:56:19 +0000 (13:56 +0100)]
Don't fire no-op changes after files are saved to disk
bors[bot] [Sun, 22 Dec 2019 08:05:02 +0000 (08:05 +0000)]
Merge #2642
2642: Use name instead of ident in parser for macro 2.0 syntax r=matklad a=edwin0cheng
Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
bors[bot] [Sun, 22 Dec 2019 07:56:33 +0000 (07:56 +0000)]
Merge #2641
2641: Parse const generics r=matklad a=roblabla
Adds very primitive support for parsing const generics (`const IDENT: TY`) so that rust-analyzer stops complaining about the syntax being invalid.
Fixes #1574
Fixes #2281
Co-authored-by: roblabla <unfiltered@roblab.la>
Edwin Cheng [Sun, 22 Dec 2019 03:11:10 +0000 (11:11 +0800)]
Use name instead of ident for macro 2.0 sytnax
roblabla [Sun, 22 Dec 2019 00:38:23 +0000 (00:38 +0000)]
Parse const generics
Fixes #1574
Fixes #2281
bors[bot] [Sat, 21 Dec 2019 20:53:34 +0000 (20:53 +0000)]
Merge #2640
2640: Add some module docs r=kjeremy a=kjeremy
Co-authored-by: Jeremy Kolb <kjeremy@gmail.com>
Jeremy Kolb [Sat, 21 Dec 2019 20:27:38 +0000 (15:27 -0500)]
Add some module docs
bors[bot] [Sat, 21 Dec 2019 18:44:51 +0000 (18:44 +0000)]
Merge #2638
2638: More profiling r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Aleksey Kladov [Sat, 21 Dec 2019 18:40:20 +0000 (19:40 +0100)]
More profiling
bors[bot] [Sat, 21 Dec 2019 17:46:52 +0000 (17:46 +0000)]
Merge #2637
2637: Optimize and profile r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Aleksey Kladov [Sat, 21 Dec 2019 17:45:46 +0000 (18:45 +0100)]
Optimize and profile
bors[bot] [Sat, 21 Dec 2019 16:35:21 +0000 (16:35 +0000)]
Merge #2635
2635: Remove import source map r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Aleksey Kladov [Sat, 21 Dec 2019 16:34:28 +0000 (17:34 +0100)]
Move LocalImportId
Aleksey Kladov [Sat, 21 Dec 2019 16:26:05 +0000 (17:26 +0100)]
Remove import source map
Aleksey Kladov [Sat, 21 Dec 2019 16:22:48 +0000 (17:22 +0100)]
Remove import from resolution
bors[bot] [Sat, 21 Dec 2019 15:56:04 +0000 (15:56 +0000)]
Merge #2634
2634: Update crates r=matklad a=kjeremy
Co-authored-by: Jeremy Kolb <kjeremy@gmail.com>
Jeremy Kolb [Sat, 21 Dec 2019 15:44:02 +0000 (10:44 -0500)]
Update crates
bors[bot] [Sat, 21 Dec 2019 14:25:15 +0000 (14:25 +0000)]
Merge #2633
2633: Remove imports from hir r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Aleksey Kladov [Sat, 21 Dec 2019 14:17:10 +0000 (15:17 +0100)]
Remove imports from hir
bors[bot] [Sat, 21 Dec 2019 14:08:10 +0000 (14:08 +0000)]
Merge #2632
2632: Revert "Merge #2629" r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Aleksey Kladov [Sat, 21 Dec 2019 14:04:33 +0000 (15:04 +0100)]
bors[bot] [Sat, 21 Dec 2019 12:37:41 +0000 (12:37 +0000)]
Merge #2630
2630: Add dummy implementations of env! and option_env! builtins r=matklad a=flodiebold
They don't do anything except return the correct type.
Also refactor the builtin macro tests a bit.
Co-authored-by: Florian Diebold <flodiebold@gmail.com>
Florian Diebold [Sat, 21 Dec 2019 12:33:44 +0000 (13:33 +0100)]
Add dummy implementations of env! and option_env! builtins
They don't do anything except return the correct type.
Also refactor the builtin macro tests a bit.
bors[bot] [Sat, 21 Dec 2019 11:48:12 +0000 (11:48 +0000)]
Merge #2629
2629: Remove imports from hir r=matklad a=matklad
We only used them to avoid self-confirming completions (`use self::foo`), but that can be handled more locally.
bors r+
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Aleksey Kladov [Sat, 21 Dec 2019 11:47:34 +0000 (12:47 +0100)]
Privatize LocalImportID
Aleksey Kladov [Sat, 21 Dec 2019 11:44:28 +0000 (12:44 +0100)]
Remove import source map
Aleksey Kladov [Sat, 21 Dec 2019 11:38:40 +0000 (12:38 +0100)]
Don't track imports
Aleksey Kladov [Sat, 21 Dec 2019 11:15:56 +0000 (12:15 +0100)]
Remove hir for imports
bors[bot] [Sat, 21 Dec 2019 10:47:47 +0000 (10:47 +0000)]
Merge #2628
2628: Add macro 2.0 support in parser r=matklad a=edwin0cheng
This PR added a new syntax kind : `MACRO_DEF` and a keyword `MACRO_KW`
there are two syntax for declarative macro 2.0 :
1. Normal : `macro m { ($i:ident) => {} }` , which handle similar to legacy one.
2. Call like: `macro m($i:ident) {}`, it produces a single token tree which have two child token trees : `($i:ident)` and `{}`
Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
Edwin Cheng [Sat, 21 Dec 2019 10:42:17 +0000 (18:42 +0800)]
Add macro keyword to ITEM_RECOVERY_SET
Edwin Cheng [Sat, 21 Dec 2019 10:29:14 +0000 (18:29 +0800)]
Add macro 2.0 support in parser
bors[bot] [Sat, 21 Dec 2019 10:12:18 +0000 (10:12 +0000)]
Merge #2626
2626: Recursive collect macros in impl items r=matklad a=edwin0cheng
Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
bors[bot] [Sat, 21 Dec 2019 10:01:42 +0000 (10:01 +0000)]
Merge #2627
2627: Use SelectionRange from LSP 3.15 r=matklad a=kjeremy
Co-authored-by: Jeremy Kolb <kjeremy@gmail.com>
bors[bot] [Sat, 21 Dec 2019 06:12:36 +0000 (06:12 +0000)]
Merge #2625
2625: Clippy lints r=matklad a=kjeremy
Co-authored-by: kjeremy <kjeremy@gmail.com>
Jeremy Kolb [Fri, 20 Dec 2019 23:57:31 +0000 (18:57 -0500)]
Use SelectionRange from LSP 3.15
Edwin Cheng [Fri, 20 Dec 2019 21:16:29 +0000 (05:16 +0800)]
Add a limit for protect against infinite recursion
Edwin Cheng [Fri, 20 Dec 2019 21:02:31 +0000 (05:02 +0800)]
Recursive collect macros in impl items
kjeremy [Fri, 20 Dec 2019 20:14:30 +0000 (15:14 -0500)]
Clippy lints
bors[bot] [Fri, 20 Dec 2019 19:51:03 +0000 (19:51 +0000)]
Merge #2624
2624: Separate module item from module scope r=matklad a=matklad
bors r+
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
bors[bot] [Fri, 20 Dec 2019 19:42:46 +0000 (19:42 +0000)]
Merge #2623
2623: Add support macros in impl blocks r=matklad a=edwin0cheng
This PR add support for macros in impl blocks, which reuse `Expander` for macro expansion.
see also: #2459
Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
Edwin Cheng [Fri, 20 Dec 2019 19:37:03 +0000 (03:37 +0800)]
Add support macros in impl blocks
bors[bot] [Fri, 20 Dec 2019 19:17:28 +0000 (19:17 +0000)]
Merge #2622
2622: Simplify r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Aleksey Kladov [Fri, 20 Dec 2019 19:15:54 +0000 (20:15 +0100)]
Simplify
bors[bot] [Fri, 20 Dec 2019 19:09:02 +0000 (19:09 +0000)]
Merge #2620
2620: Update packages r=matklad a=kjeremy
Co-authored-by: kjeremy <kjeremy@gmail.com>
kjeremy [Fri, 20 Dec 2019 18:52:34 +0000 (13:52 -0500)]
Protect against null as revealed by `npm test`
kjeremy [Fri, 20 Dec 2019 18:52:11 +0000 (13:52 -0500)]
Update to latest packages
bors[bot] [Fri, 20 Dec 2019 18:16:16 +0000 (18:16 +0000)]
Merge #2617
2617: Remove index resolving from hover r=matklad a=kjeremy
I have left in `HoverResult`'s support for multiple entries because we may still want that at some point.
Per https://github.com/rust-analyzer/rust-analyzer/issues/2542#issuecomment-
565238142
Co-authored-by: kjeremy <kjeremy@gmail.com>
bors[bot] [Fri, 20 Dec 2019 17:58:59 +0000 (17:58 +0000)]
Merge #2619
2619: Coerce closures to fn pointers r=flodiebold a=flodiebold
E.g. `let x: fn(A) -> B = |x| { y };`
Co-authored-by: Florian Diebold <florian.diebold@freiheit.com>
Florian Diebold [Fri, 20 Dec 2019 17:53:40 +0000 (18:53 +0100)]
Coerce closures to fn pointers
E.g. `let x: fn(A) -> B = |x| { y };`
bors[bot] [Fri, 20 Dec 2019 17:29:11 +0000 (17:29 +0000)]
Merge #2618
2618: Fix coercion of last expression in function body r=flodiebold a=flodiebold
Co-authored-by: Florian Diebold <florian.diebold@freiheit.com>
Florian Diebold [Fri, 20 Dec 2019 17:27:51 +0000 (18:27 +0100)]
Fix coercion of last expression in function body
bors[bot] [Fri, 20 Dec 2019 17:18:52 +0000 (17:18 +0000)]
Merge #2616
2616: Handle closure return types r=flodiebold a=flodiebold
Fixes #2547.
Co-authored-by: Florian Diebold <florian.diebold@freiheit.com>
Florian Diebold [Fri, 20 Dec 2019 15:41:32 +0000 (16:41 +0100)]
Handle closure return types
Fixes #2547.
kjeremy [Fri, 20 Dec 2019 16:18:24 +0000 (11:18 -0500)]
Remove unused imports
kjeremy [Fri, 20 Dec 2019 16:12:31 +0000 (11:12 -0500)]
Remove the index resolution from hover
We are reasonably precise now to do this.
Aleksey Kladov [Fri, 20 Dec 2019 16:09:13 +0000 (17:09 +0100)]
Make legacy macros private
Aleksey Kladov [Fri, 20 Dec 2019 15:55:38 +0000 (16:55 +0100)]
Privitize impls
Aleksey Kladov [Fri, 20 Dec 2019 15:47:22 +0000 (16:47 +0100)]
Make items private
Aleksey Kladov [Fri, 20 Dec 2019 15:26:49 +0000 (16:26 +0100)]
Move some code to scope
Aleksey Kladov [Fri, 20 Dec 2019 15:19:28 +0000 (16:19 +0100)]
Fix typos
Aleksey Kladov [Fri, 20 Dec 2019 14:58:20 +0000 (15:58 +0100)]
Move impls to ItemScope
Aleksey Kladov [Fri, 20 Dec 2019 14:51:43 +0000 (15:51 +0100)]
Reduce visibility
Aleksey Kladov [Fri, 20 Dec 2019 14:45:12 +0000 (15:45 +0100)]
Rename ModuleScope -> ItemScope
Aleksey Kladov [Fri, 20 Dec 2019 14:44:40 +0000 (15:44 +0100)]
Docs
Aleksey Kladov [Fri, 20 Dec 2019 14:43:45 +0000 (15:43 +0100)]
Move ModuleScope to a new module
Aleksey Kladov [Fri, 20 Dec 2019 14:38:17 +0000 (15:38 +0100)]
Add item_scope module
bors[bot] [Fri, 20 Dec 2019 15:30:36 +0000 (15:30 +0000)]
Merge #2615
2615: Fix wrong path parsing for macro call in pattern position r=edwin0cheng a=edwin0cheng
The parser incorrectly insert a `PathPat` inside `MacroCall` syntax node when parsing inside a pattern position, for example :
```rust
let foo!() = 0;
```
become:
```
MACRO_CALL@[60; 66)
PATH_PAT@[60; 63) <------------- It should not exist
PATH@[60; 63)
PATH_SEGMENT@[60; 63)
NAME_REF@[60; 63)
IDENT@[60; 63) "foo"
EXCL@[63; 64) "!"
TOKEN_TREE@[64; 66)
L_PAREN@[64; 65) "("
R_PAREN@[65; 66) ")"
```
This PR fix this bug and add some test to make sure goto-defintion works for macro inside pattern.
Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
Edwin Cheng [Fri, 20 Dec 2019 15:11:07 +0000 (23:11 +0800)]
Fix parser for macro call in pattern position
bors[bot] [Fri, 20 Dec 2019 14:46:24 +0000 (14:46 +0000)]
Merge #2614
2614: Clippy cleanup r=matklad a=kjeremy
Just a few tweaks from the latest clippy. There are a lot more but we should probably tweak our settings.
Co-authored-by: kjeremy <kjeremy@gmail.com>
kjeremy [Fri, 20 Dec 2019 14:43:30 +0000 (09:43 -0500)]
Use unwrap_or_default
kjeremy [Fri, 20 Dec 2019 14:43:01 +0000 (09:43 -0500)]
Remove useless clone
bors[bot] [Fri, 20 Dec 2019 14:36:53 +0000 (14:36 +0000)]
Merge #2592
2592: Add std::ops::Index support for infering r=edwin0cheng a=edwin0cheng
see also #2534
Seem like this can't fix #2534 for this case:
```rust
fn foo3(bar: [usize; 2]) {
let baz = bar[1]; // <--- baz is still unknown ?
println!("{}", baz);
}
```
Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
bors[bot] [Fri, 20 Dec 2019 14:28:41 +0000 (14:28 +0000)]
Merge #2613
2613: Remove code that never was alive? r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Aleksey Kladov [Fri, 20 Dec 2019 14:26:19 +0000 (15:26 +0100)]
Remove code that never was alive?
bors[bot] [Fri, 20 Dec 2019 13:50:44 +0000 (13:50 +0000)]
Merge #2612
2612: Fix resolve for field init shorthand r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>