Union cast failed
Aperta
@simensgreen ci sta già lavorando.
Dal 23/4/2025.
bug
- Lingua principale
- Rust
- Stelle
- 3.4k
- Fork
- 126
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
Expected Behaviour
Can cast [f32; 5] as Data { a: f32, b: [f32; 3], c: f32 }
Example & Steps To Reproduce
#[repr(C)]
#[derive(Clone, Copy)]
struct Data {
a: f32,
b: [f32; 3],
c: f32,
}
union DataOrArray {
arr: [f32; 5],
str: Data,
}
impl DataOrArray {
fn arr(self) -> [f32; 5] { unsafe { self.arr } }
fn new(arr: [f32; 5]) -> Self { Self { arr } }
}
in shader:
let dora = DataOrArray::new([0.0, 0.0, 0.0, 0.0, 0.0]);
let arr = dora.arr();
Produces:
error: cannot cast between pointer types
from `*struct types::Data { a: f32, b: [f32; 3], c: f32 }`
to `*[f32; 5]`
System Info
- Rust: rustc 1.84.0-nightly (b19329a37 2024-11-21)
- OS: MacOS 15.3.2
- GPU: M2 Max
- rust-gpu: 698f10ac14b7c952394ac5620004e4e973308902
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Valutazione
Questa issue non è ancora stata valutata.