]> git.lizzy.rs Git - rust.git/commitdiff
Fix tests
authorJohn Kåre Alsaker <john.kare.alsaker@gmail.com>
Mon, 10 Jul 2017 21:13:52 +0000 (23:13 +0200)
committerJohn Kåre Alsaker <john.kare.alsaker@gmail.com>
Fri, 28 Jul 2017 13:46:24 +0000 (15:46 +0200)
src/test/run-pass/generator/implicit-argument-dead-when-suspended.rs
src/test/run-pass/generator/iterator-count.rs

index 722ec2477efbea17678da64d166213e30e129617..635d8fb3cdc63d340994558c74fe9aaab4f8a859 100644 (file)
@@ -8,26 +8,31 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(generators)]
+#![feature(generators, generator_trait)]
 
-use std::cell::Cell;
+use std::ops::Generator;
+use std::sync::atomic::{AtomicUsize, ATOMIC_USIZE_INIT, Ordering};
 
-struct Flag<'a>(&'a Cell<bool>);
+static A: AtomicUsize = ATOMIC_USIZE_INIT;
 
-impl<'a> Drop for Flag<'a> {
+struct B;
+
+impl Drop for B {
     fn drop(&mut self) {
-        self.0.set(false)
+        A.fetch_add(1, Ordering::SeqCst);
     }
 }
 
 fn main() {
-    let alive = Cell::new(true);
+    let b = B;
 
-    let gen = || {
+    let mut gen = || {
         yield;
     };
 
-    gen.resume(Flag(&alive));
-
-    assert_eq!(alive.get(), false);
+    assert_eq!(A.load(Ordering::SeqCst), 0);
+    gen.resume(b);
+    assert_eq!(A.load(Ordering::SeqCst), 1);
+    drop(gen);
+    assert_eq!(A.load(Ordering::SeqCst), 1);
 }
index e44aa0592357104f4dccdaacb8f6e0ff346dc987..45ba663873b61730967f2cfa6a4484bcaacd089f 100644 (file)
@@ -37,7 +37,7 @@ fn main() {
     let end = 11;
 
     let closure_test = |start| {
-        || {
+        move || {
             for i in start..end {
                 yield i
             }