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
Edwin Cheng
94c63d2802
Change to use Expansion::file_id and reordering
2019-11-19 22:56:28 +08:00
Edwin Cheng
ae49a22b5c
Rebase
2019-11-19 21:49:06 +08:00
Edwin Cheng
3ccd05fedc
Add recursive expand in vscode
2019-11-19 21:49:06 +08:00
Edwin Cheng
f24bba74d0
Fixed a bug for string lit in quote
2019-11-19 12:15:20 +08:00
bors[bot]
c24ee09904
Merge #2309
...
2309: Goto type def through macros r=matklad a=kjeremy
Co-authored-by: kjeremy <kjeremy@gmail.com>
2019-11-18 20:04:36 +00:00
kjeremy
e939f740b3
Goto type def through macros
2019-11-18 14:57:42 -05:00
bors[bot]
c8fb5b491a
Merge #2307
...
2307: Support hover through macro r=matklad a=kjeremy
Allows hover to work through macros like `match_ast!`.
Co-authored-by: kjeremy <kjeremy@gmail.com>
2019-11-18 19:57:06 +00:00
kjeremy
90f6f6080e
Fix test
2019-11-18 14:20:14 -05:00
DJMcNab
27ce1e822b
Remove the custom impl of AttrsOwner for ImplItem
...
The default impl should have the same behaviour, and it can be generated
by codegen.
See also `ModuleItem` and `NominalDef`
2019-11-18 18:13:56 +00:00
kjeremy
b2cc593381
Support hover through macro
2019-11-18 11:58:42 -05:00
kjeremy
a22cb1daa7
Use Source<&ast::Name> in classify_name
2019-11-18 10:47:19 -05:00
Aleksey Kladov
2b6f1ab0e2
Collapse TokenMap and RevTokenMap
2019-11-18 16:08:41 +03:00
Aleksey Kladov
b79d678923
Token-based reverse-mapping
2019-11-18 15:08:39 +03:00
Aleksey Kladov
5e8c22dbf3
More sources
2019-11-18 14:36:11 +03:00
Aleksey Kladov
9fcd98e956
Add ra_ide_api::expand
...
This module should handle all tricky bits with mapping macro-expanded
HirFileId to original files the user actually can see in the editor
2019-11-18 14:23:24 +03:00
Aleksey Kladov
6d8ca870b3
More Source
2019-11-18 14:07:13 +03:00
Aleksey Kladov
9df3d2e775
Publicise GenericParams
...
See https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/Exposing.20GenericParam.2Ename
2019-11-18 10:35:33 +03:00
Aleksey Kladov
fd52d721e1
More correct expansion mapping
...
We can't really map arbitrary ranges, we only can map tokens
2019-11-17 20:15:55 +03:00
Aleksey Kladov
c8f858d043
Make shift an implementation detail of mbe
2019-11-17 19:11:43 +03:00
bors[bot]
64dac40a86
Merge #2287
...
2287: Disable doctests r=matklad a=matklad
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-11-17 15:45:30 +00:00
Aleksey Kladov
7e2f4b30db
Disable doctests
2019-11-17 18:35:05 +03:00
Aleksey Kladov
6a70bff451
Don't store shift redundantly
2019-11-17 18:22:34 +03:00
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