aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | Refactor primary IDE APIAleksey Kladov2020-02-2649-979/+1027
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This introduces the new type -- Semantics. Semantics maps SyntaxNodes to various semantic info, such as type, name resolution or macro expansions. To do so, Semantics maintains a HashMap which maps every node it saw to the file from which the node originated. This is enough to get all the necessary hir bits just from syntax.
* | | | Merge pull request #3317 from matklad/no-unicaseAleksey Kladov2020-02-262-2/+0
|\ \ \ \ | | | | | | | | | | Actually drop unicase dependency
| * | | | Actually drop unicase dependencyAleksey Kladov2020-02-262-2/+0
| | | | |
* | | | | Remove code duplication in testsAleksey Kladov2020-02-263-101/+74
|/ / / /
* | | | Rename back to highlight and check event's again highlight rangekjeremy2020-02-252-40/+54
| | | |
* | | | Semantic RangesJeremy Kolb2020-02-256-16/+92
| |_|/ |/| |
* | | Merge #3305bors[bot]2020-02-251-11/+13
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3305: Simplify r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | SimplifyAleksey Kladov2020-02-251-11/+13
| | | |
* | | | :arrow_up: rowanAleksey Kladov2020-02-251-1/+1
|/ / /
* | | SimplifyAleksey Kladov2020-02-252-15/+7
| | |
* | | Merge #3298bors[bot]2020-02-253-59/+68
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3298: Bump chalk and replace TypeFamily with Interner r=flodiebold a=lnicola Co-authored-by: LaurenČ›iu Nicola <[email protected]>
| * | | Bump chalk and replace TypeFamily with InternerLaurențiu Nicola2020-02-243-59/+68
| | | |
* | | | Replace generic with a concrete typeAleksey Kladov2020-02-252-13/+14
| | | |
* | | | Add docsJeremy Kolb2020-02-251-0/+8
| | | |
* | | | Teach the server about Semantic Tokens proposed LSPkjeremy2020-02-259-40/+239
|/ / /
* | / When joining lines, unwrap trivial diverging blocksAleksey Kladov2020-02-242-8/+53
| |/ |/|
* | Omit type hints for enum variant bind patsKirill Bulatov2020-02-241-92/+125
|/
* Add suggestion for failed path resolutionYoshua Wuyts2020-02-231-1/+1
| | | | This adds https://github.com/rust-analyzer/rust-analyzer/issues/3245 as an inline help text for when path resolution fails.
* Style fixesKirill Bulatov2020-02-231-3/+4
|
* Add basic parameter name hints heuristicsKirill Bulatov2020-02-232-41/+187
|
* Fix the testsKirill Bulatov2020-02-221-5/+105
|
* Show more parameter name hintsKirill Bulatov2020-02-221-27/+34
|
* Simplify inlay hints processingKirill Bulatov2020-02-221-103/+35
|
* SimplifyAleksey Kladov2020-02-224-171/+58
|
* Merge #3272bors[bot]2020-02-221-5/+2
|\ | | | | | | | | | | | | | | 3272: ra_db: removed a couple of explicit lifetimes r=matklad a=Veetaha Co-authored-by: Veetaha <[email protected]>
| * ra_db: removed a couple of explicit lifetimesVeetaha2020-02-221-5/+2
| |
* | Merge #3263bors[bot]2020-02-2210-261/+480
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3263: Implement unsizing coercions using Chalk r=matklad a=flodiebold These are coercions like `&[T; n] -> &[T]`, which are handled by the `Unsize` and `CoerceUnsized` traits. The impls for `Unsize` are all built in to the compiler and require special handling, so we need to provide them to Chalk. This adds the following `Unsize` impls: - `Unsize<[T]> for [T; _]` - `Unsize<dyn Trait> for T where T: Trait` - `Unsize<dyn SuperTrait> for dyn SubTrait` Hence we are still missing the 'unsizing the last field of a generic struct' case. Co-authored-by: Florian Diebold <[email protected]> Co-authored-by: Florian Diebold <[email protected]>
| * | Shorten some codeFlorian Diebold2020-02-221-4/+1
| | |
| * | Rework find_super_trait_path to protect against cyclesFlorian Diebold2020-02-225-23/+74
| | |
| * | Fix shift_bound_varsFlorian Diebold2020-02-221-3/+3
| | | | | | | | | | | | It should only shift free vars (maybe the name isn't the best...)
| * | Fix wrong handling of bare `dyn Trait` exposed by canonicalizer fixFlorian Diebold2020-02-221-1/+3
| | | | | | | | | | | | | | | The self type in the `dyn Trait` trait ref should always be ^0, but we didn't put that in there in the bare case.
| * | Add &dyn Trait -> &dyn SuperTrait coercion, and fix &T -> &dyn TraitFlorian Diebold2020-02-224-44/+132
| | |
| * | Fix handling of binders in canonicalizationFlorian Diebold2020-02-221-64/+35
| | | | | | | | | | | | I'm looking forward to getting rid of this in favor of Chalk's implementation.
| * | Implement dyn Trait unsizing as wellFlorian Diebold2020-02-225-9/+136
| | |
| * | Implement unsize coercion using proper trait solvingFlorian Diebold2020-02-225-187/+170
| |/
* | Fix dat commentVeetaha2020-02-221-1/+1
| |
* | Merge #3260bors[bot]2020-02-225-68/+55
|\ \ | | | | | | | | | | | | | | | | | | | | | 3260: Refactor how builtins are resolved r=matklad a=flodiebold This fixes autocompletion suggesting e.g. `self::usize`. (I thought we had a bug for that, but I didn't find it.) Co-authored-by: Florian Diebold <[email protected]>
| * | Refactor how builtins are resolvedFlorian Diebold2020-02-215-68/+55
| | | | | | | | | | | | This fixes autocompletion suggesting e.g. self::usize.
* | | ra_mbe: Remove explicit type annotationVeetaha2020-02-221-1/+1
| | |
* | | ra_mbe: added test for malformed token in macro invokationVeetaha2020-02-221-3/+21
| | | | | | | | | | | | | | | There was a panic where lexer returned None on malformed tokens. But now we just ignore tokenization errors in mbe.
* | | ra_mbe: convert_literal now works with malformed tokensVeetaha2020-02-221-2/+3
| |/ |/|
* | Merge #3262bors[bot]2020-02-225-6/+85
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3262: Fix handling of const patterns r=matklad a=flodiebold E.g. in `match x { None => ... }`, `None` is a path pattern (resolving to the option variant), not a binding. To determine this, we need to try to resolve the name during lowering. This isn't too hard since we already need to resolve names for macro expansion anyway (though maybe a bit hacky). Fixes #1618. Co-authored-by: Florian Diebold <[email protected]>
| * | Fix handling of const patternsFlorian Diebold2020-02-215-6/+85
| |/ | | | | | | | | | | | | | | | | E.g. in `match x { None => ... }`, `None` is a path pattern (resolving to the option variant), not a binding. To determine this, we need to try to resolve the name during lowering. This isn't too hard since we already need to resolve names for macro expansion anyway (though maybe a bit hacky). Fixes #1618.
* | remove unneeded `collect`adamrk2020-02-211-11/+7
| |
* | use Vec::extend instead of Vec::push in loopAdam Bratschi-Kaye2020-02-211-3/+1
| | | | | | | | Co-Authored-By: LaurenČ›iu Nicola <[email protected]>
* | rename module referencesadamrk2020-02-211-0/+112
|/
* Normalize associated types in types coming from ChalkFlorian Diebold2020-02-212-1/+46
| | | | Fixes #3232.
* Remove unused placeholderEdwin Cheng2020-02-211-1/+1
|
* Improve server version infoEdwin Cheng2020-02-211-1/+29
|
* Better errorseAleksey Kladov2020-02-201-2/+2
|