Aleksey Kladov
ee3cf6172b
rename ModuleId -> CrateModuleId
2019-03-17 12:53:22 +03:00
Aleksey Kladov
0d6b8baa89
log time
2019-03-17 12:53:22 +03:00
Aleksey Kladov
967a4b64af
Reorganize name resolution
2019-03-17 12:53:22 +03:00
Aleksey Kladov
c7259a899c
remove ItemMap
2019-03-17 12:52:05 +03:00
Aleksey Kladov
71e5adf694
move tests over to crate-def-map
2019-03-17 12:49:07 +03:00
Aleksey Kladov
2195d1db6d
Replace module_tree with CrateDefMap
2019-03-17 12:49:07 +03:00
Aleksey Kladov
0d8d918656
add skeleton for macro-aware name resolutions
2019-03-17 12:46:13 +03:00
Aleksey Kladov
80bb7d86ec
align lower module query names
2019-03-02 16:49:06 +03:00
Florian Diebold
6a04d1f292
Fix resolution of associated method calls across crates
...
I think it'll be better to make the path resolution the number of unresolved
segments, not the first unresolved index; then this error could simply not have
happened. But I'll do that separately.
2019-02-23 12:37:29 +01:00
Ville Penttinen
a34eb98a78
Make nameres::ResolvePathResult private and refactor
2019-02-22 00:11:21 +02:00
Ville Penttinen
2e7bc905be
Remove Const inference for now, refactor PathResult
2019-02-21 23:57:07 +02:00
Ville Penttinen
816971ebc9
Implement basic support for Associated Methods and Constants
...
This is done in `infer_path_expr`. When `Resolver::resolve_path` returns
`PartiallyResolved`, we use the returned `Resolution` together with the given
`segment_index` to check if we can find something matching the segment at
segment_index in the impls for that particular type.
2019-02-21 12:25:55 +02:00
Florian Diebold
b82db68400
Handle tuple structs / enum variants properly in type inference
2019-02-17 20:53:13 +01:00
Florian Diebold
911e32bca9
Complete names from prelude
2019-02-13 21:13:08 +01:00
Florian Diebold
92c595a6a6
Handle extern crates better, so they work correctly in 2015 edition
...
(see the removed comment.)
2019-02-13 21:13:08 +01:00
Florian Diebold
d5ad38cbb8
Resolve 2015 style imports
2019-02-13 20:10:46 +01:00
Florian Diebold
1526eb25c9
Import the prelude
2019-02-13 20:10:09 +01:00
Pascal Hertleif
4fd3613434
Fix some typos
2019-02-12 15:02:57 +01:00
Aleksey Kladov
8cafdb3a99
rename combine -> or
...
This way we match API of Option
https://doc.rust-lang.org/std/option/enum.Option.html#method.or
2019-02-11 17:29:20 +03:00
Aleksey Kladov
58ed8ee665
use extern prelude in Resolver
...
This fixes two bugs:
- completion for paths works again
- we handle extern prelude shadowing more correctly
2019-02-11 15:41:39 +03:00
Florian Diebold
2f24e740db
Implement glob imports within the same crate
...
Fixes #231 .
2019-02-10 16:48:29 +01:00
Florian Diebold
2e1d739a80
Import glob imports from other crates
...
This is the easy part since we don't have to consider the fixpoint algorithm.
2019-02-10 16:20:01 +01:00
Florian Diebold
c1e295682e
Implement glob imports from enums
2019-02-10 16:20:01 +01:00
Aleksey Kladov
12e3b4c70b
reformat the world
2019-02-08 14:49:43 +03:00
Florian Diebold
de4c5e381f
Fix ReachedFixedPoint value for unresolved external prelude items
2019-02-04 23:26:25 +01:00
Florian Diebold
699ce06ac3
Complete extern prelude (again)
2019-02-04 22:09:56 +01: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
d8ef8acb47
Use aliases in import resolution
2019-02-02 00:23:59 +01:00
Florian Diebold
d3df80dfe4
Cleanup
2019-02-01 22:54:21 +01:00
Florian Diebold
33ff7b56ff
Use the new Resolver API in completion
2019-02-01 22:45:25 +01:00
Florian Diebold
6b076f1931
Use new Resolver API in type inference
2019-02-01 22:45:23 +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
Aleksey Kladov
ef7eb8c257
Use Crate instead of CrateId
2019-01-30 22:37:20 +03:00
Aleksey Kladov
95aa7e46fc
move item_map_query
2019-01-30 22:36:22 +03:00
Aleksey Kladov
a128075af9
remove Option<SourceFileItemId> hack
2019-01-26 23:27:01 +03:00
Aleksey Kladov
54f30bb6d8
nicer behavior in case of bugs
...
We should always reach a fixed point, but if we fail, let's fail
loudly!
2019-01-25 23:13:07 +03:00
Aleksey Kladov
87288d802c
pack enum variants into arena
2019-01-25 12:50:46 +03:00
Aleksey Kladov
0707f65806
drop obsolete fixme
2019-01-25 10:31:45 +03:00
Aleksey Kladov
3b45ddd984
deglobify
2019-01-25 10:29:55 +03:00
Aleksey Kladov
74beb5bfcb
simplify
2019-01-25 10:29:00 +03:00
Aleksey Kladov
b90b90cb95
fix comment
2019-01-25 10:17:50 +03:00
Aleksey Kladov
bc77f91cf6
rename def_id -> def
2019-01-25 10:16:28 +03:00
Aleksey Kladov
e884ab05c2
write path resolution code only once
2019-01-25 10:15:10 +03:00
Aleksey Kladov
857c35ddb0
refactor import resolution
...
extract path resolution
use enums instead of bools
2019-01-25 10:08:21 +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
Aleksey Kladov
59f830d3e8
assign DefIds when lowering
2019-01-23 19:49:11 +03:00
gfreezy
13d2fd32ab
fix completion bugs
2019-01-23 15:43:47 +08:00
Florian Diebold
5862542ded
Add AST/HIR for type args in path segments
2019-01-19 16:02:06 +01:00
Aleksey Kladov
63f7dadc11
rename LoweredImport -> ImportId
2019-01-19 15:37:25 +03:00