Commit graph

4099 commits

Author SHA1 Message Date
Aleksey Kladov
730664f646 Fix panic in batch analysis
Closes #2272
2019-11-24 12:06:00 +03:00
bors[bot]
cf47ea2877
Merge #2365
2365: Make expand-macro more flexible r=matklad a=edwin0cheng

Due to lack of implementation or other types of errors, some macros do not expand correctly in the current situation. The PR attempts to make `expand-macro` more flexible in error situations by ignoring internal failed macro expansion.

Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2019-11-24 08:39:29 +00:00
bors[bot]
7b6aa7c34e
Merge #2343
2343: implement assist invert_if r=matklad a=bravomikekilo

fix [issue 2219 invert if condition](https://github.com/rust-analyzer/rust-analyzer/issues/2219)
I put the assist cursor range to `if` of the if expression, because both condition and body will be replaced. Is there any way to replace them without cover the cursor position?
@matklad 

Co-authored-by: bravomikekilo <bmk1221@126.com>
2019-11-24 08:32:07 +00:00
bors[bot]
f2c36e5a6f
Merge #2360
2360: Refactor builtin macro r=matklad a=edwin0cheng

Refactor builtin macro and add some local tests.

Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2019-11-24 08:17:02 +00:00
bravomikekilo
adac4fc2f2 do refact and fix some issue 2019-11-24 13:14:57 +08:00
Edwin Cheng
16854e28ef Use macro for all the things 2019-11-23 22:48:34 +08:00
Aleksey Kladov
ffc2325d19 Move ModuleSource back to hir 2019-11-23 17:12:49 +03:00
Aleksey Kladov
6bdd5fa461 Privatise nameres 2019-11-23 17:12:49 +03:00
Aleksey Kladov
158b1cb524 Rename CrateModuleId 2019-11-23 17:12:49 +03:00
Edwin Cheng
6940ae9eab Rename BuiltinExpander to BuiltinFnLikeExpander 2019-11-23 21:54:39 +08:00
Aleksey Kladov
dd5c2dc5bf Move ImportId 2019-11-23 16:49:05 +03:00
Aleksey Kladov
338ff052c2 Simplify HasSource 2019-11-23 16:41:04 +03:00
Aleksey Kladov
e5bcb69e4f Hide ImportId 2019-11-23 16:39:53 +03:00
Aleksey Kladov
3bdb034906 Remove unneded supertrait 2019-11-23 16:30:14 +03:00
Aleksey Kladov
6ec0b181c0 Cleanup imports 2019-11-23 15:48:45 +03:00
Aleksey Kladov
8efc41e7f2 Cleanup imports 2019-11-23 15:33:21 +03:00
Aleksey Kladov
32658a73b4 Note that debugging infra is broken 2019-11-23 14:49:45 +03:00
Aleksey Kladov
fc1e543f7a Get rid of DefDatabase2 2019-11-23 14:49:45 +03:00
Aleksey Kladov
958862093e Move docs to hir_def 2019-11-23 14:43:38 +03:00
Aleksey Kladov
8692977d27 Move lang_items to hir_def 2019-11-23 12:58:01 +03:00
Aleksey Kladov
1a99864963 Use attrs rather than syntax for lang items 2019-11-23 12:01:56 +03:00
Aleksey Kladov
552ba868af Move attrs query to hir_def 2019-11-23 11:14:40 +03:00
Edwin Cheng
9c521f00ff Improve fail case in expand_macro 2019-11-23 10:33:14 +08:00
Aleksey Kladov
0f415dd4b3 More principled sources for enums and fields 2019-11-22 23:09:17 +03:00
Aleksey Kladov
d8caf56dfc Uniformalize naming 2019-11-22 21:52:06 +03:00
Edwin Cheng
720ab0bef8 Refactor builtin macro 2019-11-23 01:47:35 +08:00
Edwin Cheng
f4e78a5f4e Add TestDB 2019-11-23 01:11:33 +08:00
Jeremy Kolb
1ee5592be2 Expand column!() 2019-11-22 11:34:48 -05:00
bors[bot]
506131e3e0
Merge #2357
2357: Expand file! to dummy "" r=edwin0cheng a=kjeremy

See https://github.com/rust-analyzer/rust-analyzer/pull/2355#issuecomment-557541873

Co-authored-by: kjeremy <kjeremy@gmail.com>
2019-11-22 16:07:37 +00:00
Aleksey Kladov
7469d2b863 Remove TraitData from API 2019-11-22 18:53:39 +03:00
Aleksey Kladov
fe119fef27 Hide data from public API 2019-11-22 18:51:53 +03:00
Aleksey Kladov
d4f4ae0dd8 Move const&static date to hir_def 2019-11-22 18:46:39 +03:00
kjeremy
786544f022 Expand file! to dummy "" 2019-11-22 10:05:04 -05:00
Aleksey Kladov
64df759418 Make ImplData's fields public 2019-11-22 17:42:56 +03:00
Aleksey Kladov
b315f05cf1 Move data to a single file 2019-11-22 17:32:10 +03:00
Aleksey Kladov
78f3b0627c Move FunctionData to hir_def 2019-11-22 17:18:04 +03:00
Aleksey Kladov
f4b1fb1554 Reorder 2019-11-22 14:12:45 +03:00
Aleksey Kladov
0861ac061e Cleanup errors 2019-11-22 14:08:18 +03:00
Aleksey Kladov
2c48fa087b Add support for environment to CrateGraph 2019-11-22 13:57:25 +03:00
bors[bot]
5be7bd605a
Merge #2348 #2352
2348: Add support for stringify! builtin macro r=matklad a=piotr-szpetkowski

Refs #2212

First time ever contributing here, hopefully it's ok.

2352: Move TypeAlias to hir_def r=matklad a=matklad



Co-authored-by: Piotr Szpetkowski <piotr.szpetkowski@pyquest.space>
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-11-22 10:14:41 +00:00
Aleksey Kladov
4fc900deb1 Move TypeAlias to hir_def 2019-11-22 13:13:51 +03:00
bors[bot]
5dd44a0820
Merge #2347
2347: More correct expand macro r=matklad a=edwin0cheng



Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2019-11-22 10:00:44 +00:00
bors[bot]
f24aa7a45a
Merge #2351
2351: Rename Atts trait r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-11-22 09:27:13 +00:00
Aleksey Kladov
a87e9145a6 Rename Atts trait 2019-11-22 11:36:14 +03:00
Aleksey Kladov
e42f962766 Encapsulate Attrs 2019-11-22 11:27:47 +03:00
bors[bot]
d59bf33b9e
Merge #2349
2349: Ban println in lsp_server r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-11-22 07:48:02 +00:00
Aleksey Kladov
6fbad0619b Ban println in lsp_server 2019-11-22 10:46:56 +03:00
Aleksey Kladov
58413b22d7 Don't continue line comments 2019-11-22 10:38:33 +03:00
Piotr Szpetkowski
8ae5d6faf6
Add support for Stringify builtin macro 2019-11-22 07:56:50 +01:00
Edwin Cheng
a92ad59a02 More correct expand macro 2019-11-22 12:04:20 +08:00
bravomikekilo
1ebfa908d5 fix tidy test 2019-11-22 03:18:22 +08:00
bravomikekilo
8a8be06219 initial invert_if 2019-11-22 02:51:40 +08:00
Edwin Cheng
144dc6652c Fix insert_whitespaces 2019-11-22 02:38:14 +08:00
Edwin Cheng
67a58e4af1 Add test for match_ast 2019-11-22 02:38:14 +08:00
Edwin Cheng
59e7234546 Add to_macro_file_kind 2019-11-22 02:38:14 +08:00
Edwin Cheng
4ff400833f Add MacroFileKind::Statements 2019-11-22 02:38:14 +08:00
bors[bot]
3f1a0c3c5f
Merge #2341
2341: Fix mbe fail to parse TokenTree with endings whitespace r=matklad a=edwin0cheng



Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2019-11-21 17:56:12 +00:00
Edwin Cheng
bf537eefb5 Fixed mbe trival subtree 2019-11-22 01:02:07 +08:00
Aleksey Kladov
a1346bba5c Fix test mark placement 2019-11-21 17:09:38 +03:00
Aleksey Kladov
952405cb41 reformat 2019-11-21 16:31:48 +03:00
Aleksey Kladov
4daf931111 Remove old hir::generics module 2019-11-21 16:23:02 +03:00
Aleksey Kladov
4f8f3393bc Reduce visibility 2019-11-21 16:00:57 +03:00
Aleksey Kladov
36758f2767 Resimplify 2019-11-21 15:56:27 +03:00
Aleksey Kladov
c37d1c5b38 Restore a mark 2019-11-21 15:49:24 +03:00
Aleksey Kladov
6d64798a23 Move resolver to hir_def 2019-11-21 15:39:09 +03:00
Aleksey Kladov
00684d708b Decouple 2019-11-21 15:24:51 +03:00
Aleksey Kladov
eb53aa37a3 Split internal and user-visible ScopeDef 2019-11-21 15:13:46 +03:00
Aleksey Kladov
ca1af86e7b Use GenericParam in ScopeDef 2019-11-21 14:22:30 +03:00
Aleksey Kladov
1312c57d34 Move ScopeDef 2019-11-21 14:21:26 +03:00
Aleksey Kladov
061e6c77b5 Decouple 2019-11-21 14:13:49 +03:00
Aleksey Kladov
621cf06156 Decouple 2019-11-21 13:48:05 +03:00
Aleksey Kladov
24964ca58e Move expr resolver to resolve 2019-11-21 13:28:04 +03:00
Aleksey Kladov
0102fb4133 Decouple Resolver 2019-11-21 13:25:03 +03:00
bors[bot]
2cb2fb1a48
Merge #2332
2332: Add HasResolver trait r=matklad a=matklad

bors merge

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-11-20 19:23:31 +00:00
Aleksey Kladov
1cead41510 Simplify 2019-11-20 22:22:32 +03:00
Aleksey Kladov
6241cf9a59 Add HasResolver trait 2019-11-20 22:22:32 +03:00
bors[bot]
6983afdea9
Merge #2330
2330: Remove hir/adt.rs r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-11-20 18:38:00 +00:00
Aleksey Kladov
7c275a7ed2 Remove hir/adt.rs 2019-11-20 21:34:12 +03:00
Felix Kohlgrüber
bcb2ea912b fix 2190; add test for "replace if let with match" 2019-11-20 19:01:06 +01:00
Aleksey Kladov
12ec946216 Simplify generic params 2019-11-20 20:50:34 +03:00
Aleksey Kladov
cb642fc578 Move generic_params query to HIR 2019-11-20 20:38:37 +03:00
Aleksey Kladov
111891dc2d Move constants to new ID
This allows us to get rid of trait item index
2019-11-20 18:41:23 +03:00
Aleksey Kladov
ee95a35664 Don't duplicate ContainerId type 2019-11-20 17:50:02 +03:00
Aleksey Kladov
64c21ed195 Switch type aliases to new sources 2019-11-20 17:43:03 +03:00
bors[bot]
b7a36b5443
Merge #2326
2326: Remove duplicate tests r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-11-20 13:43:34 +00:00
Aleksey Kladov
3888487ca8 Remove duplicate tests 2019-11-20 16:40:25 +03:00
Edwin Cheng
0a9c80053f Fix expand macro 2019-11-20 21:33:01 +08:00
Aleksey Kladov
cebeedc66f Next gen IDs for functions
The current system with AstIds has two primaraly drawbacks:

* It is possible to manufacture IDs out of thin air.
  For example, it's possible to create IDs for items which are not
  considered in CrateDefMap due to cfg. Or it is possible to mixup
  structs and unions, because they share ID space.

* Getting the ID of a parent requires a secondary index.

Instead, the plan is to pursue the more traditional approach, where
each items stores the id of the parent declaration. This makes
`FromSource` more awkward, but also more correct: now, to get from an
AST to HIR, we first do this recursively for the parent item, and the
just search the children of the parent for the matching def
2019-11-20 16:22:58 +03:00
Aleksey Kladov
06fa3d8389 Move traits to hir_def 2019-11-20 14:22:38 +03:00
Aleksey Kladov
51baaf298d Rename with_ast -> with_value 2019-11-20 13:09:21 +03:00
Aleksey Kladov
e1a6e38767 Move Generics to hir_def 2019-11-20 12:34:48 +03:00
Aleksey Kladov
0e771915fa Allow non-path default type parameters 2019-11-20 11:46:44 +03:00
Aleksey Kladov
36e3fc9d54 Rename Source::ast -> Source::value 2019-11-20 09:42:30 +03:00
Aleksey Kladov
eec68e6f45
Merge pull request #2297 from kiljacken/master
Add fancy truncation of type hints.
2019-11-20 08:38:25 +03:00
Aleksey Kladov
83a8430e0a ⬆️ rowan 2019-11-19 21:13:36 +03:00
Edwin Cheng
e290171397 Add shot doc for expand_macro module 2019-11-20 01:12:56 +08:00
Emil Lauridsen
bf5ac4fe39 Add test for inlay hint truncation 2019-11-19 17:40:38 +01:00
Emil Lauridsen
dadad36bb9 Move type inlay hint truncation to language server
This commit implements a general truncation framework for HirFormatter
that keeps track of how much has been output so far. This information
can then be used to perform truncation inside the language server,
instead of relying on the client.

Initial support is implemented for truncating types hints using the
maxInlayHintLength server config option. The existing solution in the
VSCode extension has been removed in favor of letting the server
truncate type hints.
2019-11-19 17:23:50 +01:00
Edwin Cheng
80fe467ce8 Improve insert_whitespaces 2019-11-20 00:12:48 +08:00
Edwin Cheng
4012da07fd Change return type of expand_macro 2019-11-19 22:56:48 +08:00