aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
* Remove unused import left behind after rebasingPaul Daniel Faria2020-08-101-1/+1
|
* Fix type names broken by rebase, redo expected test because of rebasePaul Daniel Faria2020-08-103-14/+44
|
* Move unsafe semantics methods into `SemanticsImpl` and reference them in ↵Paul Daniel Faria2020-08-101-71/+83
| | | | `Semantics`
* Return bool from is_unsafe_method_call and cleanup usagesPaul Daniel Faria2020-08-102-24/+25
|
* Move semantic logic into Semantics, fix missing tag for safe amp operator, ↵Paul Daniel Faria2020-08-106-105/+112
| | | | using functional methods rather than clunky inline closure
* Remove merge backupPaul Daniel Faria2020-08-101-769/+0
|
* Fix rebase errorsPaul Daniel Faria2020-08-104-9/+10
|
* Move unsafe packed ref logic to Semantics, use `Attrs::by_key` to simplify ↵Paul Daniel Faria2020-08-104-54/+815
| | | | repr attr lookup
* Revert function structs back to using bool to track self param, use first ↵Paul Daniel Faria2020-08-1010-27/+22
| | | | param for self information in syntax highlighting instead
* Deduplicate unsafe method call into a single functionPaul Daniel Faria2020-08-101-41/+31
|
* Unsafe borrow of packed fields: account for borrow through ref binding, auto ↵Paul Daniel Faria2020-08-1010-48/+156
| | | | ref function calls
* Cleanup repr check, fix packed repr check and testPaul Daniel Faria2020-08-103-14/+15
|
* Update FIXME comment to be more usefulPaul Daniel Faria2020-08-101-1/+2
|
* Limit scope of unsafe to & instead of all ref exprs, add test showing ↵Paul Daniel Faria2020-08-102-1/+20
| | | | missing support for autoref behavior
* Remove token tree from ReprKind::Other variant, expose ReprKind higher, ↵Paul Daniel Faria2020-08-102-10/+4
| | | | remove debug println.
* Add tracking of packed repr, use it to highlight unsafe refsPaul Daniel Faria2020-08-104-4/+105
| | | | | | Taking a reference to a misaligned field on a packed struct is an unsafe operation. Highlight that behavior. Currently, the misaligned part isn't tracked, so this highlight is a bit too aggressive.
* Better codesJmPotato2020-08-101-8/+4
| | | | Signed-off-by: JmPotato <[email protected]>
* Show const body in short_labelJmPotato2020-08-102-5/+13
| | | | Signed-off-by: JmPotato <[email protected]>
* Merge #5692bors[bot]2020-08-1015-59/+224
|\ | | | | | | | | | | | | | | | | | | 5692: Add support for extern crate r=jonas-schievink a=Nashenas88 This adds syntax highlighting, hover and goto def functionality for extern crate. Fixes #5690 Co-authored-by: Paul Daniel Faria <[email protected]>
| * Remove Option<...> from result of Crate::root_modulePaul Daniel Faria2020-08-098-23/+22
| | | | | | | | | | There doesn't seem to be any need for it, and removing it simplies several paths of code that depend on it.
| * Add support for extern cratePaul Daniel Faria2020-08-0811-59/+225
| | | | | | | | | | This adds syntax highlighting, hover and goto def functionality for extern crate
* | Merge #5693bors[bot]2020-08-091-0/+10
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5693: Fix no inlay hints / unresolved tokens until manual edit to refresh r=jonas-schievink a=Veetaha Fixes https://github.com/rust-analyzer/rust-analyzer/issues/5349 Now we return ContentModified during the workspace loading. This signifies the language client to retry the operation (i.e. the client will continue polling the server while it returns ContentModified). I believe that there might be cases of overly big projects where the backoff logic we have setup in `sendRequestWithRetry` (which we use for inlay hints) might bail too early (currently the largest retry standby time is 10 seconds). However, I've tried on one of my project with 500+ dependencies and it is still enough. Here are the examples before/after the change (the gifs are quite lengthy because they show testing rather large cargo workspace). <details> <summary>Before</summary> Here you can see that the client receives empty array of inlay hints and does nothing more. Same applies to semantic tokens. The client receives unresolved tokens and does nothing more. The user needs to do a manual edit to refresh the editor. ![prev-demo](https://user-images.githubusercontent.com/36276403/89717721-e4471280-d9c1-11ea-89ce-7dc3e83d9768.gif) </details> <details> <summary>After</summary> Here the server returns ContentModified, so the client periodically retries the requests and eventually receives the wellformed response. ![new-demo](https://user-images.githubusercontent.com/36276403/89717725-eb6e2080-d9c1-11ea-84c9-796bb2b22cec.gif) </details> Co-authored-by: Veetaha <[email protected]>
| * | Let shutdown request to pass through when status == LoadingVeetaha2020-08-091-1/+1
| | |
| * | Fix no inlay hints / unresolved tokens until manual editVeetaha2020-08-081-0/+10
| |/ | | | | | | | | | | | | | | | | | | No we return ContentModified during the workspace loading. This signifies the language client to retry the operation (i.e. the client will continue polling the server while it returns ContentModified). I believe that there might be cases of overly big projects where the backoff logic we have setup in `sendRequestWithRetry` (which we use for inlay hints) might bail too early (currently the largest retry standby time is 10 seconds). However, I've tried on one of my project with 500+ dependencies and it is still enough.
* | Merge #5414bors[bot]2020-08-091-1/+1
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5414: Fix test code lens r=jonas-schievink a=avrong Closes #5217 The implementation is quite similar to #4821. Maybe we should somehow deal with duplicated code. Also, both of these requests introduce some unclear behavior. I'm not sure how to process this, therefore asking for advice. Examples are below. <img width="286" alt="image" src="https://user-images.githubusercontent.com/6342851/87713209-83595f80-c7b2-11ea-8c0f-a12e7571e7df.png"> Co-authored-by: Aleksei Trifonov <[email protected]>
| * | Fix test code lensAleksei Trifonov2020-08-021-1/+1
| | |
* | | format in to_proto::markup_contentJmPotato2020-08-092-1/+33
| | | | | | | | | | | | Signed-off-by: JmPotato <[email protected]>
* | | Merge #5684bors[bot]2020-08-086-20/+122
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5684: Semantic highlighting for unsafe union field access r=jonas-schievink a=Nashenas88 This change adds support for unions in inference and lowering, then extends on that to add the unsafe semantic modifier on field access only. The `is_possibly_unsafe` function in `syntax_highlighting.rs` could be extended to support fns and static muts so that their definitions are not highlighted as unsafe, but only their usage. Also, each commit of this PR updates the tests. By reviewing the files by commit, it's easy to see how the changes in the code affected the tests. Co-authored-by: Paul Daniel Faria <[email protected]>
| * | | Apply unsafe semantic highlighting to union field accessPaul Daniel Faria2020-08-082-13/+59
| | | |
| * | | Add support for unions in inference and loweringPaul Daniel Faria2020-08-084-11/+17
| | | |
| * | | Add additional checks for union inference testsPaul Daniel Faria2020-08-081-5/+33
| | | |
| * | | Add test for unsafe union field access highlightingPaul Daniel Faria2020-08-072-0/+22
| | | |
* | | | Remove cloneVeetaha2020-08-081-1/+1
| |_|/ |/| |
* | | Merge #5679bors[bot]2020-08-071-3/+35
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5679: Account for static mut in missing unsafe diagnostic r=jonas-schievink a=Nashenas88 Accessing or modifying a static mut is an unsafe operation. The "missing unsafe" diagnostic now tracks this. Co-authored-by: Paul Daniel Faria <[email protected]>
| * | | Account for static mut in missing unsafe diagnosticPaul Daniel Faria2020-08-071-3/+35
| |/ /
* | | Merge #5678bors[bot]2020-08-074-2/+17
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5678: Static mut unsafe semantic highlighting r=jonas-schievink a=Nashenas88 This marks static mutable names as unsafe, since accessing or modifying a static mut is an unsafe operation. Co-authored-by: Paul Daniel Faria <[email protected]>
| * | | Mark static mutable names as unsafePaul Daniel Faria2020-08-073-4/+5
| | | |
| * | | Add test for accessing static mutPaul Daniel Faria2020-08-072-0/+14
| |/ /
* | | Merge #5674bors[bot]2020-08-071-3/+3
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | 5674: Update chalk r=matklad a=kjeremy Co-authored-by: Jeremy Kolb <[email protected]>
| * | Update chalkJeremy Kolb2020-08-061-3/+3
| | |
* | | Merge #5526bors[bot]2020-08-067-14/+208
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | 5526: Handle semantic token deltas r=kjeremy a=kjeremy This basically takes the naive approach where we always compute the tokens but save space sending over the wire which apparently solves some GC problems with vscode. This is waiting for https://github.com/gluon-lang/lsp-types/pull/174 to be merged. I am also unsure of the best way to stash the tokens into `DocumentData` in a safe manner. Co-authored-by: kjeremy <[email protected]> Co-authored-by: Jeremy Kolb <[email protected]>
| * | Address PR commentsJeremy Kolb2020-08-064-18/+12
| | |
| * | Handle semantic token deltaskjeremy2020-08-017-13/+213
| | |
* | | Merge #5672bors[bot]2020-08-0512-28/+29
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5672: align names in make r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | align names in makeAleksey Kladov2020-08-0512-28/+29
| | | |
* | | | Merge #5639bors[bot]2020-08-054-6/+68
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | 5639: SSR: Allow `self` in patterns. r=jonas-schievink a=davidlattimore It's now consistent with other variables in that if the pattern references self, only the `self` in scope where the rule is invoked will be accepted. Since `self` doesn't work the same as other paths, this is implemented by restricting the search to just the current function. Prior to this change (since path resolution was implemented), having self in a pattern would just result in no matches. Co-authored-by: David Lattimore <[email protected]>
| * | | Use SyntaxNode.ancestors instead of a loopDavid Lattimore2020-08-051-7/+1
| | | |
| * | | SSR: Allow `self` in patterns.David Lattimore2020-08-014-6/+74
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | It's now consistent with other variables in that if the pattern references self, only the `self` in scope where the rule is invoked will be accepted. Since `self` doesn't work the same as other paths, this is implemented by restricting the search to just the current function. Prior to this change (since path resolution was implemented), having self in a pattern would just result in no matches.
* | | Merge #5648bors[bot]2020-08-055-1/+425
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5648: Add expand glob import assist r=jonas-schievink a=unexge closes https://github.com/rust-analyzer/rust-analyzer/issues/5557 Co-authored-by: unexge <[email protected]>
| * | | Pattern match on slice elements instead of using `.first().unwrap()`unexge2020-08-051-7/+6
| | | |