bors[bot]
d2c3832a8a
Merge #5937
...
5937: Chalk 0.25 r=matklad a=kjeremy
Picks up flodiebold's infinite loop fix
Co-authored-by: kjeremy <kjeremy@gmail.com>
2020-09-03 10:13:41 +00:00
Andy Russell
24805d1d80
default checkOnSave.enable
to true
in server
2020-09-02 17:44:21 -04:00
adamrk
5cd2c67c25
Make unify private again
2020-09-02 22:55:05 +02:00
adamrk
66658f1168
Trim mut keyword in fn completion
2020-09-02 22:49:21 +02:00
adamrk
e11cd8fe35
Remove exposing unification
2020-09-02 22:33:54 +02:00
adamrk
d9bb86ad7d
Collect locals in context
2020-09-02 22:14:37 +02:00
kjeremy
5e4195bb6a
Chalk 0.25
...
Picks up flodiebold's infinite loop fix
2020-09-02 14:07:06 -04:00
kjeremy
36692bdffa
Switch to upstream ENUM_MEMBER
2020-09-02 09:40:59 -04:00
kjeremy
b527257330
Move to vscode-languageclient 7.0.0-next.9
...
Stabilizes call hierarchy and semantic tokens features.
2020-09-02 09:40:59 -04:00
adamrk
04fc937700
Add back Param struct
2020-09-01 22:13:12 +02:00
Aramis Razzaghipour
321108673d
Document VS Code setting needed for on-typing assists
2020-09-01 23:40:53 +10:00
Aleksey Kladov
7f54ded71b
Bump token expansion limit
...
We hit this for redis crate, reported at
Reported at
https://www.reddit.com/r/rust/comments/ikfsf8/rustanalyzer_doesnt_work_with_the_redis_crate/
2020-09-01 14:55:41 +02:00
Aleksey Kladov
b1f59ff6c1
Reduce path_from_text usage
2020-08-31 15:47:42 +02:00
Aleksey Kladov
60706fca8e
Remove dead code
2020-08-31 15:46:57 +02:00
adamrk
c6ddb90714
Add references to fn args during completion
2020-08-30 12:34:32 +02:00
Kirill Bulatov
3ac9732ca3
Fix some typos
2020-08-28 21:55:24 +03:00
Aleksey Kladov
c692b5d76d
⬆️ expect-test
2020-08-28 14:47:14 +02:00
Aleksey Kladov
07da02fc37
⬆️ crates
2020-08-27 19:06:00 +02:00
Aleksey Kladov
4b989009e3
CONST LOOPS ARE HERE
2020-08-27 18:12:01 +02:00
Aleksey Kladov
4d0cfc07fd
Minor
2020-08-27 15:02:56 +02:00
bors[bot]
e7da5816d6
Merge #5895
...
5895: Tease apart orthogonal concerns in markdown link rewriting
r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-08-26 18:26:07 +00:00
Aleksey Kladov
f8a59adf5e
Tease apart orthogonal concerns in markdown link rewriting
...
`hir` should know nothing about URLs, markdown and html. It should
only be able to:
* resolve stringy path from documentation
* generate canonical stringy path for a def
In contrast, link rewriting should not care about semantics of paths
and names resolution, and should be concern only with text mangling
bits.
2020-08-26 20:24:00 +02:00
bors[bot]
7e012ae8b5
Merge #5893
...
5893: Allow running a test as a binary r=matklad a=jonas-schievink
If a test uses `harness = false`, it just contains an `fn main` that is executed via `cargo test`. This adds support for that.
Note though that Cargo doesn't actually tell us whether `harness = false`, so this hint will always show up when you put an `fn main` into an integration test. Normally people shouldn't be doing that if they do use the harness though.
Co-authored-by: Jonas Schievink <jonas.schievink@ferrous-systems.com>
2020-08-26 17:41:45 +00:00
Aleksey Kladov
1c0ac2b9b4
Cleanup hover links tests
2020-08-26 18:36:16 +02:00
Jonas Schievink
964219f0be
Allow running a test as a binary
2020-08-26 17:33:03 +02:00
León Orell Valerian Liehr
63caef372a
Improve support for code block attributes
2020-08-26 15:55:06 +02:00
Aleksey Kladov
7431ec82c9
Simplify
2020-08-26 13:40:45 +02:00
bors[bot]
868aaf2bc6
Merge #5889
...
5889: Allow logging to file r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-08-26 11:21:17 +00:00
Aleksey Kladov
ed6304131a
Simplify
2020-08-26 13:20:46 +02:00
Aleksey Kladov
bb50614d88
Simplify help
2020-08-26 13:20:46 +02:00
Aleksey Kladov
a53c6f6fee
Allow redirecting logs to a specific file
...
There's a surprising lack of crates which are like env_logger, but
also allow writing to a file. Let's write our own then!
2020-08-26 13:20:46 +02:00
Aleksey Kladov
0fc8fd2bd5
**Inline Variable** works with field shorthand
2020-08-26 13:03:14 +02:00
Aleksey Kladov
189521a4db
Add sysroot shortcut to rust-project.json
2020-08-25 19:41:56 +02:00
Aleksey Kladov
c6dffe479b
Cleanup heavy tests
2020-08-25 19:26:45 +02:00
Aleksey Kladov
9786a8f2d4
Don't expose indexing details
2020-08-25 18:40:41 +02:00
Aleksey Kladov
4f6ca0e081
Minor
2020-08-25 18:07:25 +02:00
Aleksey Kladov
7239d8ca95
Provide better stack trace for overlapping edits
...
Overlapping indels are a bug. Checking this *always* is tricky (needs
a sorted data structure to not suffer O(N^2) perf). But
opportunistically checking small indels should give provide 80% of the
benefits.
2020-08-25 17:59:37 +02:00
Aleksey Kladov
7fcda5aa46
Prepare to share sysroot lowering code between Cargo & ProjectJSON
2020-08-25 17:53:24 +02:00
Aleksey Kladov
18b667cfcb
Complete pub
in fields
2020-08-25 17:22:23 +02:00
Aleksey Kladov
6b8bc132dc
Prep work for overriding sysroot
...
The idea here is to make auto-discovery optional, and to allow to set
the path to sysroot directly. This is handy for JSON projects.
2020-08-25 17:04:24 +02:00
Aleksey Kladov
cd9ecdf467
Remove monomorphisation from doclinks resolving code
2020-08-25 14:58:22 +02:00
Aleksey Kladov
66e5ced894
Remove AttrDef
2020-08-25 14:44:15 +02:00
Aleksey Kladov
7487885309
Simplify
2020-08-25 12:58:00 +02:00
Aleksey Kladov
575fb9ab6a
Move attrs from code_module to a separate module
2020-08-25 12:56:01 +02:00
Aleksey Kladov
663749beab
Minor
2020-08-25 12:48:00 +02:00
Aleksey Kladov
b45dd9ef54
Use the same abstraction for attrs and docs
...
Doc comments *are* attributes, so there's no reason to have two crates
here.
2020-08-25 12:13:31 +02:00
bors[bot]
59c77ff062
Merge #5866
...
5866: Improve logging
r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-08-25 09:46:21 +00:00
Aleksey Kladov
3a72afed8c
Improve logging
2020-08-25 11:43:21 +02:00
bors[bot]
96cbad9fb5
Merge #4873
...
4873: Resolve links in hover documentation r=matklad a=zacps
This PR resolves links in hover documentation. Both the upcoming intra-doc-links style and the old "path-based" style.
## Todo
* [x] More tests
* [ ] Benchmark (Is there an easy way to benchmark this?)
* [x] ~~Resolve issues with the markdown parser/get rid of it~~ Migrate to `pulldown_cmark_to_cmark`
* [x] Reorganise code (Tips appreciated)
---
Fixes #503
Co-authored-by: Zac Pullar-Strecker <zacmps@gmail.com>
2020-08-25 09:11:26 +00:00
Aleksey Kladov
7721accebf
Cleanup invert-if
...
* stick to trivial factory functions in make
* compress the logic for inverting Option/Result
2020-08-25 11:00:32 +02:00
Zac Pullar-Strecker
b835f06cec
Merge remote-tracking branch 'upstream/master' into 503-hover-doc-links
2020-08-25 16:44:36 +12:00
Zac Pullar-Strecker
452afaebe1
Changes from review
2020-08-25 16:40:43 +12:00
Jonas Schievink
f3ac19e8cd
Support extern types
2020-08-24 22:02:55 +02:00
Pavan Kumar Sunkara
b2d43daeb4
Allow rust-analyzer auto publishing
2020-08-24 17:27:17 +02:00
bors[bot]
81fa00c5b5
Merge #5733
...
5733: Fix expand glob import bugs r=matklad a=unexge
fixes https://github.com/rust-analyzer/rust-analyzer/issues/5709
TODOs:
- [x] Incorrect node replacing
<details>
<summary>Details</summary>
```rust
use crate::{
body::scope::{ExprScopes, ScopeId},
body::Body,
builtin_type::BuiltinType,
db::DefDatabase,
expr::{ExprId, PatId},
generics::GenericParams,
item_scope::{BuiltinShadowMode, BUILTIN_SCOPE},
nameres::CrateDefMap,
path::*<|>,
per_ns::PerNs,
visibility::{RawVisibility, Visibility},
AdtId, AssocContainerId, ConstId, ContainerId, DefWithBodyId, EnumId, EnumVariantId,
FunctionId, GenericDefId, HasModule, ImplId, LocalModuleId, Lookup, ModuleDefId, ModuleId,
StaticId, StructId, TraitId, TypeAliasId, TypeParamId, VariantId,
};
```
becames
```rust
use crate::{PathKind, name, name, ModPath};
```
</details>
- [x] Ignoring visibility
<details>
<summary>Details</summary>
```rust
mod foo {
mod bar {
pub struct Bar;
}
}
use foo::bar::*;
fn baz(bar: Bar) {}
```
becames
```rust
mod foo {
mod bar {
pub struct Bar;
}
}
use foo::bar::Bar;
fn baz(bar: Bar) {}
```
although mod `bar` is private
</details>
- [x] Eating attributes
Co-authored-by: unexge <unexge@gmail.com>
2020-08-24 14:26:33 +00:00
Pavan Kumar Sunkara
63f63acc7c
Add TBD description to arena
2020-08-24 13:29:10 +02:00
bors[bot]
31cb13dde8
Merge #4776
...
4776: Do a weekly minor publish to crates.io r=matklad a=pksunkara
This is the same system I set up on Chalk repo.
Every week it creates a new minor version, pushes it to github and then deploys it to crates.io.
Co-authored-by: Pavan Kumar Sunkara <pavan.sss1991@gmail.com>
2020-08-24 11:14:45 +00:00
bors[bot]
150e3843b0
Merge #5845
...
5845: Omit lenses for not runnable doctests r=matklad a=SomeoneToIgnore
Ideally, we should properly parse the doctest attributes before, but since I need it for the code lens only, this way should suffice for now
Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
2020-08-24 11:08:11 +00:00
Pavan Kumar Sunkara
335add49db
Add description for crates that will be published
2020-08-24 13:07:22 +02:00
Zac Pullar-Strecker
5452368fad
Renames, comments, and dead code removal
2020-08-24 21:50:30 +12:00
Zac Pullar-Strecker
7bbca7a1b3
Merge remote-tracking branch 'upstream/master' into 503-hover-doc-links
2020-08-24 21:20:13 +12:00
Pavan Kumar Sunkara
a8fa5cd42e
Add version to deps in cargo.toml
2020-08-24 11:10:41 +02:00
Zac Pullar-Strecker
ca464650ee
Add a test to document unimplemented case
2020-08-24 20:47:10 +12:00
Zac Pullar-Strecker
4f5f608b49
Reorganise code
2020-08-24 20:26:45 +12:00
dragfire
1d129a7172
Invert if should be smart about is_some, is_none, is_ok, is_err
2020-08-23 22:30:34 -06:00
Kirill Bulatov
cdd75a699a
Omit lenses for not runnable doctests
2020-08-22 22:03:02 +03:00
bors[bot]
e65d48d1fb
Merge #5823
...
5823: Don't underline function definition if self is &mut r=Nashenas88 a=matklad
The self is right there, and is already underlined, so it makes little
sense to emit even more underlines.
before:
![before](https://user-images.githubusercontent.com/1711539/90672843-0d379500-e257-11ea-840f-b0caed4410f1.png )
after:
![after](https://user-images.githubusercontent.com/1711539/90672840-0c9efe80-e257-11ea-9739-23af433841c6.png )
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-08-22 14:41:17 +00:00
Aleksey Kladov
863b1fb731
⬆️ ungrammar
2020-08-21 19:14:05 +02:00
Aleksey Kladov
b0fd3faf36
Switch to expect_test from crates.io
2020-08-21 13:19:31 +02:00
Aleksey Kladov
66e0c9f840
Remove expect crate
2020-08-21 13:15:56 +02:00
unexge
ef54e8451d
Use new Definition::usages
API in expand glob import
2020-08-20 21:35:47 +03:00
unexge
5cff4b60be
Fix importing private modules in expand glob import
2020-08-20 21:34:53 +03:00
unexge
5d28dec7b9
Fix importing unused traits in expand glob import
2020-08-20 21:34:53 +03:00
unexge
585f5d4901
Use fixme instead of todo
2020-08-20 21:34:53 +03:00
unexge
0847bc801e
Use Definition::find_usages
for finding used items in expand glob import
2020-08-20 21:34:53 +03:00
unexge
11d048af03
Run rustfmt
2020-08-20 21:34:53 +03:00
unexge
bb72150f02
Handle more cases in AST replacing in expand glob import
2020-08-20 21:34:53 +03:00
unexge
128eef779f
Improve AST replacing in expand glob import
2020-08-20 21:34:53 +03:00
Aleksey Kladov
e262149b7c
Optimize reference search
2020-08-20 00:54:44 +02:00
Aleksey Kladov
8000d1d30d
Don't underline function definition if self is &mut
...
The self is right there, and is already underlined, so it makes little
sense to emit even more underlines.
2020-08-19 20:02:33 +02:00
bors[bot]
9051d6bc36
Merge #5822
...
5822: Remove dead code
r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-08-19 17:56:19 +00:00
Aleksey Kladov
eb7bb2cba0
Remove dead code
2020-08-19 19:54:00 +02:00
Aleksey Kladov
4b5b55f6f3
**Remove Unused Parameter** refactoring
2020-08-19 19:40:55 +02:00
Aleksey Kladov
81b0976187
Future proof find-usages API
...
We might want to provide more efficient impls for check if usages
exist, limiting the search, filtering and cancellation, so let's
violate YAGNI a bit here.
2020-08-19 18:58:48 +02:00
Aleksey Kladov
b56e020077
Apply couple of rule of thumbs to simplify highlighting code
...
Main one: instead of adding a parameter to function to handle special
case, make the caller handle it.
Second main one: make sure that function does a reasonable thing.
`highlight_def` picks a color for def, *regardless* of the context
the def is use. Feeding an info from the call-site muddies the
responsibilities here.
Minor smells, flagging the function as having space for improvement in
the first place:
* many parameters, some of which are set as constants on most
call-sites (introduce severalfunction instad)
* boolean param (add two functions instead)
2020-08-19 17:53:41 +02:00
Aleksey Kladov
11a1bb1c3e
Inline trivial function
2020-08-19 17:41:56 +02:00
Aleksey Kladov
a9778c6d73
Simplify
2020-08-19 17:37:19 +02:00
Aleksey Kladov
0b62b990ba
Minor
2020-08-19 17:33:25 +02:00
Aleksey Kladov
422ac441c2
Minor cleanups
2020-08-19 17:31:26 +02:00
Aleksey Kladov
5da1dc9a8b
Better name
2020-08-19 17:30:43 +02:00
Aleksey Kladov
61754678fb
Better API factoring around self access modes
2020-08-19 17:02:50 +02:00
Aleksey Kladov
73f4fcbd0f
Better error if Cargo is not in Path
2020-08-19 16:34:11 +02:00
Aleksey Kladov
70fd542822
Introduce hir::Param
...
We generally shouldn't expose TypeRef out of hir. So, let's just use a
placehoder here.
2020-08-19 16:04:18 +02:00
Aleksey Kladov
b9b4693ce3
Add SelfParam to code_model
2020-08-19 15:16:24 +02:00
Aleksey Kladov
a3b0a3aeb8
Minor cleanups
2020-08-19 13:46:34 +02:00
bors[bot]
63ac896655
Merge #5811
...
5811: Minor
r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-08-19 11:34:29 +00:00
Aleksey Kladov
80ea7f3c81
Minor
2020-08-19 13:33:51 +02:00
bors[bot]
529ca7e5e0
Merge #5643
...
5643: Add new consuming modifier, apply consuming and mutable to methods r=matklad a=Nashenas88
This adds a new `consuming` semantic modifier for syntax highlighters.
This also emits `mutable` and `consuming` in two cases:
- When a method takes `&mut self`, then it now has `function.mutable` emitted.
- When a method takes `self`, and the type of `Self` is not `Copy`, then `function.consuming` is emitted.
CC @flodiebold
Co-authored-by: Paul Daniel Faria <Nashenas88@users.noreply.github.com>
2020-08-19 11:27:02 +00:00
Aleksey Kladov
17d6efe6f2
Make RacyFlag actually work
2020-08-18 23:51:01 +02:00
Aleksey Kladov
27ccc95c60
Cleanup feature generation
2020-08-18 19:36:27 +02:00
bors[bot]
f18f9da7d8
Merge #5695
...
5695: Added completion for unstable features r=matklad a=Fihtangolz
Added xtask for downloading list of unstable features from the unstable book and codegen for it. Also included small changes from linter.
Co-authored-by: Dmitry <mamhigtt@gmail.com>
Co-authored-by: Dmitry Opokin <mamhigtt@gmail.com>
2020-08-18 16:49:06 +00:00
bors[bot]
aa2def023e
Merge #5804
...
5804: Add type safety to diagnostic codes
r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-08-18 16:40:12 +00:00
Aleksey Kladov
8146669542
Add type safety to diagnostic codes
2020-08-18 18:39:43 +02:00
bors[bot]
d21d5e42c4
Merge #5800
...
5800: Speedup ty tests
r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-08-18 15:22:12 +00:00
Aleksey Kladov
aad911fb0c
Speedup ty tests
...
Closes #5792
2020-08-18 17:20:57 +02:00
bors[bot]
0df9ecedb4
Merge #5798
...
5798: Introduce Label
r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-08-18 14:51:10 +00:00
Aleksey Kladov
aa1a7a5414
Introduce Label
2020-08-18 16:50:07 +02:00
bors[bot]
e81c310b62
Merge #5797
...
5797: Minor
r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-08-18 14:22:36 +00:00
Aleksey Kladov
eb81731600
Minor
2020-08-18 16:22:01 +02:00
bors[bot]
0e66dc690e
Merge #5796
...
5796: Align diagnostics config with the rest of rust-analyzer
r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-08-18 14:12:00 +00:00
Aleksey Kladov
0866b1be89
Align diagnostics config with the rest of rust-analyzer
2020-08-18 16:03:15 +02:00
Dmitry
e18748ed15
Merge remote-tracking branch 'rust-analyzer/master'
2020-08-18 19:37:22 +07:00
bors[bot]
a3947129c5
Merge #5794
...
5794: Simplify building a symbol hierarchy
r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-08-18 12:32:32 +00:00
Aleksey Kladov
e01cfe2b45
Simplify building a symbol hierarchy
2020-08-18 14:29:31 +02:00
bors[bot]
b8dfc331ab
Merge #5682
...
5682: Add an option to disable diagnostics r=matklad a=popzxc
As far as I know, currently it's not possible to disable a selected type of diagnostics provided by `rust-analyzer`.
This causes an inconvenient situation with a false-positive warnings: you either have to disable all the diagnostics, or you have to ignore these warnings.
There are some open issues related to this problem, e.g.: https://github.com/rust-analyzer/rust-analyzer/issues/5412 , https://github.com/rust-analyzer/rust-analyzer/issues/5502
This PR attempts to make it possible to selectively disable some diagnostics on per-project basis.
Co-authored-by: Igor Aleksanov <popzxc@yandex.ru>
2020-08-18 12:04:49 +00:00
bors[bot]
2252a65f23
Merge #5687
...
5687: Fix document symbols order r=matklad a=magurotuna
Resolves #5655
And adds tests for `handle_document_symbol`, both with `hierarchical_symbols` enabled and with it disabled.
Previously document symbols were displayed in reverse order in sublime text with its LSP plugin, but this patch fixes it like this:
![image](https://user-images.githubusercontent.com/23649474/89709020-fbccce00-d9b6-11ea-83b0-c88dc9f7977f.png )
Co-authored-by: Yusuke Tanaka <yusuktan@maguro.dev>
2020-08-18 11:58:02 +00:00
Aleksey Kladov
9389e313d0
Minor
2020-08-18 13:20:28 +02:00
bors[bot]
a95c5e2121
Merge #5758
...
5758: SSR: Explicitly autoderef and ref placeholders as needed r=matklad a=davidlattimore
Structural search replace now inserts *, & and &mut in the replacement to match any auto[de]ref in the matched code.
e.g. `$a.foo() ==>> bar($a)` might convert `x.foo()` to `bar(&mut x)`
Co-authored-by: David Lattimore <dml@google.com>
2020-08-18 10:52:27 +00:00
David Lattimore
29e6238cb7
SSR: A few small refactorings
2020-08-18 20:39:55 +10:00
Igor Aleksanov
34847c8d96
Move analysis config structure to the config.rs
2020-08-18 13:35:36 +03:00
Igor Aleksanov
b56cfcca10
Make disabled diagnostics an argument of corresponding function
2020-08-18 13:32:29 +03:00
Aleksey Kladov
6cff076513
Revive cache cleaning
...
The idea here is that, on CI, we only want to cache crates.io
dependencies, and not local crates. This keeps the size of the cache
low, and also improves performance, as network and moving files on
disk (on Windows) can be slow.
2020-08-18 11:07:21 +02:00
CAD97
c822bb68ce
Fix missing match arm false error on unknown type
2020-08-17 13:27:12 -04:00
CAD97
2eaf79cfbb
Document missing match arm false positive
...
This should already be guarded against
(d2212a49f6/crates/hir_ty/src/diagnostics/expr.rs (L225-L230)
)
but it isn't preventing this false positive for some reason.
2020-08-17 13:19:15 -04:00
bors[bot]
7d95a8447c
Merge #5776 #5780
...
5776: Fix eslint errors on .eslintrc.js and rollup.config.js r=matklad a=fuafa
Eslint complains if these two files does not include in the `tsconfig.json`.
```
Parsing error: "parserOptions.project" has been set for @typescript-eslint/parser.
The file does not match your project config: .eslintrc.js.
The file must be included in at least one of the projects provided.eslint
```
![image](https://user-images.githubusercontent.com/20750310/90338269-176d4f80-e01b-11ea-8710-3ea817b235d2.png )
5780: Fixup whitespace when adding missing impl items r=matklad a=jDomantas
Generate properly formatted whitespace when adding impl items - with an empty line between items and removing extra whitespace that often appears at the end.
This is my first time working on rust analyzer so I'm not very familiar with its internal APIs. If there's a better way to do such syntax tree editing I'd be glad to hear it.
Co-authored-by: xiaofa <xiaofalzx@gmail.com>
Co-authored-by: jDomantas <djadenkus@gmail.com>
2020-08-17 14:30:24 +00:00
bors[bot]
6826dd044a
Merge #5782
...
5782: Fix StatusNotification r=matklad a=vsrs
This PR fixes the following:
As per specification `params` property in [NotificationMessage ](https://microsoft.github.io/language-server-protocol/specifications/specification-current/#notificationMessage ) should be `array | object` while RA uses `"loading" | "ready" | "invalid" | "needsReload"`.
Co-authored-by: vsrs <vit@conrlab.com>
2020-08-17 14:23:03 +00:00
Aleksey Kladov
6a4c9fc9fd
Don't make fields private unless you have to
2020-08-17 16:11:29 +02:00
vsrs
1eed036a6e
Fix StatusNotification
2020-08-17 14:56:27 +03:00
jDomantas
a565a42f46
format
2020-08-17 11:36:46 +03:00
jDomantas
38e3088a56
update generated tests
2020-08-17 10:47:13 +03:00
bors[bot]
0b2b9a5508
Merge #5766
...
5766: Hacky support for fn-like proc macros r=matklad a=jonas-schievink
It turns out that this is all that's needed to get something like this working:
```rust
#[proc_macro]
pub fn function_like_macro(_args: TokenStream) -> TokenStream {
TokenStream::from_str("fn fn_success() {}").unwrap()
}
```
```rust
function_like_macro!();
fn f() {
fn_success();
}
```
The drawback is that it also makes this work, because there is no distinction between different proc macro kinds in the rest of r-a:
```rust
#[derive(function_like_macro)]
struct S {}
fn f() {
fn_success();
}
```
Another issue is that it seems to panic, and then panic, when using this on the rustc code base, due to some issue in the inscrutable proc macro bridge code.
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
2020-08-16 20:03:06 +00:00
Jeremy Kolb
409090e74c
Chalk 0.23
2020-08-16 12:15:44 -04:00
Jeremy Kolb
7819e794db
Bump rustc_lexer
2020-08-16 11:57:10 -04:00
Yusuke Tanaka
e8e1eb4263
Remove test for handle_document_symbol
2020-08-17 00:19:29 +09:00
Paul Daniel Faria
3456e2eec7
Add new method to Semantics, method_receiver_kind, which returns the kind of self
...
The options are Shared, Mutable, Consuming, and Copied. Use this to add proper
highlighting to methods based on usage.
2020-08-16 10:26:16 -04:00
Paul Daniel Faria
a044ff0138
Mark mutating functions with mutable
modifier, and owning functions with consuming
.
2020-08-16 10:22:51 -04:00
Paul Daniel Faria
7009d5ee2b
Add new HighlightModifier variant, Consuming
2020-08-16 10:22:51 -04:00
Dave Lage
d31634940d
Fix typo in comment
2020-08-15 16:37:44 -04:00
Aleksey Kladov
0ca1ba29e8
Don't expose hir::Path out of hir
...
Conjecture: it's impossible to use hir::Path *correctly* from an IDE.
I am not entirely sure about this, and we might need to add it back at
some point, but I have to arguments that convince me that we probably
won't:
* `hir::Path` has to know about hygiene, which an IDE can't set up
properly.
* `hir::Path` lacks identity, but you actually have to know identity
to resolve it correctly
2020-08-15 18:50:41 +02:00
Aleksey Kladov
2052d33b9b
Remove deprecated Path::from_ast
...
Long term, we probably should make hir::Path private to hir.
2020-08-15 18:22:16 +02:00
Jonas Schievink
bee56e68a3
Hacky support for fn-like proc macros
2020-08-15 15:34:56 +02:00
Jonas Schievink
cb816b1ea8
Add a proc_macro_test crate
...
This exports all 3 kinds of proc macros and is useful for testing
2020-08-15 00:27:32 +02:00
Dmitry
73315c9168
synchronizing changes
2020-08-15 02:37:43 +07:00
Dmitry
178c3e135a
Merge remote-tracking branch 'origin/master'
2020-08-15 01:32:05 +07:00
Dmitry
06ff8e6c76
refactor requirements put forward mkladov
2020-08-15 01:25:08 +07:00
bors[bot]
c2594daf29
Merge #5347
...
5347: Chalk writer integration r=flodiebold a=detrumi
~~This adds a `rust-analyzer dump-chalk` command, similar to analysis-stats, which writes out the whole chalk progam (see [chalk#365](https://github.com/rust-lang/chalk/issues/365 ) for more info about the .chalk writer)~~
Write out chalk programs in debug output if chalk debugging is active (using `CHALK_DEBUG`).
Example output:
```
[DEBUG ra_hir_ty::traits] solve(UCanonical { canonical: Canonical { value: InEnvironment { environment: Env([]), goal: Implemented(SeparatorTraitRef(?)) }, binders: [] }, universes: 1 }) => None
[INFO ra_hir_ty::traits] trait_solve_query(Implements(fn min<?0.0>(?0.0, ?0.0) -> ?0.0: Deref))
[DEBUG ra_hir_ty::traits] solve goal: UCanonical { canonical: Canonical { value: InEnvironment { environment: Env([]), goal: Implemented(SeparatorTraitRef(?)) }, binders: [U0 with kind type] }, universes: 1 }
[DEBUG ra_hir_ty::traits::chalk] impls_for_trait Deref
[DEBUG ra_hir_ty::traits::chalk] impls_for_trait returned 0 impls
[DEBUG ra_hir_ty::traits::chalk] trait_datum Ord
[DEBUG ra_hir_ty::traits::chalk] trait Ord = Name(Text("Ord"))
[DEBUG ra_hir_ty::traits] chalk program:
#[upstream]
#[non_enumerable]
#[object_safe]
trait Ord {}
#[upstream]
#[non_enumerable]
#[object_safe]
#[lang(sized)]
trait Sized {}
fn fn_0<_1_0>(arg_0: _1_0, arg_1: _1_0) -> _1_0
where
_1_0: Ord;
#[upstream]
#[non_enumerable]
#[object_safe]
trait Deref {
type Assoc_1829: Sized;
}
[DEBUG ra_hir_ty::traits] solve(UCanonical { canonical: Canonical { value: InEnvironment { environment: Env([]), goal: Implemented(SeparatorTraitRef(?)) }, binders: [U0 with kind type] }, universes: 1 }) => None
[INFO ra_hir_ty::traits] trait_solve_query(Implements(?0.0: Ord))
```
Co-authored-by: Wilco Kusee <wilcokusee@gmail.com>
2020-08-14 17:02:55 +00:00
Dmitry
e7899625e6
restrict visibility only by crate
2020-08-14 23:22:23 +07:00
Dmitry
c8a6ecc075
Revert "replase sparse-checkout by github api"
...
This reverts commit 034db28c54
.
2020-08-14 23:09:47 +07:00
Dmitry
034db28c54
replase sparse-checkout by github api
2020-08-14 21:58:04 +07:00
Aleksey Kladov
125744c057
Rename hypothetical -> speculative
2020-08-14 15:23:27 +02:00
jDomantas
9f548a0295
fixup whitespace when adding missing impl items
2020-08-14 16:10:52 +03:00
Wilco Kusee
de282ddd86
Only print chalk programs with CHALK_PRINT
2020-08-14 14:52:07 +02:00
David Lattimore
a4a504e132
SSR: Explicitly autoderef and ref placeholders as needed
...
Structured search replace now inserts *, & and &mut in the replacement to match any auto[de]ref in the matched code.
2020-08-14 21:26:25 +10:00
David Lattimore
c84f98385a
Refactor SSR so that placeholders store a Var
...
This allows lookup of placeholder bindings given a placeholder without
needing to create a Var instance.
2020-08-14 20:12:26 +10:00
Wilco Kusee
36052ce1a1
Lookup adt names
2020-08-14 11:43:11 +02:00
Wilco Kusee
10c33275b0
Only use logging db if CHALK_DEBUG is active
2020-08-14 11:43:10 +02:00
Wilco Kusee
58e338a729
Print chalk programs in debug output
2020-08-14 11:43:10 +02:00
Igor Aleksanov
c26c911ec1
Merge branch 'master' into add-disable-diagnostics
2020-08-14 07:34:07 +03:00
Armin Sander
8fc254597f
Sophisticate Windows path encoding
2020-08-14 02:03:54 +02:00
Aleksey Kladov
9664c57e60
Make hygiene private to hir
2020-08-13 23:54:37 +02:00
bors[bot]
9930ef2536
Merge #5753
...
5753: Remove Hygiene from completion
r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-08-13 20:42:36 +00:00
Aleksey Kladov
86f89d9b31
Remove Hygiene from completion
2020-08-13 22:41:55 +02:00
Benjamin Coenen
947a27b797
display correctly 'impl Trait<T> + Trait<T>' #4814
...
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2020-08-13 22:13:34 +02:00
Aleksey Kladov
ef462ed6af
Better recovery in use foo::;
2020-08-13 18:50:21 +02:00
Aleksey Kladov
0e1cda3079
Minor
2020-08-13 18:17:53 +02:00
Aleksey Kladov
6bc2633c90
Align parser names with grammar
2020-08-13 17:59:27 +02:00
Aleksey Kladov
1b0c7701cc
Rename ra_ide -> ide
2020-08-13 17:58:27 +02:00
Aleksey Kladov
fc34403018
Rename ra_assists -> assists
2020-08-13 17:33:38 +02:00
Aleksey Kladov
ae3abd6e57
Rename ra_ssr -> ssr
2020-08-13 17:02:44 +02:00
Aleksey Kladov
bb5c189b7d
Rename ra_ide_db -> ide_db
2020-08-13 16:39:16 +02:00
Aleksey Kladov
ae71a631fd
Rename ra_hir -> hir
2020-08-13 16:36:55 +02:00
Aleksey Kladov
6a77ec7bbe
Rename ra_hir_ty -> hir_ty
2020-08-13 16:35:29 +02:00
Aleksey Kladov
b28c54a2c2
Rename ra_hir_def -> hir_def
2020-08-13 16:29:33 +02:00
Aleksey Kladov
b7aa4898e0
Rename ra_hir_expand -> hir_expand
2020-08-13 16:29:33 +02:00
Aleksey Kladov
ed20a857f4
Rename ra_db -> base_db
2020-08-13 16:29:33 +02:00
bors[bot]
902f74c269
Merge #5746
...
5746: Structured search replace now handles UFCS calls to trait methods r=matklad a=davidlattimore
Co-authored-by: David Lattimore <dml@google.com>
2020-08-13 14:21:35 +00:00
Aleksey Kladov
2119dc23e8
Rename ra_proc_macro -> proc_macro_api
2020-08-13 12:39:27 +02:00
David Lattimore
3100de842b
Structured search replace now handles UFCS calls to trait methods
2020-08-13 20:24:55 +10:00
bors[bot]
4abdf323af
Merge #5732
...
5732: Consider only IdentPats for param name hints r=matklad a=SomeoneToIgnore
Closes https://github.com/rust-analyzer/rust-analyzer/issues/4960
Avoid displaying any param name hints like
<img width="590" alt="image" src="https://user-images.githubusercontent.com/2690773/90071461-47a4ad80-dcfe-11ea-9330-fb4f4e2d1b71.png ">
Those hints seem to occupy plenty of space for no apparent benefit, with their destructured content not used in the code with the function hints.
I'm not entirely sure if we should show something else than `IdentPat`s, since I don't understand some of the `Pat` variant meanings:
a1c187eef3/crates/syntax/src/ast/generated/nodes.rs (L1336-L1352)
Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
2020-08-13 10:20:59 +00:00
bors[bot]
de1d93455f
Merge #5744
...
5744: Rename ra_project_model -> project_model r=matklad a=pksunkara
Co-authored-by: Pavan Kumar Sunkara <pavan.sss1991@gmail.com>
2020-08-13 10:10:03 +00:00
Pavan Kumar Sunkara
eac24d52e6
Rename ra_project_model -> project_model
2020-08-13 12:05:30 +02:00
Aleksey Kladov
c81f6230da
Remove ra_fmt crate
2020-08-13 11:59:42 +02:00
Aleksey Kladov
479235ff0b
Minor
2020-08-13 11:48:26 +02:00
Aleksey Kladov
80c241b39a
Minor
2020-08-13 11:44:39 +02:00
Aleksey Kladov
f0a9128761
Minor
2020-08-13 11:41:39 +02:00
Aleksey Kladov
b0f03db51d
Remove deprecated function
2020-08-13 11:37:54 +02:00
Aleksey Kladov
26b98b07aa
Cleanup **Move Guard** assist
2020-08-13 10:57:17 +02:00
Aleksey Kladov
7d9480c6eb
fmt
2020-08-13 10:36:04 +02:00
Aleksey Kladov
68c2238725
Rename ra_cfg -> cfg
2020-08-13 10:36:04 +02:00
Aleksey Kladov
5734cc8586
Simplify
2020-08-13 10:36:04 +02:00
Aleksey Kladov
3615758f8e
Minimize deps
2020-08-13 10:36:04 +02:00
Aleksey Kladov
2f45cfc415
Rename ra_mbe -> mbe
2020-08-13 10:36:04 +02:00
Aleksey Kladov
0e6b94de78
Minor
2020-08-13 10:36:04 +02:00
Pavan Kumar Sunkara
349e6c62ad
Rename ra_proc_macro_srv -> proc_macro_srv
2020-08-13 03:18:19 +02:00
Kirill Bulatov
0de795fc4c
Consider only IdentPats for param name hints
2020-08-13 00:44:16 +03:00
Aleksey Kladov
0635458a6b
**Merge Imports** assist handles self
2020-08-12 18:59:13 +02:00
Aleksey Kladov
a1c187eef3
Rename ra_syntax -> syntax
2020-08-12 18:30:53 +02:00
Aleksey Kladov
50a02eb359
Rename ra_parser -> parser
2020-08-12 17:14:23 +02:00
Aleksey Kladov
6dafc13f5f
Rename ra_text_edit -> text_edit
2020-08-12 17:03:06 +02:00
Aleksey Kladov
7510048ec0
Cleanup TextEdit API
2020-08-12 16:58:56 +02:00
Aleksey Kladov
8d34262956
Rename ra_toolchain -> toolchain
2020-08-12 16:52:28 +02:00
Aleksey Kladov
550d7fbe3c
Rename ra_tt -> tt
2020-08-12 16:46:54 +02:00
Aleksey Kladov
208b7bd7ba
Rename ra_prof -> profile
2020-08-12 16:35:29 +02:00
Igor Aleksanov
b50bb800a5
Merge branch 'master' into add-disable-diagnostics
2020-08-12 17:26:43 +03:00
Aleksey Kladov
98baa9b569
Rename ra_arena
2020-08-12 16:22:05 +02:00
bors[bot]
1e8b2c498a
Merge #5637
...
5637: SSR: Matching trait associated constants, types and functions r=matklad a=davidlattimore
This fixes matching of things like `HashMap::default()` by resolving `HashMap` instead of `default` (which resolves to `Default::default`).
Same for associated constants and types that are part of a trait implementation.
However, we still don't support matching calls to trait methods.
Co-authored-by: David Lattimore <dml@google.com>
2020-08-12 13:50:34 +00:00
bors[bot]
5b8fdfe231
Merge #5553
...
5553: Add fix ranges for diagnostics r=matklad a=SomeoneToIgnore
A follow-up of https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/Less.20red.20in.20the.20code
Now diagnostics can apply fixes in a range that's different from the range used to highlight the diagnostics.
Previous logic did not consider the fix range, having both ranges equal, which could cause a lot of red noise in the editor.
Now, the fix range gets used with the fix, the diagnostics range is used for everything else which allows to improve the error highlighting.
before:
<img width="191" alt="image" src="https://user-images.githubusercontent.com/2690773/88590727-df9a6a00-d063-11ea-97ed-9809c1c5e6e6.png ">
after:
<img width="222" alt="image" src="https://user-images.githubusercontent.com/2690773/88590734-e1fcc400-d063-11ea-9b7c-25701cbd5352.png ">
`MissingFields` and `MissingPatFields` diagnostics now have the fix range as `ast::RecordFieldList` of the expression with an error (as it was before this PR), and the diagnostics range as a `ast::Path` of the expression, if it's present (do you have any example of `ast::Expr::RecordLit` that has no path btw?).
The rest of the diagnostics have both ranges equal, same as it was before this PR.
Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
2020-08-12 13:44:13 +00:00
bors[bot]
11de7ac2fb
Merge #4743
...
4743: Add tracking of packed repr, use it to highlight unsafe refs r=matklad a=Nashenas88
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.
Fixes #4600
Co-authored-by: Paul Daniel Faria <Nashenas88@users.noreply.github.com>
Co-authored-by: Paul Daniel Faria <nashenas88@users.noreply.github.com>
Co-authored-by: Paul Daniel Faria <paulf@pop-os.localdomain>
2020-08-12 13:20:18 +00:00
bors[bot]
2d41cc0ea3
Merge #5722
...
5722: Replace SepBy with Itertools
r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-08-12 13:06:38 +00:00
Aleksey Kladov
1c359ab634
Replace SepBy with Itertools
2020-08-12 15:04:06 +02:00
bors[bot]
441fbe3b0a
Merge #5721
...
5721: Cleanup parser modifiers tests
r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-08-12 12:53:11 +00:00
Aleksey Kladov
f8bfd77e84
Cleanup parser modifiers tests
2020-08-12 14:52:37 +02:00
Igor Aleksanov
ae0b2477fe
Update crates/ra_ide/src/diagnostics.rs
...
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
2020-08-12 15:48:56 +03:00
Igor Aleksanov
831e3d58b3
Replace String with &'static str
2020-08-12 15:33:07 +03:00
Aleksey Kladov
f73a6419d4
Allow default everywhere
...
closes #5681
2020-08-12 14:28:32 +02:00
bors[bot]
42a1692629
Merge #5720
...
5720: Fix docs
r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-08-12 11:59:02 +00:00
Aleksey Kladov
c9a42c7c46
Fix docs
2020-08-12 13:56:58 +02:00
bors[bot]
4b3d99f98f
Merge #5699
...
5699: Fix clippy warnings r=matklad a=popzxc
Currently clippy spawns a bunch of warnings on the `rust-analyzer` project. Nothing critical, but easy to fix, so I guess it won't harm.
Co-authored-by: Igor Aleksanov <popzxc@yandex.ru>
2020-08-12 11:51:53 +00:00
Igor Aleksanov
fcd4b0176f
Revert style preference-related fixes
2020-08-12 14:08:55 +03:00
bors[bot]
e471cb2a12
Merge #5718
...
5718: Deny clippy
r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-08-12 10:51:02 +00:00
Aleksey Kladov
49af51129b
Deny clippy
2020-08-12 12:49:48 +02:00
bors[bot]
d0fd8eb7f6
Merge #5717
...
5717: Minor
r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-08-12 10:35:18 +00:00
Jonas Schievink
b27d5233bb
Merge pull request #5716 from jonas-schievink/musl
...
Fix build on musl and test it in CI
2020-08-12 12:31:17 +02:00
Jonas Schievink
67b2b3d0ce
Fix build on musl and test it in CI
2020-08-12 12:23:25 +02:00
Aleksey Kladov
96001921fc
Minor
2020-08-12 12:21:03 +02:00
bors[bot]
87429768bd
Merge #5711
...
5711: Display snippet in the completion label r=matklad a=SomeoneToIgnore
Before, the completion did not show the actual snippet and it was hard to understand what to input to get the right snippet:
<img width="467" alt="image" src="https://user-images.githubusercontent.com/2690773/89941040-21f6a600-dc23-11ea-94b8-61f77f88feaf.png ">
<img width="367" alt="image" src="https://user-images.githubusercontent.com/2690773/89941046-23c06980-dc23-11ea-8034-6c4e14357c94.png ">
Now it's more clear:
<img width="315" alt="image" src="https://user-images.githubusercontent.com/2690773/89941124-42befb80-dc23-11ea-9fcc-5fd49cc92b74.png ">
<img width="210" alt="image" src="https://user-images.githubusercontent.com/2690773/89941132-4488bf00-dc23-11ea-99c2-12ec66e0a044.png ">
Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
2020-08-12 10:00:08 +00:00
Aleksey Kladov
8aba6bfef5
Simplify
2020-08-12 10:14:08 +02:00
Kirill Bulatov
7543b06d30
Display snippet in the completion label
2020-08-11 22:33:17 +03:00
Kirill Bulatov
db12ccee96
Better naming and docs
2020-08-11 17:52:05 +03:00
Kirill Bulatov
188ec3459e
Simplify fix structure
2020-08-11 17:13:40 +03:00
Kirill Bulatov
37aa68f050
Add rustdocs
2020-08-11 15:09:08 +03:00
Kirill Bulatov
c8cad76d25
Improve the ide diagnostics trait API
2020-08-11 15:09:08 +03:00
Kirill Bulatov
29fbc8e021
Move the DiagnosticsWithFix trait on the ide level
2020-08-11 15:09:08 +03:00
Kirill Bulatov
9368619939
Make the fix AST source Optional
2020-08-11 15:09:08 +03:00
Kirill Bulatov
9963f43d51
Refactor the diagnostics
2020-08-11 15:09:08 +03:00
Kirill Bulatov
cfbbd91a88
Require source implementations for Diagnostic
2020-08-11 15:09:08 +03:00
Kirill Bulatov
21184a1b2a
Restore accidentally removed public method
2020-08-11 15:09:08 +03:00
Kirill Bulatov
cb0b13a583
Fix another missing fields diagnostics
2020-08-11 15:09:08 +03:00
Kirill Bulatov
ee1586c1ed
Better naming
2020-08-11 15:09:08 +03:00
Kirill Bulatov
a61f2445cb
Less stubs
2020-08-11 15:09:08 +03:00
Kirill Bulatov
21e5224484
Custom ranges for missing fields
2020-08-11 15:09:08 +03:00
Kirill Bulatov
26e102a567
Separate diagnostics and diagnostics fix ranges
2020-08-11 15:09:08 +03:00
bors[bot]
e0de247520
Merge #5708
...
5708: Use Hygiene in completion r=jonas-schievink a=lnicola
Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2020-08-11 10:30:39 +00:00
bors[bot]
ef20dfc78d
Merge #5707
...
5707: Address some FIXMEs for ra_assists r=jonas-schievink a=JmPotato
Signed-off-by: JmPotato <ghzpotato@gmail.com>
Co-authored-by: JmPotato <ghzpotato@gmail.com>
2020-08-11 10:22:57 +00:00
JmPotato
6ef019bd46
Revert some FIXMEs
...
Signed-off-by: JmPotato <ghzpotato@gmail.com>
2020-08-11 17:19:02 +08:00
JmPotato
7fbc9afca4
Typo fix
...
Signed-off-by: JmPotato <ghzpotato@gmail.com>
2020-08-11 16:50:45 +08:00
Laurențiu Nicola
fc01c7846d
Use Hygiene in completion
2020-08-11 10:09:50 +03:00
JmPotato
b69dfddb57
Remove redundant dependencies
...
Signed-off-by: JmPotato <ghzpotato@gmail.com>
2020-08-11 14:35:15 +08:00
JmPotato
ace75f9590
Typo fix
...
Signed-off-by: JmPotato <ghzpotato@gmail.com>
2020-08-11 12:09:11 +08:00
JmPotato
dc6e1e0dac
Address some FIXMEs
...
Signed-off-by: JmPotato <ghzpotato@gmail.com>
2020-08-11 10:55:26 +08:00