changed to pass tests

This commit is contained in:
cfsamson
2020-01-28 18:17:59 +01:00
parent 0a4f4d5deb
commit 4c1f0a9682

View File

@@ -353,9 +353,9 @@ But now, let's prevent the segfault from happening using `Pin`:
#![feature(optin_builtin_traits)] #![feature(optin_builtin_traits)]
use std::pin::Pin; use std::pin::Pin;
pub fn test2() { pub fn main() {
let mut gen1 = GeneratorA::start(); let gen1 = GeneratorA::start();
let mut gen2 = GeneratorA::start(); let gen2 = GeneratorA::start();
// Before we pin the pointers, this is safe to do // Before we pin the pointers, this is safe to do
// std::mem::swap(&mut gen, &mut gen2); // std::mem::swap(&mut gen, &mut gen2);
@@ -402,7 +402,7 @@ enum GeneratorState<Y, R> {
trait Generator { trait Generator {
type Yield; type Yield;
type Return; type Return;
fn resume(mut self: Pin<&mut Self>) -> GeneratorState<Self::Yield, Self::Return>; fn resume(self: Pin<&mut Self>) -> GeneratorState<Self::Yield, Self::Return>;
} }
enum GeneratorA { enum GeneratorA {
@@ -429,7 +429,7 @@ impl !Unpin for GeneratorA { }
impl Generator for GeneratorA { impl Generator for GeneratorA {
type Yield = usize; type Yield = usize;
type Return = (); type Return = ();
fn resume(mut self: Pin<&mut Self>) -> GeneratorState<Self::Yield, Self::Return> { fn resume(self: Pin<&mut Self>) -> GeneratorState<Self::Yield, Self::Return> {
// lets us get ownership over current state // lets us get ownership over current state
let this = unsafe { self.get_unchecked_mut() }; let this = unsafe { self.get_unchecked_mut() };
match this { match this {