Xudong-Huang / generator-rs

rust stackful generator library
Apache License 2.0
286 stars 35 forks source link

Free function `yield_` is unsound #14

Closed jonas-schievink closed 4 years ago

jonas-schievink commented 4 years ago

It can be used to transmute types. Example causing a segmentation fault (at least on my machine):

use generator::*;

fn main() {
    let g = Gn::new_scoped(|_| {
        yield_::<String, _>(());
    });

    for () in g {}
}
Xudong-Huang commented 4 years ago

yied_ should be deprecated. we should always use scoped version's yield method.

Xudong-Huang commented 4 years ago

now if call deprecated yield_ in a scoped generator, this will trigger assertion panic.