Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Merge #866 | bors[bot] | 2019-02-22 | 10 | -31/+430 | |
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | 866: Implement basic support for Associated Methods r=flodiebold a=vipentti This is my attempt at learning to understand how the type inference works by adding basic support for associated methods. Currently it does not resolve associated types or constants. The basic idea is that `Resolver::resolve_path` returns a new `PathResult` type, which has two variants, `FullyResolved` and `PartiallyResolved`, fully resolved matches the previous behavior, where as `PartiallyResolved` contains the `PerNs<Resolution` in addition to a `segment_index` which contains the index of the segment which we failed to resolve. This index can then be used to continue inference in `infer_path_expr` using the `Type` we managed to resolve. This changes some of the previous apis, so looking for feedback and suggestions. This should enable fixing #832 Co-authored-by: Ville Penttinen <[email protected]> | |||||
| * | Change resolve_path to return the fully resolved path or PerNs::none | Ville Penttinen | 2019-02-22 | 5 | -36/+38 | |
| | | | | | | | | | | | | This also adds new pub(crate) resolve_path_segments which returns the PathResult, which may or may not be fully resolved. PathResult is also now pub(crate) since it is an implementation detail. | |||||
| * | Ignore failing test for now | Ville Penttinen | 2019-02-21 | 1 | -0/+1 | |
| | | ||||||
| * | Make nameres::ResolvePathResult private and refactor | Ville Penttinen | 2019-02-21 | 1 | -7/+7 | |
| | | ||||||
| * | Remove Const inference for now, refactor PathResult | Ville Penttinen | 2019-02-21 | 4 | -77/+93 | |
| | | ||||||
| * | Implement basic support for Associated Methods and Constants | Ville Penttinen | 2019-02-21 | 13 | -50/+430 | |
| | | | | | | | | | | | | | | 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. | |||||
* | | Merge #864 | bors[bot] | 2019-02-21 | 6 | -42/+124 | |
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 864: Fix handling of generics in tuple variants and refactor a bit r=matklad a=flodiebold (The problem was that we created separate substitutions for the return value, so we lost the connection between the type arguments in the constructor call and the type arguments of the result.) Also make them display a tiny bit nicer. Fixes #860. Co-authored-by: Florian Diebold <[email protected]> Co-authored-by: Florian Diebold <[email protected]> | |||||
| * | | Add an assert (and fix the other) | Florian Diebold | 2019-02-21 | 1 | -1/+2 | |
| | | | ||||||
| * | | Fix handling of generics in tuple variants and refactor a bit | Florian Diebold | 2019-02-20 | 6 | -41/+122 | |
| |/ | | | | | | | | | | | Also make them display a tiny bit nicer. Fixes #860. | |||||
* | | Merge #876 | bors[bot] | 2019-02-21 | 4 | -10/+143 | |
|\ \ | | | | | | | | | | | | | | | | | | | | | | 876: Fix join_lines not adding a comma after join_single_expr_block with match arm r=matklad a=vipentti Fixes #868 Co-authored-by: Ville Penttinen <[email protected]> | |||||
| * | | Move `non_trivia_sibling` to `ra_syntax::algo` | Ville Penttinen | 2019-02-21 | 4 | -15/+13 | |
| | | | ||||||
| * | | Simplify adding a comma after match arm | Ville Penttinen | 2019-02-21 | 1 | -28/+18 | |
| | | | ||||||
| * | | Fix join_lines not adding a comma after join_single_expr_block in match arm | Ville Penttinen | 2019-02-21 | 1 | -2/+147 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We will also remove optional whitespace between the expression and the comma. e.g. ```rust fn foo() { let x = (<|>{ 4 } ,); // NOTE: whitespace } ``` becomes ```rust fn foo() { let x = (<|>4,); } ``` | |||||
* | | | Update lsp-types and backtrace | kjeremy | 2019-02-21 | 3 | -3/+3 | |
| | | | ||||||
* | | | add API guide to ra_syntax | Aleksey Kladov | 2019-02-21 | 1 | -0/+173 | |
|/ / | ||||||
* | | simplify trait bounds | Aleksey Kladov | 2019-02-21 | 1 | -12/+18 | |
| | | ||||||
* | | rearrange methods | Aleksey Kladov | 2019-02-21 | 1 | -67/+67 | |
| | | ||||||
* | | kill utils module | Aleksey Kladov | 2019-02-21 | 10 | -114/+101 | |
| | | ||||||
* | | Ignore lockfile in fuzz | Aleksey Kladov | 2019-02-21 | 2 | -521/+1 | |
| | | | | | | | | It's too much trouble maintaining it | |||||
* | | docs | Aleksey Kladov | 2019-02-21 | 11 | -98/+143 | |
| | | ||||||
* | | add failing test | Aleksey Kladov | 2019-02-21 | 1 | -0/+23 | |
| | | ||||||
* | | fix the test | Aleksey Kladov | 2019-02-21 | 2 | -4/+4 | |
| | | ||||||
* | | fix compilation | Aleksey Kladov | 2019-02-21 | 8 | -59/+38 | |
| | | ||||||
* | | move parser to a separate crate | Aleksey Kladov | 2019-02-21 | 23 | -18/+84 | |
| | | ||||||
* | | make grammar independent of syntax tree | Aleksey Kladov | 2019-02-21 | 2 | -14/+18 | |
| | | ||||||
* | | minor | Aleksey Kladov | 2019-02-21 | 1 | -1/+1 | |
| | | ||||||
* | | move whitespace handling to tree builder | Aleksey Kladov | 2019-02-21 | 4 | -188/+159 | |
|/ | ||||||
* | move syntax error to parser | Aleksey Kladov | 2019-02-20 | 6 | -25/+24 | |
| | ||||||
* | simplify | Aleksey Kladov | 2019-02-20 | 5 | -29/+4 | |
| | ||||||
* | remove TokenPos | Aleksey Kladov | 2019-02-20 | 3 | -49/+28 | |
| | ||||||
* | flattern module structure | Aleksey Kladov | 2019-02-20 | 5 | -14/+30 | |
| | ||||||
* | merge parse_impl and parser_api | Aleksey Kladov | 2019-02-20 | 2 | -171/+102 | |
| | ||||||
* | fix off by one error | Aleksey Kladov | 2019-02-20 | 1 | -1/+1 | |
| | ||||||
* | move abstract traits to top | Aleksey Kladov | 2019-02-20 | 4 | -65/+59 | |
| | ||||||
* | switch to dynamic dispatch for TokenSource | Aleksey Kladov | 2019-02-20 | 2 | -9/+7 | |
| | | | | | | | | | | | Benchmarks show no difference. This is probably because we are bottlenecked on memory allocations, and we should fix that, but we are not optimizing for performance just yet. changes. Lines starting # with '#' will be ignored, and an empty message aborts the commit. # # On branch token-source # Changes to be committed: # modified: crates/ra_syntax/src/parsing/parser_api.rs # modified: crates/ra_syntax/src/parsing/parser_impl.rs # | |||||
* | route parsing via TokenSource trait | Aleksey Kladov | 2019-02-20 | 3 | -64/+59 | |
| | ||||||
* | rename Sink -> TreeSink | Aleksey Kladov | 2019-02-20 | 3 | -8/+8 | |
| | ||||||
* | fix tests | Aleksey Kladov | 2019-02-20 | 3 | -5/+8 | |
| | ||||||
* | rearrange modules in a suggestd reading order | Aleksey Kladov | 2019-02-20 | 2 | -9/+10 | |
| | ||||||
* | flatten modules | Aleksey Kladov | 2019-02-20 | 15 | -40/+37 | |
| | ||||||
* | move reparsers to grammar | Aleksey Kladov | 2019-02-20 | 2 | -33/+27 | |
| | ||||||
* | tighten visibility | Aleksey Kladov | 2019-02-20 | 1 | -3/+3 | |
| | ||||||
* | move all parsing related bits to a separate module | Aleksey Kladov | 2019-02-20 | 31 | -47/+78 | |
| | ||||||
* | slightly better name | Aleksey Kladov | 2019-02-20 | 3 | -12/+20 | |
| | ||||||
* | make stuff private | Aleksey Kladov | 2019-02-20 | 1 | -2/+2 | |
| | ||||||
* | remove ignored macro tests | Aleksey Kladov | 2019-02-19 | 4 | -50/+3 | |
| | | | | | we need to significantly reengineer macros, so the tests as they exist are useless | |||||
* | remove local-vfs | Aleksey Kladov | 2019-02-18 | 5 | -930/+0 | |
| | ||||||
* | switch to crates.io vfs | Aleksey Kladov | 2019-02-18 | 2 | -2/+2 | |
| | ||||||
* | better comments | Aleksey Kladov | 2019-02-18 | 1 | -2/+8 | |
| | ||||||
* | drop dependency on thread_worker | Aleksey Kladov | 2019-02-18 | 3 | -66/+99 | |
| |