Commit Graph

22539 Commits

Author SHA1 Message Date
Aleksey Kladov 7e1d866481 add guide 2019-01-21 10:27:01 +02:00
bors[bot] 237bb929f4 Merge #582
582: Postfix completion r=matklad a=gfreezy

resolved #525 

Co-authored-by: gfreezy <gfreezy@gmail.com>
2019-01-21 08:12:14 +00:00
bors[bot] 87c86a573c Merge #581
581: Typo fix r=DJMcNab a=gfreezy



Co-authored-by: gfreezy <gfreezy@gmail.com>
2019-01-21 07:26:45 +00:00
gfreezy 5d1a63c695 postfix completion 2019-01-21 13:19:51 +08:00
gfreezy 77d9611e6b typos fix 2019-01-21 10:35:18 +08:00
bors[bot] f133702f72 Merge #574
574: refactor completions to use TextEdit instead of InsertText r=matklad a=gfreezy

1. migrate from `insertText` to `TextEdit` from `CompleteItem`
2. use `insta` to test completions

Co-authored-by: gfreezy <gfreezy@gmail.com>
2019-01-20 18:27:23 +00:00
bors[bot] b89f8b6b49 Merge #580
580: extend selection expands macros and can totally panic r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-01-20 18:17:18 +00:00
Aleksey Kladov 73836cdbbc extend selection expands macros and can totally panic 2019-01-20 21:05:01 +03:00
Aleksey Kladov 171f6e6d00 somewhat better name 2019-01-20 21:01:11 +03:00
Aleksey Kladov 1ec1bd8139 make matching brace consistent 2019-01-20 20:59:46 +03:00
Aleksey Kladov c517696fab use with_db consistently 2019-01-20 20:55:08 +03:00
bors[bot] 3508ba9bc2 Merge #579
579: Fix panic on inferring field access on an enum r=matklad a=flodiebold

Seen while skipping through https://youtu.be/ANKBNiSWyfc ;)

Co-authored-by: Florian Diebold <flodiebold@gmail.com>
2019-01-20 17:26:26 +00:00
Florian Diebold 3c4a4c6ae9 Fix panic on inferring field access on an enum 2019-01-20 18:14:19 +01:00
gfreezy fd8db14c2f fix tests 2019-01-20 17:28:10 +08:00
gfreezy ecc5a2e3df workaround for trigger character 2019-01-20 13:34:16 +08:00
gfreezy 2a43638052 use a combination of source_change and text_edit for CompleteItem 2019-01-20 12:02:00 +08:00
bors[bot] 1c296d54e3 Merge #576
576: Beginnings of generics r=matklad a=flodiebold

This implements the beginnings of the generics infrastructure; generic parameters for structs work and are correctly substituted in fields. Functions and methods aren't handled at all yet (as the tests show).

The name resolution in `ty` really needs refactoring now, I hope to do that next ;)

Co-authored-by: Florian Diebold <flodiebold@gmail.com>
2019-01-19 18:03:36 +00:00
Florian Diebold 5f3509e140 Add an assert 2019-01-19 19:00:36 +01:00
Florian Diebold 969f588025 Generics -> GenericParams 2019-01-19 18:58:04 +01:00
gfreezy 94d96b60f3 refactor to use remove_range and replace_range instead of TextEdit 2019-01-20 00:38:34 +08:00
Florian Diebold 9e4b5ecec4 Make generics work in struct patterns 2019-01-19 16:02:06 +01:00
Florian Diebold d37bb128ef Collect generic args in struct variant paths as well 2019-01-19 16:02:06 +01:00
Florian Diebold cc4562ab6e Collect generic args in type paths
E.g. `let x: A<X>` is handled correctly.
2019-01-19 16:02:06 +01:00
Florian Diebold fa7f9d696f Make Module impl methods crate-private, update some comments 2019-01-19 16:02:06 +01:00
Florian Diebold 5862542ded Add AST/HIR for type args in path segments 2019-01-19 16:02:06 +01: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
Florian Diebold 415cdc5210 Add some tests 2019-01-19 15:49:48 +01:00
gfreezy 64342599ca ignore unused methods 2019-01-19 22:11:38 +08:00
gfreezy d08e81cdd8 refactor completions to use TextEdit instead of InsertText 2019-01-19 22:02:50 +08:00
bors[bot] bade91db08 Merge #573
573: Refactor/simplify path resolution r=matklad a=flodiebold

No functional change, just simplifying a bit.

Co-authored-by: Florian Diebold <flodiebold@gmail.com>
2019-01-19 13:58:11 +00:00
Florian Diebold 573f6f8656 Refactor/simplify path resolution 2019-01-19 14:48:07 +01:00
Marcus Klaas de Vries fa43ef30f4 Change parsing of struct field patterns 2019-01-19 15:37:26 +03:00
Marcus Klaas de Vries bcbfa2cc11 Finish move of StructField for pattern type inference 2019-01-19 15:37:26 +03:00
Marcus Klaas de Vries 4277f420aa Replace Expectation by &Ty in infer_pat method 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 d2769837f1 Move pattern type inference from adt::StructField to core_model_impl (WIP) 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 5027c5d4ee Fix bug in match arm type unification 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 9433a108cf Make pattern inference work w/o proper expecations 2019-01-19 15:37:25 +03:00
Marcus Klaas de Vries be1b4034a5 Infer pattern types for lambdas and loops 2019-01-19 15:37:25 +03:00
Marcus Klaas de Vries 06d16a18f6 Implement match binding type inference and arm unification 2019-01-19 15:37:25 +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 9c2d83a4c8 Add crude implementation of tuplestruct pattern inference 2019-01-19 15:37:25 +03:00
Marcus Klaas de Vries 3b0de53904 Work on type inference for ADT patterns 2019-01-19 15:37:25 +03:00
Marcus Klaas de Vries 5648dcd36e Implement type inference for tuples and refs 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