Commit Graph

98 Commits

Author SHA1 Message Date
Florian Diebold
5d72b96988 Implement support for type aliases 2019-02-24 20:54:04 +01:00
Florian Diebold
c71740e956 Clean up imports a bit 2019-02-24 15:17:20 +01:00
Florian Diebold
dcfb4ee702 Split ty.rs into several modules
It was just getting too big. We now have:

 - ty: the `Ty` enum and helpers
 - ty::infer: actual type inference
 - ty::lower: lowering from HIR to `Ty`
 - ty::op: helpers for binary operations, currently
2019-02-23 15:36:38 +01:00
Florian Diebold
b82db68400 Handle tuple structs / enum variants properly in type inference 2019-02-17 20:53:13 +01:00
Florian Diebold
65bd9bc3a8 Handle impl generics in method calls 2019-02-16 23:06:41 +01:00
Florian Diebold
0242acae53 Turn ImplBlock into a copy type just containing IDs
This makes it more like the other code model types.

Also make Module::definition_source/declaration_source return HirFileIds, to
make them more like the other source functions.
2019-02-16 22:08:13 +01:00
Florian Diebold
d5ad38cbb8 Resolve 2015 style imports 2019-02-13 20:10:46 +01:00
Pascal Hertleif
4fd3613434 Fix some typos 2019-02-12 15:02:57 +01:00
Florian Diebold
c1e295682e Implement glob imports from enums 2019-02-10 16:20:01 +01:00
Florian Diebold
6964a88e8c Add an ra_cli command that analyses all crates in the current workspace
... and prints various stats about how many expressions have a type etc.
2019-02-10 10:56:58 +01:00
Aleksey Kladov
12e3b4c70b reformat the world 2019-02-08 14:49:43 +03:00
Florian Diebold
1056b480d6 Make extern crates in the root module add to the extern prelude
To accomplish this, separate the extern prelude from the per-module item maps.
2019-02-04 21:49:34 +01:00
Florian Diebold
6b076f1931 Use new Resolver API in type inference 2019-02-01 22:45:23 +01:00
Florian Diebold
758bc72873 Implement methods to build a resolver 2019-02-01 22:17:48 +01:00
Florian Diebold
5208c2aa93 Sketching the resolver API 2019-02-01 22:14:34 +01:00
csmoe
4dffdcf14a split HirDatabase api 2019-02-01 22:05:24 +08:00
Florian Diebold
65864d85f9 Rename FnScopes -> ExprScopes
The reason for this is that it describes scopes for any body expression, not
just that of a function. It did not actually refer to functions at all anymore.
2019-01-30 21:23:50 +01:00
Aleksey Kladov
ef7eb8c257 Use Crate instead of CrateId 2019-01-30 22:37:20 +03:00
kjeremy
04eb15856b Resolve crate 2019-01-30 13:18:21 -05:00
Jeremy Kolb
3c17643b30 Go to Implementation for structs and enums 2019-01-29 19:13:02 -05:00
Marcus Klaas de Vries
089b1c57c1 Address some issues flagged in review 2019-01-27 17:59:21 +01:00
Marcus Klaas de Vries
aa06893a14 Add type params to FnSignature 2019-01-27 17:59:21 +01:00
Marcus Klaas de Vries
67e40e431a Initial implementation of generics for method calls 2019-01-27 17:59:21 +01:00
Marcus Klaas de Vries
3bd47c0285 First attempt at generic type inference for fns 2019-01-27 17:59:21 +01:00
Aleksey Kladov
23172a116c rename POS_FIELD -> POS_FIELD_DEF
to match NAMED_FIELD_DEF
2019-01-26 00:24:12 +03:00
Jeremy A. Kolb
7a0bc2dd64 Add docs to struct fields 2019-01-25 14:29:56 -05:00
bors[bot]
cc73d3ccbc Merge #646
646: Add module documentation support r=matklad a=kjeremy



Co-authored-by: Jeremy A. Kolb <jkolb@ara.com>
2019-01-25 17:55:29 +00:00
Jeremy A. Kolb
6588579116 Add module documentation support 2019-01-25 12:51:36 -05:00
Aleksey Kladov
9f2574c97e add ability to get strcut field source 2019-01-25 20:38:03 +03:00
Aleksey Kladov
87ac5f5b36 use positional ids for fields 2019-01-25 14:21:14 +03:00
Aleksey Kladov
87288d802c pack enum variants into arena 2019-01-25 12:50:46 +03:00
Aleksey Kladov
2ee2fba752 switch to positional enum variants 2019-01-25 11:35:38 +03:00
Aleksey Kladov
74beb5bfcb simplify 2019-01-25 10:29:00 +03:00
Aleksey Kladov
ed27bd8d77 remove useless wrapper 2019-01-25 10:20:35 +03:00
Aleksey Kladov
ff9c5bef7b ModuleDef is Def-free 2019-01-25 01:32:47 +03:00
Aleksey Kladov
0f2f3a21e7 Migrate trait & type to new ids 2019-01-25 01:31:32 +03:00
Aleksey Kladov
1db2cbcb8b move consts&statics to new id 2019-01-25 00:50:08 +03:00
Aleksey Kladov
90215eb5a0 generalize boilerplate 2019-01-25 00:02:18 +03:00
Aleksey Kladov
6a5a1f5902 adapt ide_api to the new API 2019-01-24 23:36:16 +03:00
Aleksey Kladov
4c514a3e02 move enum variant to the new API 2019-01-24 23:32:41 +03:00
Aleksey Kladov
a7c0336a75 macro-generate froms 2019-01-24 19:16:25 +03:00
Aleksey Kladov
ce2041252a kill unused defs 2019-01-24 18:57:38 +03:00
Aleksey Kladov
566c8e321e migrate enums to new id 2019-01-24 18:56:38 +03:00
Aleksey Kladov
60a607d33f new struct id 2019-01-24 17:54:18 +03:00
Aleksey Kladov
ec7ed054e0 Functions use new id scheme 2019-01-24 15:28:50 +03:00
Aleksey Kladov
3ab1519cb2 Change ids strategy
this is a part of larghish hir refactoring which aims to

* replace per-source-root module trees with per crate trees
* switch from a monotyped DedId to type-specific ids
2019-01-24 13:29:19 +03:00
Jeremy A. Kolb
7b548de634 Add a bunch of new documentation to completions 2019-01-23 17:46:14 -05:00
Jeremy A. Kolb
576625f0a1 Add way of getting docs from the code model and use for completion 2019-01-23 16:32:04 -05:00
Jeremy Kolb
b540451483 Move docs to Function 2019-01-22 08:55:05 -05:00
Jeremy Kolb
b77d780f0e Thread documentation through FnSignature and CompletionItem 2019-01-21 21:42:37 -05:00