Aleksey Kladov
bcf30d389c
generalize impl_froms to nested enums
2019-09-13 00:31:04 +03:00
Aleksey Kladov
45117c6388
make various enums "inherit" from AdtDef
2019-09-13 00:10:16 +03:00
Aleksey Kladov
ef2b84ddf1
introduce hir debugging infra
...
This is to make debugging rust-analyzer easier.
The idea is that `dbg!(krate.debug(db))` will print the actual, fuzzy
crate name, instead of precise ID. Debug printing infra is a separate
thing, to make sure that the actual hir doesn't have access to global
information.
Do not use `.debug` for `log::` logging: debugging executes queries,
and might introduce unneded dependencies to the crate graph
2019-09-09 12:32:16 +03:00
Aleksey Kladov
6021a2a83a
cleanup hir db imports
2019-09-08 09:55:12 +03:00
Florian Diebold
b8c1e402fa
Make type walking infrastructure a bit nicer
...
If/when we switch to using Chalk's Ty, we'll need to replace this by its `Fold`
trait, but I didn't want to import the whole thing just yet.
2019-09-03 14:00:35 +02:00
Florian Diebold
f92177cfb5
Add an expr_source method analogous to the source methods in the code model
...
... and use that instead of exposing the source map.
2019-09-02 14:56:38 +02:00
Aleksey Kladov
343463c824
implement durability
2019-08-15 15:27:00 +03:00
Ekaterina Babshukova
4abe03879b
highlight mutable variables differently
2019-07-18 18:52:50 +03:00
Ekaterina Babshukova
2a1e11b36f
complete fields in enum variants
2019-07-12 20:31:49 +03:00
Muhammad Mominul Huque
012fec54dc
Constify KnownName's
2019-07-08 03:29:38 +06:00
Aleksey Kladov
1834bae5b8
allow rustfmt to reorder imports
...
This wasn't a right decision in the first place, the feature flag was
broken in the last rustfmt release, and syntax highlighting of imports
is more important anyway
2019-07-04 23:09:09 +03:00
Aleksey Kladov
6e2369938a
make sure that CrateDefMap is independent from syntax
2019-06-26 21:50:42 +03:00
Aleksey Kladov
0caec7d250
rename XSignature -> XData
2019-06-18 20:20:08 +03:00
Aleksey Kladov
ff6f6b3a52
move docs under code model
2019-06-11 18:28:51 +03:00
Aleksey Kladov
0dcaded439
move source to a seaparate file
2019-06-11 18:28:51 +03:00
Aleksey Kladov
36865adcb9
Introduce HasSource trait
2019-06-11 18:28:51 +03:00
Aleksey Kladov
2a1fe26b6d
use Source more
2019-06-11 18:28:51 +03:00
Aleksey Kladov
1b783e33e9
one macro def should be enough
2019-06-08 14:48:56 +03:00
Aleksey Kladov
8b7f58976b
don't cache parses twice
...
Before this commit, `Parse`s for original file ended up two times in
salsa's db: first, when we parse original file, and second, when we
parse macro or a file.
Given that parse trees are the worst ofenders in terms of memory, it
makes sense to make sure we store them only once.
2019-06-02 20:15:10 +03:00
Aleksey Kladov
5af9e475f4
add AstDatabase
2019-06-02 12:27:36 +03:00
Aleksey Kladov
e6545cc647
add ModuleDef::BuiltInType
2019-05-30 14:06:28 +03:00
Edwin Cheng
b72074a715
Use ItemOrMacro in item resolution
2019-05-26 20:10:56 +08:00
Aleksey Kladov
ef3169a33a
rename code_model_api -> code_model
2019-05-23 21:14:19 +03:00
Aleksey Kladov
0e57d58dd0
kill code_model_impl
2019-05-23 21:13:22 +03:00
Aleksey Kladov
5d54aa6781
add union to code_model
2019-05-23 20:18:47 +03:00
Aleksey Kladov
101b3abfd7
store macro kind in HirFileId
2019-05-14 09:03:43 +03:00
Lenard Pratt
8198e13c26
Added local macro goto
2019-05-04 17:39:51 +01:00
Marco Groppo
e85ee60c42
Initial support for lang items.
2019-04-20 00:10:19 +02:00
Florian Diebold
8bcbcc454c
Extract generic_params method to a HasGenericParams trait
2019-04-14 13:07:45 +02:00
Florian Diebold
4497e1d3ea
Add Container enum to handle both kinds of container (impl/trait)
2019-04-14 11:28:53 +02:00
Florian Diebold
413c87f155
Get substs for trait refs in impl blocks
2019-04-14 11:28:53 +02:00
Aleksey Kladov
f9e825d956
move ScopeEntryWithSyntax
2019-04-13 11:24:09 +03:00
Aleksey Kladov
a2cc76ce63
make resolver private
2019-04-13 11:03:02 +03:00
Aleksey Kladov
f4a94e74bc
fold ScopeWithSyntax into SourceAnalyzer
2019-04-13 10:49:01 +03:00
Aleksey Kladov
b6809b6695
rename
2019-04-11 16:29:33 +03:00
Aleksey Kladov
505acc973b
Make call info to use real name resolution
2019-04-11 16:29:33 +03:00
Aleksey Kladov
10d66d63d7
introduce SourceAnalyzer
2019-04-11 16:29:33 +03:00
Aleksey Kladov
1cd184d653
use either for uses
2019-04-10 10:12:54 +03:00
Aleksey Kladov
6b993a9760
migrate to salsas interning
2019-04-09 22:51:22 +03:00
bors[bot]
fdbebccd71
Merge #1076
...
1076: Const body inference r=flodiebold a=Lapz
This is the second part of #887 . I've added type inference on const bodies and introduced the DefWithBody containing Function, Const and Static. I want to add tests but im unsure on how I would go about testing that completions work.
Co-authored-by: Lenard Pratt <l3np27@gmail.com>
2019-04-02 19:01:54 +00:00
Lenard Pratt
88e22e9d70
Added const bodies and static body to the ast
...
and added inference the inference test
reduce code duplication
2019-04-02 19:21:36 +01:00
Aleksey Kladov
0de89f786f
always produce source for import
2019-04-02 17:58:04 +03:00
Lenard Pratt
7f3bf7cc73
Added defWithBody
2019-03-30 10:50:00 +00:00
Aleksey Kladov
e28db444df
rename
2019-03-26 19:11:01 +03:00
Aleksey Kladov
8f32477312
more type safety
2019-03-26 18:27:22 +03:00
Aleksey Kladov
fb8b354dcc
add typed ids
2019-03-26 17:25:14 +03:00
Aleksey Kladov
0b820cacab
move source_id to a separate file
2019-03-26 14:42:28 +03:00
Aleksey Kladov
e231277ab2
make macro parsing a query
2019-03-26 14:13:17 +03:00
Florian Diebold
c947c15ce1
Basics for trait method resolution
2019-03-25 21:28:36 +01:00
Aleksey Kladov
3fb88e95aa
switch modules to new diagnostics
2019-03-25 10:52:50 +03:00
Aleksey Kladov
7e8f17188e
diagnostics
2019-03-25 10:52:12 +03:00
Aleksey Kladov
3f0cf6ebe1
rename persistent hir database -> def database
2019-03-23 15:44:24 +03:00
Florian Diebold
f10f5a81b3
TypeName => TypeCtor
2019-03-21 22:20:03 +01:00
Florian Diebold
8a5fbf4713
Remove the old variants replaced by Ty::Apply
2019-03-21 22:17:00 +01:00
Aleksey Kladov
6955e392f8
remove old macro support
2019-03-17 12:53:22 +03:00
Aleksey Kladov
c7259a899c
remove ItemMap
2019-03-17 12:52:05 +03:00
Aleksey Kladov
2195d1db6d
Replace module_tree with CrateDefMap
2019-03-17 12:49:07 +03:00
Florian Diebold
c5ee60e05b
Replace Display by a pretty printing trait for Ty
...
This allows removing the names from Adt and FnDef (and more later), as a first
step towards aligning more with chalk's Ty :)
2019-03-16 16:36:59 +01:00
Aleksey Kladov
e9e792f2d7
remove Def
2019-03-12 12:36:37 +03:00
Aleksey Kladov
fe5574b05a
rename scopes
2019-03-02 16:38:28 +03:00
Ville Penttinen
18b0bd9bff
Add const type inference
2019-02-25 10:51:46 +02:00
Florian Diebold
bd8ed644e4
Rename Type => TypeAlias
2019-02-24 21:36:49 +01:00
Florian Diebold
5d72b96988
Implement support for type aliases
2019-02-24 20:54:04 +01:00
Aleksey Kladov
d0a261468e
introduce completion presentation
...
This module should remove completion rendering boilerplate from the
"brains" of completion engine.
2019-02-24 18:51:38 +03:00
Florian Diebold
c71740e956
Clean up imports a bit
2019-02-24 15:17:20 +01:00
Aleksey Kladov
28fd228c70
remove query_definitions
2019-02-11 17:44:54 +03:00
Aleksey Kladov
9923383d53
add graph fixture
2019-02-11 13:47:17 +03:00
Aleksey Kladov
0c5fd8f7cb
move assists to a separate crate
2019-02-06 17:00:00 +03: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
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
9f2574c97e
add ability to get strcut field source
2019-01-25 20:38:03 +03:00
Aleksey Kladov
31d3a56b18
move adt to adt
2019-01-25 01:53:07 +03:00
Aleksey Kladov
a03c109f50
Kill DefId
2019-01-25 01:41:36 +03:00
Aleksey Kladov
1ccf73c836
kill DefKindc
2019-01-25 01:38:21 +03:00
Aleksey Kladov
a7c0336a75
macro-generate froms
2019-01-24 19:16:25 +03:00
Aleksey Kladov
60a607d33f
new struct id
2019-01-24 17:54:18 +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
9fe09db771
encapsulate hir locations
2019-01-24 12:41:08 +03: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
Aleksey Kladov
2dbf58c579
move completion item tests closer to the code
...
this is the reason why we need marks: the tests were spread across two
files, because I've forgotten that there were tests already
2019-01-23 16:05:13 +03:00
Aleksey Kladov
45da21672a
generalize marking infrastructure
2019-01-23 15:36:29 +03:00
Florian Diebold
688a45e00b
Implement beginnings of generics
...
- add HIR for generic params
- resolve generic params in type paths
- add substitions for ADTs
- insert type variables for substitutions
2019-01-19 16:02:06 +01:00
Marcus Klaas de Vries
d2769837f1
Move pattern type inference from adt::StructField to core_model_impl (WIP)
2019-01-19 15:37:26 +03:00
Aleksey Kladov
63f7dadc11
rename LoweredImport -> ImportId
2019-01-19 15:37:25 +03:00
Aleksey Kladov
8ba9c2d4ce
remove Cancelable from type inference
2019-01-15 20:54:18 +03:00
Aleksey Kladov
f193fbcbae
actually produce missing def kinds
2019-01-11 21:02:12 +03:00
Aleksey Kladov
f9ed8d4d23
envapsulate navigation target better
2019-01-11 16:01:57 +03:00
bors[bot]
dc2a8d5acc
Merge #470
...
470: Type inference for enum variants r=flodiebold a=marcusklaas
Opened a new PR instead of https://github.com/rust-analyzer/rust-analyzer/pull/461 . Totally botched that one.
I think I resolved all the issues mentioned there.
Co-authored-by: Marcus Klaas de Vries <mail@marcusklaas.nl>
2019-01-10 19:12:40 +00:00
Aleksey Kladov
32fa084c07
introduce marking infrastructure for maintainable tests
...
This also fixes a particular edge case in name resolution.
2019-01-10 16:45:09 +03:00
Marcus Klaas de Vries
978de5cf8b
Implement type inference for enum variants
2019-01-10 14:32:56 +01:00
Aleksey Kladov
56b2138d82
show field types in completion
2019-01-09 19:40:11 +03:00
Marcus Klaas de Vries
0b8fbb4fad
Fix typos in ARCHITECTURE.md and a number of crates
...
specifically: gen_lsp_server, ra_arena, ra_cli, ra_db, ra_hir
2019-01-09 01:17:09 +01:00
Aleksey Kladov
ac92973a6c
move function to code_model_api
2019-01-08 20:11:13 +03:00
Aleksey Kladov
ed4f13e5c7
remove FnSignatureInfo from hir
2019-01-08 18:38:34 +03:00
Aleksey Kladov
544c63b58e
dont reexport module id
2019-01-08 16:35:36 +03:00
Aleksey Kladov
2d0ab52212
move variants to API
2019-01-08 15:28:08 +03:00
Aleksey Kladov
2d4dc22af8
move enum to code_model_api
2019-01-08 15:22:57 +03:00
Aleksey Kladov
e30c533eb6
move stuct to code_model_api
2019-01-08 15:19:37 +03:00