Union cast failed
Offen
@simensgreen arbeitet bereits daran.
Seit 23.4.2025.
bug
- Vorherrschende Sprache
- Rust
- Sterne
- 3.4k
- Forks
- 126
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
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
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Bewertung
Dieses Issue wurde noch nicht bewertet.