Commit graph

3927 commits

Author SHA1 Message Date
Edwin Cheng
977cf381ce Add bound check 2019-11-17 13:18:42 +08:00
Aleksey Kladov
5b54a93fe7 Add ast for plain and raw string literals 2019-11-16 22:50:41 +03:00
Aleksey Kladov
42604c673d Better factoring of macro expansion machinery in goto def 2019-11-16 22:18:07 +03:00
Aleksey Kladov
2eaa8c94a8 Goto definition works inside macros 2019-11-16 17:00:54 +03:00
bors[bot]
786cae520a
Merge #2276
2276: Source-ify name_definition r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-11-16 13:50:34 +00:00
Florian Diebold
ee190388ab Upgrade Chalk again 2019-11-16 13:25:54 +01:00
Florian Diebold
351c29d859 Fix handling of the binders in dyn/impl Trait
We need to be more careful now when substituting bound variables (previously, we
didn't have anything that used bound variables except Chalk, so it was not a
problem).

This is obviously quite ad-hoc; Chalk has more infrastructure for handling this
in a principled way, which we maybe should adopt.
2019-11-16 13:25:54 +01:00
Florian Diebold
9c2a9a9a06 Use Chalk's dyn/impl trait support 2019-11-16 13:11:29 +01:00
Florian Diebold
e21b82e035 Upgrade Chalk
Associated type values (in impls) are now a separate entity in Chalk, so we have
to intern separate IDs for them.
2019-11-16 13:11:29 +01:00
Aleksey Kladov
3b7cf9226d Source-ify name_definition 2019-11-16 13:50:04 +03:00
Aleksey Kladov
272af56a5c Sourcify classify_name_ref 2019-11-16 13:33:25 +03:00
bors[bot]
d9d99369b2
Merge #2271
2271: Force passing Source when creating a SourceAnalyzer r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-11-15 23:12:59 +00:00
Aleksey Kladov
d898ecb8f2 Force passing Source when creating a SourceAnalyzer 2019-11-16 02:12:35 +03:00
bors[bot]
69f3b01dc5
Merge #2268
2268: Handle ast::MacroCall in classify_name and impl FromSource for MacroDef r=matklad a=kjeremy

Fixes #2260

Co-authored-by: kjeremy <kjeremy@gmail.com>
2019-11-15 22:36:10 +00:00
Aleksey Kladov
1c819fc8f6 Prepare SourceAnalyzer for macros 2019-11-16 01:31:40 +03:00
Aleksey Kladov
f36ac059f3 Reduce some duplication 2019-11-16 01:14:56 +03:00
kjeremy
06984ed116 Add a test that uses classify_name 2019-11-15 17:13:52 -05:00
Aleksey Kladov
892671926b Remove wrong clone 2019-11-16 01:00:00 +03:00
kjeremy
60fd260e7f Handle ast::MacroCall in classify_name and impl FromSource for MacroDef
Fixes #2260
2019-11-15 16:47:58 -05:00
Aleksey Kladov
0404e647e6 Prepare SourceAnalyzer for macros 2019-11-16 00:40:54 +03:00
Aleksey Kladov
bd8af6a413 Sourcify some more 2019-11-16 00:05:10 +03:00
bors[bot]
920848940a
Merge #2266
2266: Sourcify some things r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-11-15 20:25:53 +00:00
Aleksey Kladov
4c90b7e2ec Sourcify some things
If we want to support macros properly, we need to get rid of those
FileIds everywhere...
2019-11-15 23:24:56 +03:00
bors[bot]
86469d4195
Merge #2252
2252: Fix parsing of "postfix" range expressions. r=matklad a=goffrie

Right now they are handled in `postfix_dot_expr`, but that doesn't allow it to
correctly handle precedence. Integrate it more tightly with the Pratt parser
instead.

Also includes a drive-by fix for parsing `match .. {}`.

Fixes #2242.

Co-authored-by: Geoffry Song <goffrie@gmail.com>
2019-11-15 20:15:29 +00:00
Geoffry Song
5645c153e0 Attempt to implement typed accessors 2019-11-15 12:05:29 -08:00
Aleksey Kladov
20186cdf89 Fix add-new assist 2019-11-15 22:57:19 +03:00
Aleksey Kladov
b21829f7ed Remove old impls infrastructure 2019-11-15 21:35:03 +03:00
Aleksey Kladov
ea3540c1a8 Store impls in CrateDefMap 2019-11-15 21:19:32 +03:00
Aleksey Kladov
080dd31f84 Add ImplId 2019-11-15 21:19:32 +03:00
Aleksey Kladov
aeb5e061a8 Reduce visibility 2019-11-15 21:19:32 +03:00
memoryruins
a5f57f98ca Heed the advice of rustc's into_iter() warning 2019-11-15 07:18:10 -05:00
memoryruins
5476c4faa3 Update smallvec dep to 1.0 2019-11-15 07:18:10 -05:00
Aleksey Kladov
c3f84960aa Flatten expr module 2019-11-15 14:53:09 +03:00
Aleksey Kladov
2f6c0c314b Move scope tests to hir_def 2019-11-15 14:47:26 +03:00
Aleksey Kladov
9167da66ac Reduce visibility 2019-11-15 14:15:04 +03:00
Aleksey Kladov
5766ceab06 Add convenience method for testing 2019-11-15 13:16:30 +03:00
Aleksey Kladov
3564fbb7f5 Auto-upgrade some insta snapshots 2019-11-15 12:56:24 +03:00
Aleksey Kladov
487fc448c3 Reduce visibility 2019-11-15 12:24:30 +03:00
Geoffry Song
a68aefdc46 Move inclusive range check to validation 2019-11-15 01:04:45 -08:00
Aleksey Kladov
b80fa14a85 Use Local more 2019-11-15 12:00:36 +03:00
Geoffry Song
989cebc99c Fix parsing of "postfix" range expressions.
Right now they are handled in `postfix_dot_expr`, but that doesn't allow it to
correctly handle precedence. Integrate it more tightly with the Pratt parser
instead.

Also includes a drive-by fix for parsing `match .. {}`.

Fixes #2242.
2019-11-15 00:18:28 -08:00
bors[bot]
31d01efb06
Merge #2251
2251: Privatize modules r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-11-15 07:45:57 +00:00
Aleksey Kladov
a28907af8c Privatize modules 2019-11-15 10:42:54 +03:00
Aleksey Kladov
9c7a2aef30 Refactor Module::from_source to properly descend from root file 2019-11-15 10:26:31 +03:00
bors[bot]
3ad11973ac
Merge #2165
2165: ra_assists: Add add_new assist r=matklad a=rep-nop

Adds a new assist to autogenerate a new fn based on the selected struct, excluding tuple structs and unions. The fn will inherit the same visibility as the struct and the assist will attempt to reuse any existing impl blocks that exist at the same level of struct.

Not marking this as closing #1644 since there's a part 2 of adding autocompletion for when someone starts typing `[pub ]fn new(...`

Co-authored-by: Wesley Norris <repnop@outlook.com>
2019-11-15 07:01:19 +00:00
bors[bot]
a6d080608d
Merge #2249
2249: Cleanup hover r=matklad a=kjeremy

Take advantage of classify_name to consolidate multiple hover paths. This isn't quite as clean as I want it to be (`no_fallback` bool is wonky). There's a relationship between `HoverResult` being empty and the range that is a little warty.

Also I noticed that HoverResults are always marked as exact and have been for quite a while... maybe that should be removed in another PR.

Co-authored-by: Jeremy Kolb <kjeremy@gmail.com>
2019-11-15 06:27:59 +00:00
Jeremy Kolb
89647f93c4 Cleanup hover
Take advantage of classify_name
2019-11-14 22:53:42 -05:00
kjeremy
50825a41d8 Renormalize line endings 2019-11-14 19:44:37 -05:00
kjeremy
fc9c2915c7 Even if jemalloc feature is used do not use it on msvc
Fixes #2233
2019-11-14 11:47:18 -05:00
Aleksey Kladov
1583ab1558 Move body queries to hir_def 2019-11-14 17:37:22 +03:00