bors
b7cdd93f3e
Auto merge of #14747 - oxalica:feat/arena-idx-range, r=HKalbasi
...
More APIs for `la_arena::IdxRange`
```rust
impl<T> ExactSizeIterator for IdxRange<T>;
impl<T> Arena<T> {
pub fn alloc_many<II: IntoIterator<Item = T>>(&mut self, iter: II) -> IdxRange<T>;
}
```
1. There are no currently ways to get `IdxRange` without manually offseting `Idx`. Providing a method for multiple-allocation simplifies this process and makes it less error-prone.
2. `IdxRange: ExactSizeIterator` makes `iter.zip(range).rev()` possible. Since `Zip: DoubleEndedIterator` requires all its arguments to be `ExactSizeIterator`. It also ease the usage for, eg. `len()`.
3. Fixed a typo.
I noticed that `IdxRange::end` may be invalid. Is it good to return `Idx` instead of `RawIdx`?
2023-05-09 17:36:48 +00:00
Ariel Davis
db40fef6b1
Improve lib readme
2023-05-07 02:41:44 -07:00
Ariel Davis
60056b8845
Expose len
2023-05-06 15:44:37 -07:00
Ariel Davis
9d4d45215a
Rename
2023-05-06 15:44:09 -07:00
Ariel Davis
369e430b05
Improve doc
2023-05-06 15:42:15 -07:00
Ariel Davis
1cf74802ab
Improve docs
2023-05-06 15:14:02 -07:00
Ariel Davis
ed498b6eff
Rm out of bounds
2023-05-06 15:11:18 -07:00
Ariel Davis
cc2936b93e
Use size field
2023-05-06 15:10:35 -07:00
Ariel Davis
510050ecdc
Add more types
2023-05-06 15:09:34 -07:00
Ariel Davis
7a7f90cf28
Use de morgan
2023-05-06 15:06:51 -07:00
Ariel Davis
7cdca727a8
Use all not instead of find is none
2023-05-06 15:06:23 -07:00
Ariel Davis
e4d053e794
Rm into
2023-05-06 15:05:38 -07:00
Ariel Davis
1bc6bca478
Use checked
2023-05-06 15:05:03 -07:00
oxalica
add94d3b9c
Impl FusedIterator
for IdxRange
2023-05-06 22:02:30 +08:00
oxalica
665c0cb547
Forward Iterator::{count,last,nth}
for IdxRange
random access
2023-05-06 22:00:04 +08:00
Alexis (Poliorcetics) Bourget
c5e0607915
fix(todo): implement IntoIterator for ArenaMap<IDX, V>
2023-05-06 15:37:38 +02:00
oxalica
86eaf53600
Fix typo in docs
2023-05-06 21:27:35 +08:00
oxalica
4e4940e21e
Add Arena::alloc_many
to easily get IdxRange
...
There are no currently ways to get `IdxRange` without manually offseting
`Idx`. Providing a method for multiple-allocation simplifies this
process and makes it less error-prone.
2023-05-06 21:21:00 +08:00
oxalica
300f3a1b43
Impl ExactSizeIterator
for IdxRange
2023-05-06 21:15:57 +08:00
Ariel Davis
343976fe56
Return None for too-large offset
2023-05-06 02:08:47 -07:00
Ariel Davis
e8a93306f0
Remove 0 TextSize at front
2023-05-06 01:46:33 -07:00
Ariel Davis
6500487735
Rename
2023-05-06 01:37:25 -07:00
Ariel Davis
0ad2450396
Check for inside multibyte
2023-05-06 01:05:28 -07:00
Ariel Davis
902b3438c9
Use try_line_col
2023-05-06 01:04:41 -07:00
Ariel Davis
d683e22021
Use u32 more
2023-05-06 01:03:18 -07:00
Ariel Davis
8012acc90e
Use a from
2023-05-06 01:02:37 -07:00
Ariel Davis
84a6cb3bfc
Inline
2023-05-06 00:59:56 -07:00
Ariel Davis
02e8bb0c6e
Return Option
2023-05-06 00:57:57 -07:00
Ariel Davis
9de213c4fe
Swap, tweak comments
2023-05-06 00:56:30 -07:00
Ariel Davis
0bb21533c6
Tweak comments, swap
2023-05-06 00:52:11 -07:00
Ariel Davis
594a41e7bf
Use pre.1, tweak comment
2023-05-06 00:51:25 -07:00
Ariel Davis
1ad0779a00
Make WideEncoding non-exhaustive
2023-05-06 00:49:23 -07:00
Ariel Davis
59b4916294
Swap
2023-05-06 00:49:23 -07:00
Ariel Davis
663e11c4b0
Move some tests
2023-05-06 00:49:23 -07:00
Ariel Davis
da5c63c8f9
Use boxed slice
...
As well as doing the shrink_to_fit, we also don't have to keep track of
the capacity anymore.
2023-05-06 00:49:23 -07:00
Ariel Davis
d9c88460e4
Use cur
2023-05-06 00:49:23 -07:00
Ariel Davis
4b7c759f2f
Un-doc a comment
2023-05-06 00:49:23 -07:00
Ariel Davis
4a1922fd1a
Depend on nohash-hasher individually
2023-05-06 00:49:23 -07:00
Ariel Davis
1d678cf6a0
Allow clippy
2023-05-06 00:49:23 -07:00
Ariel Davis
71c4a8968d
Pub use TextRange, TextSize
2023-05-06 00:49:23 -07:00
Ariel Davis
5e2c68f4d4
Use less
2023-05-06 00:49:23 -07:00
Ariel Davis
39ef368e75
Remove pub(crate)
2023-05-06 00:49:23 -07:00
Ariel Davis
4b28ad92e9
Make text-size a workspace dep
2023-05-06 00:49:23 -07:00
Ariel Davis
85dd7b22b4
Use nohash_hasher, rm comment
2023-05-06 00:49:23 -07:00
Ariel Davis
7e1992a0d9
Make line-index an external lib
2023-05-06 00:49:23 -07:00
Ariel Davis
29256f22e4
Make non-hash an external lib
2023-05-06 00:49:23 -07:00
KatKlo
1db2a2536c
Fix bug with notifications during initialization
2023-04-15 19:31:02 +02:00
Lukas Wirth
ce0896b78c
Allocate ExprScopes ScopeEntries in a single arena instead of per ScopeData
2023-04-14 12:05:11 +02:00
Lukas Wirth
7f0fbf7f9d
Switch crate graph to use an Arena instead of a hashmap
2023-04-05 10:32:02 +02:00
Lukas Wirth
bea1c71f83
Use struct_tail_without_normalization in Expectation::rvalue_hint
2023-03-29 14:49:06 +02:00
bors
992a0fc074
Auto merge of #14403 - Veykril:dependencies, r=Veykril
...
internal: Bump Cargo.lock
2023-03-25 14:15:10 +00:00
Lukas Wirth
39e86e78c3
Bump Cargo.lock
2023-03-25 15:12:39 +01:00
hkalbasi
051dae2221
Support record pattern MIR lowering
2023-03-17 13:08:36 +03:30
hkalbasi
ac04bfd7a7
Add View Mir
command and fix some bugs
2023-03-06 21:09:09 +03:30
Lukas Wirth
38144fd914
Bump lsp-types
2023-02-14 14:59:50 +01:00
Maybe Waffle
41fda76152
simplify is_exit
check
2023-01-31 11:01:01 +00:00
Lukas Wirth
9eb50d3cde
Make it clearer when the server expects an initialized notification
2023-01-09 17:03:36 +01:00
Daniel Eades
77051679d7
use inline format args
2023-01-02 14:52:32 +00:00
Yuri Astrakhan
e16c76e3c3
Inline all format arguments where possible
...
This makes code more readale and concise,
moving all format arguments like `format!("{}", foo)`
into the more compact `format!("{foo}")` form.
The change was automatically created with, so there are far less change
of an accidental typo.
```
cargo clippy --fix -- -A clippy::all -W clippy::uninlined_format_args
```
2022-12-24 14:36:10 -05:00
hkalbasi
86b5b609f1
Compute data layout of types
2022-12-04 00:29:34 +03:30
Laurențiu Nicola
e93a2bff67
Pin lsp-types
2022-10-25 15:03:35 +03:00
Laurențiu Nicola
956b96a19d
Switch to upstream positionEncoding
2022-10-25 14:43:26 +03:00
Laurențiu Nicola
cbce0cda08
Bump anyhow, arbitrary, itertools, semver, serde
2022-10-15 12:52:34 +03:00
Lukas Wirth
1a6c1595fe
Don't retry requests that have already been cancelled
2022-09-27 17:39:15 +02:00
Alan Zimmerman
fb0ce25d59
Add RequestFailed error code, as per spec 3.17
...
See https://github.com/microsoft/language-server-protocol/issues/1341
2022-09-23 09:49:44 +01:00
Lukas Wirth
8828049b23
Lift out the module scope into a field in the Resolver
...
A Resolver *always* has a module scope at the end of its scope stack,
instead of encoding this as an invariant we can just lift this scope
out into a field, allowing us to skip going through the scope vec
indirection entirely.
2022-09-02 17:02:12 +02:00
wuaoxiang
2c0d2e719d
internal: remove unnecessary stream writer try_clone in lsp-server
2022-08-22 11:25:21 +08:00
KaDiWa
232176b46a
remove imports that are also in edition 2021's prelude
2022-08-09 01:16:32 +02:00
oxalica
326ffee5b7
Returns the old value for la_arena::ArenaMap::insert
2022-08-07 04:53:23 +08:00
oxalica
1a94193602
Impl more methods and traits for la_arena::ArenaMap
2022-08-07 04:52:49 +08:00
oxalica
10f870eff4
Impl entry-API for la_arena::ArenaMap
...
We enforce integral and `Copy` key, so some key-related functions are
not necessary since user can just reuse the index for the `entry` call.
2022-08-03 18:31:52 +08:00
oxalica
c203ac2cf5
Add more constructors for la-arena
2022-08-03 17:44:06 +08:00
Amos Wenger
816f7fe12a
Run cargo fix --edition-idioms
2022-07-20 15:02:08 +02:00
Amos Wenger
23d25a3094
Enable extra warnings required by rust-lang/rust
2022-07-20 15:00:17 +02:00
Jonas Schievink
6c6ae965ba
Update remaining GitHub URLs
2022-07-08 15:44:49 +02:00
Laurențiu Nicola
212f84ab46
Bump crossbeam-channel
2022-07-03 09:56:58 +03:00
Lukas Wirth
76ae5434fa
internal: Bump Dependencies
2022-06-10 17:30:02 +02:00
Aleksey Kladov
57cb65bb7a
internal: vendor lsp-server
2022-05-14 21:15:43 +01:00
Alex Touchet
940ec0967a
Update repo URL
2022-04-13 16:54:24 -07:00
Laurențiu Nicola
8457ae34bd
Set MSRV
2021-10-23 15:07:11 +03:00
Lukas Wirth
1294bfce86
Migrate to edition 2021
2021-10-21 20:10:40 +02:00
Aramis Razzaghipour
dce5c640f8
Move IdxRange
into la_arena
2021-10-15 13:03:28 +11:00
Aramis Razzaghipour
55c0b86cde
Add semicolons for consistency
...
`clippy::semicolon_if_nothing_returned`
2021-10-03 23:39:43 +11:00
Aleksey Kladov
e20a1a4e4e
minor: publish la_arena
2021-07-20 14:33:08 +03:00
Aleksey Kladov
f4de2ece0d
internal: simplify handling of the build scripts
2021-07-18 11:29:22 +03:00
Aleksey Kladov
86720f2953
minor: drop dummy authors field
2021-07-05 14:19:41 +03:00
Jonas Schievink
7c0c713a10
Intern GenericParams
...
Also share the same instance between `ItemTree` and `generic_params`
query.
2021-04-05 03:50:10 +02:00
Jonas Schievink
d1bce6070d
Use shrink_to_fit to reduce DefMap sizes
2021-04-03 23:45:27 +02:00
Aleksey Kladov
1c8feac01f
⬆️ arena
2021-01-17 11:43:04 +03:00
Aramis Razzaghipour
1d103cf087
Use ‘index’ terminology for arena consistently
2021-01-17 18:38:08 +11:00
bors[bot]
3224ecea87
Merge #7276
...
7276: Remove map module from la-arena public API r=lnicola a=arzg
It’s unlikely that more items will be added to the module, so it’s simpler for users if `ArenaMap` is re-exported and the module made private.
This doesn’t compile for the same reason that #7275 doesn’t:
> This pull request doesn’t compile because dependencies on la-arena go through crates.io, so existing dependencies on the crate are referencing an old version. As such, this PR will only compile once a new la-arena version has been published.
Co-authored-by: Aramis Razzaghipour <aramisnoah@gmail.com>
2021-01-17 07:20:36 +00:00
Aleksey Kladov
b3b6e56222
bump arena
2021-01-15 11:31:29 +03:00
Aramis Razzaghipour
9b5ba090db
Remove map module from la-arena public API
...
It’s unlikely that more items will be added to the module,
so it’s simpler for users if `ArenaMap` is re-exported
and the module made private.
2021-01-15 11:14:04 +11:00
Aramis Razzaghipour
a45099ee3e
Add more keys to la-arena Cargo.toml
2021-01-15 10:53:35 +11:00
Aramis Razzaghipour
6dc79952db
Add docs to la-arena crate
2021-01-15 10:40:17 +11:00
Aleksey Kladov
4c4e54ac8a
prepare to publish el libro de arena
2021-01-14 19:06:02 +03:00