Handle `derive_coerce_pointee` feature and associated `derive(CoercePointee)`
Maintainers usually reply within 3 days
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
Research direction
Start by searching the gccrs source for derive_coerce_pointee and CoercePointee, then read the linked Rust documentation for the expected derive behavior. Compare the implementation requirements with the kernel usages in rust/kernel/list/arc.rs, rust/kernel/alloc/kbox.rs, and rust/kernel/sync/arc.rs. Done means gccrs handles the feature and associated derive consistently with those examples.
Written by the indexing model from the issue text.
Description
This is used in multiple places in the kernel, grep for CoercePointee:
../rust-for-linux/rust/kernel/list/arc.rs
163:#[derive(core::marker::CoercePointee)]
164-pub struct ListArc<T, const ID: u64 = 0>
../rust-for-linux/rust/kernel/alloc/kbox.rs
103:#[derive(core::marker::CoercePointee)]
104-pub struct Box<#[pointee] T: ?Sized, A: Allocator>(NonNull<T>, PhantomData<A>);
../rust-for-linux/rust/kernel/sync/arc.rs
131:#[derive(core::marker::CoercePointee)]
132-pub struct Arc<T: ?Sized> {
--
541:#[derive(core::marker::CoercePointee)]
542-pub struct ArcBorrow<'a, T: ?Sized + 'a> {
https://doc.rust-lang.org/nightly/core/marker/derive.CoercePointee.html
This is probably going to be hard to implement and exclusively touches typechecking as far as I can tell.
- Dominant language
- C++
- Stars
- 3k
- Forks
- 238
- Avg merge
- 4d 8h
- Merged PRs (30d)
- 31
Getting set up
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Rust-GCC/gccrs
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
Maintainers usually reply within 3 days
-
Allow pattern matching of floating point literalsPossibly taken @Vivekkumar0995 claimed this 7 days ago. Opencleanup good-first-pr typechecking
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
Rust-GCC/gccrs#5047 · 3 comments · 1 assignee ·
Maintainers usually reply within 3 days
-
ICE in variance analysis on core, projection field keeps the impl's type paramPossibly taken @u7k4rs6 claimed this 1 day ago. Opentypechecking
Rust-GCC/gccrs#5074 · 1 assignee ·
Maintainers usually reply within 3 days
-
subset-error typechecking
Difficulty 4/5 3-5 days Newbie friendliness 25/100
Maintainers usually reply within 3 days
-
Difficulty 3/5 1-2 days Newbie friendliness 46/100
Rust-GCC/gccrs#5060 · 2 comments ·
Maintainers usually reply within 3 days
Similar issues
-
mlir
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
llvm/llvm-project#241070 · 1 comment ·
Maintainers usually reply within 1 day
-
backlog documentation
Difficulty 1/5 Under an hour Newbie friendliness 96/100
EchoTools/nevr-runtime#2354 ·
Maintainers usually reply within 1 day
-
help wanted new command
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
tldr-pages/tldr#25111 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Maintainers usually reply within 1 day
-
Ask the `ServerHelper` for fresh headers on every poll in `Future::get`, as is done for cookiesOpenenhancement
Difficulty 2/5 1-3 hours Newbie friendliness 77/100
NVIDIA/cuda-quantum#5886 ·
Maintainers usually reply within 1 day