kjeremy
6753051a45
Some clippy cleanups
2019-02-06 15:50:26 -05:00
Florian Diebold
d3df80dfe4
Cleanup
2019-02-01 22:54:21 +01:00
Florian Diebold
afce8e4426
Use the new Resolver API for goto def
2019-02-01 22:45:43 +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
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
bors[bot]
28fdb8d03c
Merge #701
...
701: Minor type inference tweaks r=flodiebold a=marcusklaas
Pass down expectation for reference expressions and type the guard in match expressions.
I wasn't able to add a test for the former addition because the type variable previously introduced would always resolve to the right type in the things I tried!
Co-authored-by: Marcus Klaas de Vries <mail@marcusklaas.nl>
2019-01-30 20:51:47 +00: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
Marcus Klaas de Vries
13cb4a1b37
Add test for passing on ref expectations
2019-01-30 21:14:26 +01:00
Marcus Klaas de Vries
3daca3eb4d
Infer type of match guard
2019-01-28 23:09:14 +01:00
Aleksey Kladov
619af1e22c
fix AST for if expressions
...
then is not always a block...
2019-01-27 00:37:11 +03:00
Aleksey Kladov
ec7ed054e0
Functions use new id scheme
2019-01-24 15:28:50 +03:00
Aleksey Kladov
7b901f86cd
move SyntaxPtr to ra_syntax
2019-01-23 17:37:10 +03:00
Marcus Klaas de Vries
fa43ef30f4
Change parsing of struct field patterns
2019-01-19 15:37:26 +03:00
Marcus Klaas de Vries
f9a6050034
Move parsing of field pattern lists to the parser (where it belongs)
2019-01-19 15:37:26 +03:00
Marcus Klaas de Vries
b5466f3fb3
Address issues flagged in review
2019-01-19 15:37:26 +03:00
Marcus Klaas de Vries
44e9a9605b
Fixup annotated bindings
2019-01-19 15:37:26 +03:00
Marcus Klaas de Vries
d48d5b8b6c
Add initial (flawed) implementation of binding annotations
2019-01-19 15:37:26 +03:00
Marcus Klaas de Vries
ac216880f5
Implement unlabeled struct field pattern inference
2019-01-19 15:37:25 +03:00
Marcus Klaas de Vries
3340807bd2
Get basic struct pattern type inference working!
2019-01-19 15:37:25 +03:00
Marcus Klaas de Vries
ab5deb7811
Create struct patterns up to the hir level
2019-01-19 15:37:25 +03:00
Marcus Klaas de Vries
afaa26636e
Add additional pattern variants
2019-01-19 15:37:25 +03:00
Hirokazu Hata
d665acbbec
Implement array inference
2019-01-16 23:35:06 +09:00
Marcus Klaas de Vries
a2b6d3da30
Implement rudimentary type inference for unary operators
2019-01-16 00:04:39 +01:00
Aleksey Kladov
040a622c52
remove Cancelable from funciton body
2019-01-15 19:01:59 +03:00
Aleksey Kladov
f1367e0370
remove Cancelable from navigation target
2019-01-15 18:50:16 +03:00
Marcus Klaas de Vries
37ba237e66
Address issues found in review
2019-01-14 21:52:08 +01:00
Marcus Klaas de Vries
2689348772
Give literal expression default values for now
2019-01-14 19:46:10 +01:00
Marcus Klaas de Vries
a9a6a50c75
Fixup tests
2019-01-14 19:30:21 +01:00
Marcus Klaas de Vries
606d66a714
Start moving literal interpretation to the AST (WIP)
2019-01-14 13:56:43 +01:00
Marcus Klaas de Vries
81bc8e4973
don't try to treat arrays and tuples as literals
2019-01-14 13:55:49 +01:00
Marcus Klaas de Vries
1574715be5
Use type variables to determine exact type for ambiguous numeric literals
2019-01-14 13:54:31 +01:00
Marcus Klaas de Vries
5f5dc20d85
Try implementing integer type inference (WIP)
2019-01-14 13:52:57 +01:00
Marcus Klaas de Vries
a6146d35b1
Implement type inference for literals (WIP)
2019-01-14 13:52:55 +01:00
Hirokazu Hata
6e73cc89b6
Implement tuple inference
2019-01-13 21:10:01 +09:00
Aleksey Kladov
8e554ea5fa
support ref-patterns
2019-01-13 13:36:06 +03:00
Florian Diebold
1ed7fbfc1b
args -> params
2019-01-12 21:58:16 +01:00
Florian Diebold
a6590ce231
Use name resolution for goto definition
2019-01-10 21:32:54 +01: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
3ffd5dd2a6
migrate ra_analysis to new rowan
2019-01-08 11:47:28 +03:00
Aleksey Kladov
da0b348ae9
migrate ra_hir to rowan 2.0
2019-01-08 11:28:42 +03:00
Florian Diebold
2dfb5e6ac0
Improve types for node_expr / node_pat
2019-01-07 00:05:19 +01:00
Florian Diebold
71f7d82e45
Introduce ArenaMap
2019-01-07 00:05:19 +01:00
Florian Diebold
6210e82041
Use HIR Expr for type inference
...
Now we can reuse the type inference inside a function when typing whitespace
etc. :)
2019-01-07 00:05:19 +01:00
Florian Diebold
e5a6cf8153
Various small code review improvements
2019-01-06 00:38:08 +01:00
Florian Diebold
8e3e5ab2c8
Make FnScopes use hir::Expr
...
This was a bit complicated. I've added a wrapper type for now that does the
LocalSyntaxPtr <-> ExprId translation; we might want to get rid of that or give
it a nicer interface.
2019-01-06 00:29:36 +01:00
Florian Diebold
136aba1cf3
Add HIR Expr machinery
2019-01-05 22:41:12 +01:00