bors
fc36e0ca16
Auto merge of #17907 - ChayimFriedman2:no-once_cell, r=Veykril
...
internal: Replace once_cell with std's recently stabilized OnceCell/Lock and LazyCell/Lock
This doesn't get rid of the once_cell dependency, unfortunately, since we have dependencies that use it, but it's a nice to do cleanup. And when our deps will eventually get rid of once_cell we will get rid of it for free.
2024-08-16 07:05:59 +00:00
Chayim Refael Friedman
955e609867
Replace once_cell with std's recently stabilized OnceCell/Lock and LazyCell/Lock
...
This doesn't get rid of the once_cell dependency, unfortunately, since we have dependencies that use it, but it's a nice to do cleanup. And when our deps will eventually get rid of once_cell we will get rid of it for free.
2024-08-16 09:53:37 +03:00
bors
f3d9c9df90
Auto merge of #17876 - Veykril:semantics-include-simplify, r=Veykril
...
internal: Remove unreachable logic for include token mapping
Turns out https://github.com/rust-lang/rust-analyzer/pull/17863 made this obsolete 🎉
2024-08-13 07:48:55 +00:00
Lukas Wirth
bd4785a6f0
Remove unreachable logic for include token mapping
2024-08-13 09:44:13 +02:00
bors
518532426d
Auto merge of #17863 - Veykril:include-diags, r=Veykril
...
fix: Resolve included files to their calling modules in IDE layer
Fixes https://github.com/rust-lang/rust-analyzer/issues/17390 at the expense of reporting duplicate diagnostics for modules that have includes in them when both the calling and called file are included.
2024-08-12 11:48:32 +00:00
Lukas Wirth
2362975137
Resolve included files to their calling modules in IDE layer
2024-08-12 13:45:33 +02:00
Lukas Wirth
ded3e21fdd
fix: Correctly support #[rustc_deprecated_safe_2024]
2024-08-12 10:56:59 +02:00
Vincent Esche
7dec7e92ea
Replace [package.repository] = "…"
of published crates with [package.repository.workspace] = true
2024-08-06 00:26:42 +02:00
Vincent Esche
624f2ead7b
Unify package descriptions by adding references to "rust-analyzer"
...
With the lack of a README on the individually published library crates and the somewhat cryptic `ra_ap_` prefix it is hard to figure out where those crates belong to, so mentioning "rust-analyzer" feels like auseful hint there.
2024-08-06 00:25:02 +02:00
Vincent Esche
ddb9686246
Fix spelling of "object-oriented"
2024-08-06 00:25:02 +02:00
Vincent Esche
6f329e6d5b
Add repository URL for published crates' missing [package.repository]
fields
2024-08-06 00:25:02 +02:00
Vincent Esche
b5b0f4bc5a
Replace "TBD"
with more helpful desciptions in published crates' [package.description]
fields
2024-08-06 00:25:02 +02:00
Shoyu Vanilla
8a51419a2d
feat: Implement diagnostic for await
outside of async
2024-08-05 21:47:57 +09:00
Lukas Wirth
d46060b168
Fix error spans for include! and compile_error!
2024-07-29 15:57:01 +02:00
Lukas Wirth
ae9c553902
Make basic use of spans for macro expansion errors
2024-07-29 14:52:40 +02:00
Lukas Wirth
7beac14cba
Internal: Cleanup proc-macro error handling
2024-07-26 14:38:19 +02:00
Lukas Wirth
f2fa456a8c
Fix incorrect handling of cfg'd varargs
2024-07-25 11:02:19 +02:00
Lukas Wirth
9cbafa2d49
Remove Params and Fields from AstIdMap
2024-07-25 10:22:05 +02:00
Vincent Esche
acb50efb3a
Add method Impl::all_in_module(…)
for supporting more localized querying
2024-07-23 14:43:38 +02:00
Lukas Wirth
7c374a10bd
internal: Shrink size of Binding
2024-07-22 17:14:17 +02:00
Lukas Wirth
5806950712
Remove incorrect never! invocations
2024-07-22 10:53:18 +02:00
Lukas Wirth
5264f86242
Encode edition within FileId in the hir layer
2024-07-18 08:49:10 +02:00
Lukas Wirth
2346a80ab4
Remove Name::to_smol_str
2024-07-16 12:43:58 +02:00
Lukas Wirth
df5f1777b8
More symbol usage
2024-07-16 12:05:16 +02:00
Lukas Wirth
93024ad411
Switch token trees to use Symbols
2024-07-16 10:11:59 +02:00
Lukas Wirth
e846c04fbe
Encode ident rawness and literal kind separately in tt::Leaf
2024-07-15 12:24:40 +02:00
Lukas Wirth
f2d51073d2
Use statics + clone instead of const until const can access statics
2024-07-14 17:52:59 +02:00
Lukas Wirth
3fe815b0f3
Use Symbol in Name
2024-07-12 16:06:44 +02:00
beetrees
d5db933f9d
Add f16
and f128
support
2024-07-10 10:43:14 +01:00
Lukas Wirth
966798b7ba
Make GenericParams::lifetimes private
2024-07-02 13:45:53 +02:00
Lukas Wirth
be1ea4028b
Make GenericParams::where_predicates private
2024-07-02 13:45:50 +02:00
Lukas Wirth
372e2d22e6
Make GenericParams::type_or_consts private
2024-07-02 13:45:48 +02:00
Lukas Wirth
1a929d6485
Fix lifetime parameters moving paramter defaults
2024-07-02 12:34:32 +02:00
bors
ea7fdada6a
Auto merge of #17520 - Veykril:slim-proc-macro-api, r=Veykril
...
internal: Cleanup proc-macro-srv some more
2024-06-30 15:12:50 +00:00
Lukas Wirth
21a3d01875
Remove inline rust_2018_idioms, unused_lifetimes
lint warn, Cargo.toml already enforces this
2024-06-30 15:23:54 +02:00
bors
56ef2404b3
Auto merge of #17516 - kilpkonn:master, r=kilpkonn
...
Quality of life improvements to term search
Basically two things:
- Allow optionally disabling "borrow checking" restrictions on term search code assists. Sometimes it is better to get invalid suggestions and fix borrow checking issues later...
- Remove explicit generics in generated expressions. I find it quite rare that one writes `None::<T>` instead of `None`.
2024-06-30 12:41:22 +00:00
Tavo Annus
c19458270d
Do not explicit generics to generated expressions
2024-06-30 15:19:19 +03:00
Lukas Wirth
5374ebbf36
Simplify
2024-06-30 14:00:55 +02:00
Lukas Wirth
bfb187aacd
Fix expression scope calculation when within macro expansions
2024-06-30 13:26:17 +02:00
Lukas Wirth
8df034d453
Shrink mbe's Op
2024-06-24 10:07:32 +02:00
Lukas Wirth
3168ab5b99
Enum variants are not generic def ids
2024-06-24 10:07:31 +02:00
bors
db69df3216
Auto merge of #17478 - kilpkonn:master, r=Veykril
...
Simplify some term search tactics
Working on the paper `@phijor` found that "Data constructor" tactic could be simplified quite a bit by running it only in the backwards direction. With n+1 rounds it has same coverage as previous implementation in n rounds, however the tactic it self is more simple and also potentially faster as there is less to do.
In a nutshell the idea is to only work with types in the wish-list rather than with any types.
Turns out it is quite a bit faster:
Before:
```
ripgrep:
Tail Expr syntactic hits: 238/1692 (14%)
Tail Exprs found: 1223/1692 (72%)
Term search avg time: 15ms
nalgebra:
Tail Expr syntactic hits: 125/3001 (4%)
Tail Exprs found: 2143/3001 (71%)
Term search avg time: 849ms
```
After
````
ripgrep:
Tail Expr syntactic hits: 246/1692 (14%)
Tail Exprs found: 1209/1692 (71%)
Term search avg time: 8ms
nalgebra:
Tail Expr syntactic hits: 125/3001 (4%)
Tail Exprs found: 2028/3001 (67%)
Term search avg time: 305ms
````
_Also removed niche optimization of removing scope defs from the search space as this wasn't helping much anyway and made code a bit more complex._
2024-06-24 07:20:50 +00:00
Tavo Annus
51c3bd215a
Fix suggestions of unstable constants
2024-06-22 21:33:58 +03:00
Tavo Annus
3825d8bd0f
Increase search depth to account for more granual steps
2024-06-22 15:06:07 +03:00
Tavo Annus
b4f3eb48db
Simplify impl_method
tactic
2024-06-22 14:22:56 +03:00
Tavo Annus
23d3ac70e9
Simplify impl_static_method
tactic
2024-06-22 14:14:42 +03:00
Tavo Annus
a3315fe028
Remove remove not-very-helpful optimizations
2024-06-22 10:17:33 +03:00
Tavo Annus
957325a5fe
Run data_constructor
tactic only backwards
2024-06-21 22:01:06 +03:00
roife
d5bb2f0cba
fix: use ItemInNs::Macros to convert ModuleItem to ItemInNs
2024-06-21 21:05:14 +08:00
bors
e08f7953f4
Auto merge of #17462 - Veykril:sema-attr-macro-res, r=Veykril
...
fix: Fix IDE features breaking in some attr macros
Fixes https://github.com/rust-lang/rust-analyzer/issues/17453 , Fixes https://github.com/rust-lang/rust-analyzer/issues/17458
2024-06-20 09:11:44 +00:00
Lukas Wirth
ee8a3458ee
fix: Fix IDE features breaking in some attr macros
2024-06-20 11:00:19 +02:00
bors
6738f81b12
Auto merge of #17419 - ishanjain28:filter_builtin_macro_expansion, r=Veykril
...
Filter builtin macro expansion
This PR adds a filter on the types of built in macros that are allowed to be expanded.
Currently, This list of allowed macros contains, `stringify, cfg, core_panic, std_panic, concat, concat_bytes, include, include_str, include_bytes, env` and `option_env`.
Fixes #14177
2024-06-20 08:39:17 +00:00
Lukas Wirth
bf9a7264d1
Invert matching on builtin macros in expand_allowed_builtins
2024-06-20 10:31:20 +02:00
Ishan Jain
19d9bb808d
removed format_args from allowed expansions
2024-06-19 16:58:48 +05:30
Tavo Annus
c87609fef1
Add tactic for associated item constants
2024-06-18 22:08:44 +03:00
Ishan Jain
020537cd06
Created expand_allowed_builtins, updated expand_macro to call this function
2024-06-15 15:20:46 +05:30
Ishan Jain
2df806a3a5
allow format_args! expansion
2024-06-14 10:13:41 +05:30
Ishan Jain
0adb0e114f
fixed tests
2024-06-14 09:52:46 +05:30
Wilfred Hughes
d68e549205
internal: Fix rustdoc warnings
...
`cargo doc` generates a bunch of warnings on rust-analyzer. Fix all the
bare URL and empty code block warnings.
2024-06-13 17:29:10 -07:00
Ishan Jain
5d5f68af3f
hir/semantics: Only allow expansion of specific built in macros
2024-06-13 10:45:11 +05:30
bors
22648b2655
Auto merge of #17405 - Veykril:modpath-clone, r=Veykril
...
internal: Don't unnecessarily clone ModPaths in early name res
2024-06-12 09:27:49 +00:00
Lukas Wirth
855282fa53
internal: Don't unnecessarily clone ModPaths in early name res
2024-06-12 11:25:19 +02:00
roife
224d0dd36e
refactor: move the logic that displays container type bounds to function fmt
2024-06-11 21:02:13 +08:00
roife
ab7c7d4501
fix: skip container header if no generics params
2024-06-11 21:02:13 +08:00
roife
9f70f87d35
internal: simplify and rename display_xxx to write_xxx for consistency
2024-06-11 21:02:13 +08:00
roife
78118f98f6
feat: add hover config for showing container bounds
2024-06-11 21:02:13 +08:00
roife
184ddc6f5b
feat: show type bounds from containers for functions
2024-06-11 21:02:13 +08:00
roife
af1291bbf3
internal: simplify and refactor write_where_clause
2024-06-11 21:02:13 +08:00
Lukas Wirth
30c04d5aa9
Remove extra parse cache from Semantics again
2024-06-10 12:04:35 +02:00
Lukas Wirth
8520a0c585
Thread more HasSource::source calls through Semantics for caching
2024-06-10 10:33:07 +02:00
Lukas Wirth
d4dc3ca83b
Register virtual workspace Cargo.toml files in the VFS
2024-06-09 12:54:50 +02:00
Wilfred Hughes
27182bb96b
chore: Prefer tracing span shorthand macros
2024-06-06 16:52:25 -07:00
Vincent Esche
78f31696da
Resolve #17344 by using .get(…)
instead of […]
in TypeOrConstParam::source(…)
...
(… and `LifetimeParam::source(…)`)
2024-06-05 11:03:56 +02:00
Lukas Wirth
9349045e09
Use dyn cache for Semantics macro resolution
2024-06-04 16:25:38 +02:00
Lukas Wirth
7d40763c88
Cache parse trees in Semantics
2024-06-04 15:29:24 +02:00
Lukas Wirth
c12f093716
Cache file_to_def
in SourceToDefCtx
2024-06-04 15:23:02 +02:00
Lukas Wirth
97b58f2846
Try caching macro calls more aggressively
2024-06-04 15:23:00 +02:00
Lukas Wirth
6f0207d594
Cleanup some inert attribute stuff
2024-06-04 12:38:20 +02:00
Lukas Wirth
60fa981df1
Simplify
2024-06-03 19:06:58 +02:00
bors
cb6b808185
Auto merge of #17315 - hamirmahal:style/simplify-string-interpolation, r=Veykril
...
style: simplify string interpolation
2024-06-03 12:29:27 +00:00
bors
9edc30a42b
Auto merge of #17312 - regexident:function-fn-ptr-type, r=Veykril
...
Add `Function::fn_ptr_type(…)` for obtaining name-erased function type
The use case of this function if being able to group functions by their function ptr type.
cc `@flodiebold`
2024-06-03 12:16:29 +00:00
Lukas Wirth
3116f76fba
feat: Enable completions within derive helper attributes
2024-06-02 09:45:57 +02:00
Lukas Wirth
c0171bdd32
fix: Fix container search failing for tokens originating within derive attributes
2024-06-01 20:57:29 +02:00
Hamir Mahal
7c34eb3880
style: simplify string interpolation
2024-05-30 16:18:49 -07:00
Vincent Esche
7b75f1113c
Add Function::fn_ptr_type(…)
for obtaining name-erased function type
2024-05-29 19:41:55 +02:00
Tavo Annus
0f6842700f
Fix data_constructor
ignoring generics for struct
2024-05-25 13:09:26 +03:00
David Barsky
a0d3a81a19
fix: ensure implied bounds from associated types are considered in autocomplete
2024-05-22 16:16:20 -04:00
David Barsky
b75301cec8
internal: refactor prefer_no_std
/prefer_prelude
bools into a struct
2024-05-22 20:46:30 +02:00
bors
6a16749eb0
Auto merge of #17277 - Veykril:find-path-fixes, r=Veykril
...
fix: Various find path fixes
Fixes https://github.com/rust-lang/rust-analyzer/issues/17271
2024-05-22 18:22:32 +00:00
Lukas Wirth
760ad445e2
Update assists test fixtures
2024-05-22 14:46:33 +02:00
Lukas Wirth
c88b421853
fix: Fix general find-path inconsistencies
2024-05-22 14:05:24 +02:00
Lukas Wirth
7bd343e085
Show fn traits in signature info for trait implementors
2024-05-18 16:22:59 +02:00
Lukas Wirth
ff79903cf6
Render closure fn trait kind in siganture help
2024-05-18 15:01:37 +02:00
Lukas Wirth
7c6f31a45b
Allow hir::Param to refer to other entity params aside from functions
2024-05-18 12:35:55 +02:00
Lukas Wirth
cd9e90cc71
Update builtin tool list
2024-05-18 10:52:05 +02:00
Lukas Wirth
aaa5426fec
internal: Add StaticLifetime to hir API
2024-05-16 08:02:51 +02:00
bors
b98690ba74
Auto merge of #17221 - Veykril:lazier-validation, r=Veykril
...
internal: Lazier macro parse tree validation
2024-05-13 15:16:46 +00:00
Lukas Wirth
caddcccea5
parse_macro_expansion_error
almost never contains values so Option
it
2024-05-13 17:02:08 +02:00
Lukas Wirth
56552f4839
Push macro-parsing error calculation out of fundamental queries
2024-05-13 16:56:26 +02:00
bors
40ab5e5f8c
Auto merge of #17220 - Veykril:hov-lit, r=Veykril
...
fix: Improve confusing literal hovers
2024-05-13 10:58:29 +00:00