Commit graph

6764 commits

Author SHA1 Message Date
bors[bot]
436df298ba
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>
2019-12-22 08:05:02 +00:00
bors[bot]
d33493d779
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>
2019-12-22 07:56:33 +00:00
Edwin Cheng
737045c1ea Use name instead of ident for macro 2.0 sytnax 2019-12-22 11:11:10 +08:00
roblabla
b04d4a88d1 Parse const generics
Fixes #1574
Fixes #2281
2019-12-22 01:32:08 +00:00
bors[bot]
000710bd08
Merge #2640
2640: Add some module docs r=kjeremy a=kjeremy



Co-authored-by: Jeremy Kolb <kjeremy@gmail.com>
2019-12-21 20:53:34 +00:00
Jeremy Kolb
4ef5cd9a89 Add some module docs 2019-12-21 15:27:38 -05:00
bors[bot]
2a6322c99e
Merge #2638
2638: More profiling r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-12-21 18:44:51 +00:00
Aleksey Kladov
e903f58d29 More profiling 2019-12-21 19:44:08 +01:00
bors[bot]
f874d6c475
Merge #2637
2637: Optimize and profile r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-12-21 17:46:52 +00:00
Aleksey Kladov
d4b135f38c Optimize and profile 2019-12-21 18:46:21 +01:00
bors[bot]
c59d10ab35
Merge #2635
2635: Remove import source map r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-12-21 16:35:21 +00:00
Aleksey Kladov
1a8f2aa024 Move LocalImportId 2019-12-21 17:34:28 +01:00
Aleksey Kladov
02f79e37ca Remove import source map 2019-12-21 17:26:28 +01:00
Aleksey Kladov
ec56f59ac1 Remove import from resolution 2019-12-21 17:26:28 +01:00
bors[bot]
6d8a2ec3dd
Merge #2634
2634: Update crates r=matklad a=kjeremy



Co-authored-by: Jeremy Kolb <kjeremy@gmail.com>
2019-12-21 15:56:04 +00:00
Jeremy Kolb
e9ed346968 Update crates 2019-12-21 10:44:02 -05:00
bors[bot]
4528cb3f2c
Merge #2633
2633: Remove imports from hir r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-12-21 14:25:15 +00:00
Aleksey Kladov
4e0168ec14 Remove imports from hir 2019-12-21 15:18:14 +01:00
bors[bot]
df45f28fed
Merge #2632
2632: Revert "Merge #2629" r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-12-21 14:08:10 +00:00
Aleksey Kladov
973b5cf7e2 Revert "Merge #2629"
This reverts commit cdc9d682b0, reversing
changes made to 90ef070db3.
2019-12-21 15:04:33 +01:00
bors[bot]
a1f4c988e4
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>
2019-12-21 12:37:41 +00:00
Florian Diebold
2058f704cb 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.
2019-12-21 13:34:43 +01:00
bors[bot]
cdc9d682b0
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>
2019-12-21 11:48:12 +00:00
Aleksey Kladov
2d3fdf3fb5 Privatize LocalImportID 2019-12-21 12:47:34 +01:00
Aleksey Kladov
d335311893 Remove import source map 2019-12-21 12:45:33 +01:00
Aleksey Kladov
ab7a70fb14 Don't track imports 2019-12-21 12:38:40 +01:00
Aleksey Kladov
67ba9072fa Remove hir for imports 2019-12-21 12:18:20 +01:00
bors[bot]
90ef070db3
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>
2019-12-21 10:47:47 +00:00
Edwin Cheng
4195c0e5f9 Add macro keyword to ITEM_RECOVERY_SET 2019-12-21 18:42:17 +08:00
Edwin Cheng
bea8f58118 Add macro 2.0 support in parser 2019-12-21 18:29:14 +08:00
bors[bot]
3ebf15c9b2
Merge #2626
2626: Recursive collect macros in impl items r=matklad a=edwin0cheng



Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2019-12-21 10:12:18 +00:00
bors[bot]
b902d4403a
Merge #2627
2627: Use SelectionRange from LSP 3.15 r=matklad a=kjeremy



Co-authored-by: Jeremy Kolb <kjeremy@gmail.com>
2019-12-21 10:01:42 +00:00
bors[bot]
1cbef27ff8
Merge #2625
2625: Clippy lints r=matklad a=kjeremy



Co-authored-by: kjeremy <kjeremy@gmail.com>
2019-12-21 06:12:36 +00:00
Jeremy Kolb
429199d481 Use SelectionRange from LSP 3.15 2019-12-20 18:57:31 -05:00
Edwin Cheng
c1166697a7 Add a limit for protect against infinite recursion 2019-12-21 05:16:29 +08:00
Edwin Cheng
360de5ba71 Recursive collect macros in impl items 2019-12-21 05:02:31 +08:00
kjeremy
0d5d63a80e Clippy lints 2019-12-20 15:14:30 -05:00
bors[bot]
6eab968c60
Merge #2624
2624: Separate module item from module scope r=matklad a=matklad

bors r+

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-12-20 19:51:03 +00:00
bors[bot]
f578cd2182
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>
2019-12-20 19:42:46 +00:00
Edwin Cheng
ad81d1dbc1 Add support macros in impl blocks 2019-12-21 03:37:03 +08:00
bors[bot]
825afb0854
Merge #2622
2622: Simplify r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-12-20 19:17:28 +00:00
Aleksey Kladov
f5947be0ea Simplify 2019-12-20 20:15:54 +01:00
bors[bot]
9467f81c58
Merge #2620
2620: Update packages r=matklad a=kjeremy



Co-authored-by: kjeremy <kjeremy@gmail.com>
2019-12-20 19:09:02 +00:00
kjeremy
6049f60a05 Protect against null as revealed by npm test 2019-12-20 13:52:34 -05:00
kjeremy
be78e3c224 Update to latest packages 2019-12-20 13:52:11 -05:00
bors[bot]
02f9e04ee9
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>
2019-12-20 18:16:16 +00:00
bors[bot]
979cbb496e
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>
2019-12-20 17:58:59 +00:00
Florian Diebold
44b00aed4a Coerce closures to fn pointers
E.g. `let x: fn(A) -> B = |x| { y };`
2019-12-20 18:54:33 +01:00
bors[bot]
1d7931e5ff
Merge #2618
2618: Fix coercion of last expression in function body r=flodiebold a=flodiebold



Co-authored-by: Florian Diebold <florian.diebold@freiheit.com>
2019-12-20 17:29:11 +00:00
Florian Diebold
9c3f00a906 Fix coercion of last expression in function body 2019-12-20 18:28:21 +01:00