aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide_api
Commit message (Collapse)AuthorAgeFilesLines
...
* add analysis-bench to benchmark incremental analysisAleksey Kladov2019-06-162-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Can be used like this: ``` $ cargo run --release -p ra_cli -- \ analysis-bench ../chalk/ \ --complete ../chalk/chalk-engine/src/logic.rs:94:0 loading: 225.970093ms from scratch: 8.492373325s no change: 445.265µs trivial change: 95.631242ms ``` Or like this: ``` $ cargo run --release -p ra_cli -- \ analysis-bench ../chalk/ \ --highlight ../chalk/chalk-engine/src/logic.rs loading: 209.873484ms from scratch: 9.504916942s no change: 7.731119ms trivial change: 124.984039ms ``` "from scratch" includes initial analysis of the relevant bits of the project "no change" just asks the same question for the second time. It measures overhead on assembling the answer outside of salsa. "trivial change" doesn't do an actual salsa change, it just advances the revision. This test how fast is salsa at validating things.
* Merge #1408bors[bot]2019-06-162-2/+2
|\ | | | | | | | | | | | | | | | | | | 1408: Associated type basics & Deref support r=matklad a=flodiebold This adds the necessary Chalk integration to handle associated types and uses it to implement support for `Deref` in the `*` operator and autoderef; so e.g. dot completions through an `Arc` work now. It doesn't yet implement resolution of associated types in paths, though. Also, there's a big FIXME about handling variables in the solution we get from Chalk correctly. Co-authored-by: Florian Diebold <[email protected]>
| * Implement autoderef using the Deref traitFlorian Diebold2019-06-152-2/+2
| | | | | | | | - add support for other lang item targets, since we need the Deref lang item
* | reuse AnalysisHost in batch analysisAleksey Kladov2019-06-151-0/+3
|/
* check for cancellation when executing queriesAleksey Kladov2019-06-121-2/+6
| | | | | | | Note that we can't just remove CheckCanceled trait altogether: sometimes it's useful to check for cancellation while the query is running! We do this, for example, in the name resolution fixed-point loop.
* Merge #1382bors[bot]2019-06-123-3/+20
|\ | | | | | | | | | | | | | | 1382: use salsa's LRU for syntax trees r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * make LRU cache configurableAleksey Kladov2019-06-122-4/+19
| |
| * make LRU_CAP configurable for batch dbAleksey Kladov2019-06-121-2/+3
| |
| * use salsa's LRU for syntax treesAleksey Kladov2019-06-122-2/+3
| |
* | Merge #1394bors[bot]2019-06-111-6/+23
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1394: Fix hover for pat that shadows items r=matklad a=sinkuu ```rust fn x() {} fn y() { let x = 0i32; x; // hover on `x` is expected to be `i32`, but the actual result was `fn x()` } ``` This was because: if [`res.is_empty()`](https://github.com/sinkuu/rust-analyzer/blob/656a0fa9f99298123d7dcee8c65a8a5ed7043bc4/crates/ra_ide_api/src/hover.rs#L205), it fallbacks to "index based approach" and adds `fn x()` to `res`, which makes [`res.extend(type_of)` below](https://github.com/sinkuu/rust-analyzer/blob/656a0fa9f99298123d7dcee8c65a8a5ed7043bc4/crates/ra_ide_api/src/hover.rs#L260-L266) not happen. Co-authored-by: Shotaro Yamada <[email protected]>
| * Fix hover for pat that shadows itemsShotaro Yamada2019-06-111-6/+23
| |
* | move docs under code modelAleksey Kladov2019-06-112-10/+6
| |
* | remove inherent source implsAleksey Kladov2019-06-114-8/+9
| |
* | use Source for module, part 2Aleksey Kladov2019-06-111-5/+5
| |
* | use Source for module, part 1Aleksey Kladov2019-06-113-8/+7
| |
* | use Source for StructFieldAleksey Kladov2019-06-112-5/+5
| |
* | use Source for MacroDefAleksey Kladov2019-06-112-7/+7
| |
* | use Source for impl blockAleksey Kladov2019-06-111-3/+3
| |
* | use Source for TraitAleksey Kladov2019-06-112-26/+4
| |
* | simplifyAleksey Kladov2019-06-111-5/+5
| |
* | use Source for TypeAliasAleksey Kladov2019-06-113-33/+10
| |
* | reduce duplication in hoverAleksey Kladov2019-06-111-56/+24
| |
* | use Source for statics and constsAleksey Kladov2019-06-113-36/+11
| |
* | use Source for FunctionAleksey Kladov2019-06-114-15/+9
| |
* | Introduce HasSource traitAleksey Kladov2019-06-111-28/+18
| |
* | use Source moreAleksey Kladov2019-06-112-43/+22
| |
* | introduce Source structAleksey Kladov2019-06-112-14/+17
|/
* Simpliy hover on ast::nameEdwin Cheng2019-06-102-17/+35
|
* Use classify_name_ref in hoverEdwin Cheng2019-06-103-14/+131
|
* Remove incorrect FIXMEEdwin Cheng2019-06-091-2/+0
|
* FormatingEdwin Cheng2019-06-091-2/+1
|
* Use &str instread of Option<String>Edwin Cheng2019-06-092-5/+5
|
* Rename "string" to "buf"Edwin Cheng2019-06-091-8/+8
|
* Rename Description to ShortLabelEdwin Cheng2019-06-095-133/+133
|
* Make description_from_symbol depends on symbolEdwin Cheng2019-06-091-5/+5
|
* Rename description funcsEdwin Cheng2019-06-091-11/+11
|
* Change docs and description to getter methodEdwin Cheng2019-06-092-4/+11
|
* Add display::DescriptionEdwin Cheng2019-06-094-67/+163
|
* Construct doc individuallyEdwin Cheng2019-06-082-45/+141
|
* Remove node function in NavTargetEdwin Cheng2019-06-085-80/+86
|
* one macro def should be enoughAleksey Kladov2019-06-082-6/+4
|
* Merge #1377bors[bot]2019-06-0614-644/+580
|\ | | | | | | | | | | | | | | 1377: Use inline snapshots in complete_keyword r=matklad a=sbihel Relates to #1127 Co-authored-by: Simon Bihel <[email protected]>
| * Use inline snapshots in complete_keywordSimon Bihel2019-06-0414-644/+580
| |
* | Fix clippy::or_fun_callAlan Du2019-06-042-2/+2
| |
* | Fix clippy::identity_conversionAlan Du2019-06-042-3/+2
| |
* | Fix clippy::new_without_defaultAlan Du2019-06-041-0/+6
| |
* | Fix clippy::assign_op_patternAlan Du2019-06-041-1/+1
| |
* | Fix clippy::useless_formatAlan Du2019-06-041-2/+2
| |
* | Fix clippy::into_iter_on_refAlan Du2019-06-041-1/+1
| |
* | Fix clippy::len_zeroAlan Du2019-06-041-2/+2
| |