VOICEVOX / open_jtalk-rs

BSD 3-Clause "New" or "Revised" License
10 stars 12 forks source link

`MaybeUninit::uninit().assume_init()`を撲滅し、Clippyを通す #4

Closed qryxip closed 1 year ago

qryxip commented 1 year ago

MaybeUninit::uninit().assume_init()を撲滅してClippyが通るようにします。

以前は#[allow]されていたようですが、今はもうClippyじゃなくてrustc本体からやめろと叫ばれる行為と化しており、かつちゃんと直すことが容易であるため直すことにしました。

MaybeUninit::uninit().assume_init()自体のまずさについては、stdのドキュメントのこの例がすべてだと思います。 (型が何であろうと、読み取りをしなくても、uninitializedな値をSafe Rustの世界に迎えたらその時点で本来アウト)

let x: i32 = unsafe { MaybeUninit::uninit().assume_init() }; // undefined behavior! ⚠️
qwerty2501 commented 1 year ago

onnxruntime-rsと一緒に寄贈した気がします(よく覚えていない)