Commit graph

146 commits

Author SHA1 Message Date
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