@@ -353,56 +353,56 @@ mod tests {
353
353
354
354
#[ test]
355
355
fn test_tls_multitask ( ) {
356
- static my_key: Key < ~str > = & Key ;
357
- set ( my_key, ~"parent data") ;
356
+ static my_key: Key < @ ~str > = & Key ;
357
+ set ( my_key, @ ~"parent data") ;
358
358
do task:: spawn {
359
359
// TLS shouldn't carry over.
360
- assert!( get ( my_key, |k| k. map ( |k| ( * k ) . clone ( ) ) ) . is_none ( ) ) ;
361
- set ( my_key, ~"child data") ;
362
- assert ! ( get( my_key, |k| k. map( |k| ( * k) . clone ( ) ) ) . unwrap( ) ==
360
+ assert!( get ( my_key, |k| k. map ( |k| * k ) ) . is_none ( ) ) ;
361
+ set ( my_key, @ ~"child data") ;
362
+ assert ! ( * ( get( my_key, |k| k. map( |k| * k) ) . unwrap( ) ) ==
363
363
~"child data");
364
364
// should be cleaned up for us
365
365
}
366
366
// Must work multiple times
367
- assert!(get(my_key, |k| k.map(|k| ( *k).clone())) .unwrap() == ~" parent data");
368
- assert!(get(my_key, |k| k.map(|k| ( *k).clone())) .unwrap() == ~" parent data");
369
- assert!(get(my_key, |k| k.map(|k| ( *k).clone())) .unwrap() == ~" parent data");
367
+ assert!(*( get(my_key, |k| k.map(|k| *k)) .unwrap() ) == ~" parent data");
368
+ assert!(*( get(my_key, |k| k.map(|k| *k)) .unwrap() ) == ~" parent data");
369
+ assert!(*( get(my_key, |k| k.map(|k| *k)) .unwrap() ) == ~" parent data");
370
370
}
371
371
372
372
#[test]
373
373
fn test_tls_overwrite() {
374
- static my_key: Key<~str> = &Key;
375
- set(my_key, ~" first data");
376
- set(my_key, ~" next data"); // Shouldn't leak.
377
- assert!(get(my_key, |k| k.map(|k| ( *k).clone())) .unwrap() == ~" next data");
374
+ static my_key: Key<@ ~str> = &Key;
375
+ set(my_key, @ ~" first data");
376
+ set(my_key, @ ~" next data"); // Shouldn't leak.
377
+ assert!(*( get(my_key, |k| k.map(|k| *k)) .unwrap() ) == ~" next data");
378
378
}
379
379
380
380
#[test]
381
381
fn test_tls_pop() {
382
- static my_key: Key<~str> = &Key;
383
- set(my_key, ~" weasel");
384
- assert!(pop(my_key).unwrap() == ~" weasel");
382
+ static my_key: Key<@ ~str> = &Key;
383
+ set(my_key, @ ~" weasel");
384
+ assert!(*( pop(my_key).unwrap() ) == ~" weasel");
385
385
// Pop must remove the data from the map.
386
386
assert!(pop(my_key).is_none());
387
387
}
388
388
389
389
#[test]
390
390
fn test_tls_modify() {
391
- static my_key: Key<~str> = &Key;
391
+ static my_key: Key<@ ~str> = &Key;
392
392
modify(my_key, |data| {
393
393
match data {
394
- Some(ref val) => fail!(" unwelcome value: { } ", *val),
395
- None => Some(~" first data")
394
+ Some(@ ref val) => fail!(" unwelcome value: { } ", *val),
395
+ None => Some(@ ~" first data")
396
396
}
397
397
});
398
398
modify(my_key, |data| {
399
399
match data {
400
- Some(~" first data") => Some(~" next data"),
401
- Some(ref val) => fail!(" wrong value: { } ", *val),
400
+ Some(@ ~" first data") => Some(@ ~" next data"),
401
+ Some(@ ref val) => fail!(" wrong value: { } ", *val),
402
402
None => fail!(" missing value")
403
403
}
404
404
});
405
- assert!(pop(my_key).unwrap() == ~" next data");
405
+ assert!(*( pop(my_key).unwrap() ) == ~" next data");
406
406
}
407
407
408
408
#[test]
@@ -413,67 +413,67 @@ mod tests {
413
413
// to get recorded as something within a rust stack segment. Then a
414
414
// subsequent upcall (esp. for logging, think vsnprintf) would run on
415
415
// a stack smaller than 1 MB.
416
- static my_key: Key<~str> = &Key;
416
+ static my_key: Key<@ ~str> = &Key;
417
417
do task::spawn {
418
- set(my_key, ~" hax");
418
+ set(my_key, @ ~" hax");
419
419
}
420
420
}
421
421
422
422
#[test]
423
423
fn test_tls_multiple_types() {
424
- static str_key: Key<~str> = &Key;
425
- static box_key: Key<@()> = &Key;
426
- static int_key: Key<int> = &Key;
424
+ static str_key: Key<@ ~str> = &Key;
425
+ static box_key: Key<@@ ()> = &Key;
426
+ static int_key: Key<@ int> = &Key;
427
427
do task::spawn {
428
- set(str_key, ~" string data");
429
- set(box_key, @());
430
- set(int_key, 42);
428
+ set(str_key, @ ~" string data");
429
+ set(box_key, @@ ());
430
+ set(int_key, @ 42);
431
431
}
432
432
}
433
433
434
434
#[test]
435
435
fn test_tls_overwrite_multiple_types() {
436
- static str_key: Key<~str> = &Key;
437
- static box_key: Key<@()> = &Key;
438
- static int_key: Key<int> = &Key;
436
+ static str_key: Key<@ ~str> = &Key;
437
+ static box_key: Key<@@ ()> = &Key;
438
+ static int_key: Key<@ int> = &Key;
439
439
do task::spawn {
440
- set(str_key, ~" string data");
441
- set(str_key, ~" string data 2 ");
442
- set(box_key, @());
443
- set(box_key, @());
444
- set(int_key, 42);
440
+ set(str_key, @ ~" string data");
441
+ set(str_key, @ ~" string data 2 ");
442
+ set(box_key, @@ ());
443
+ set(box_key, @@ ());
444
+ set(int_key, @ 42);
445
445
// This could cause a segfault if overwriting-destruction is done
446
446
// with the crazy polymorphic transmute rather than the provided
447
447
// finaliser.
448
- set(int_key, 31337);
448
+ set(int_key, @ 31337);
449
449
}
450
450
}
451
451
452
452
#[test]
453
453
#[should_fail]
454
454
fn test_tls_cleanup_on_failure() {
455
- static str_key: Key<~str> = &Key;
456
- static box_key: Key<@()> = &Key;
457
- static int_key: Key<int> = &Key;
458
- set(str_key, ~" parent data");
459
- set(box_key, @());
455
+ static str_key: Key<@ ~str> = &Key;
456
+ static box_key: Key<@@ ()> = &Key;
457
+ static int_key: Key<@ int> = &Key;
458
+ set(str_key, @ ~" parent data");
459
+ set(box_key, @@ ());
460
460
do task::spawn {
461
461
// spawn_linked
462
- set(str_key, ~" string data") ;
463
- set( box_key, @( ) ) ;
464
- set( int_key, 42 ) ;
462
+ set(str_key, @ ~" string data") ;
463
+ set( box_key, @@ ( ) ) ;
464
+ set( int_key, @ 42 ) ;
465
465
fail!( ) ;
466
466
}
467
467
// Not quite nondeterministic.
468
- set( int_key, 31337 ) ;
468
+ set( int_key, @ 31337 ) ;
469
469
fail!( ) ;
470
470
}
471
471
472
472
#[ test]
473
473
fn test_static_pointer( ) {
474
- static key: Key <& ' static int> = & Key ;
474
+ static key: Key <@ & ' static int> = & Key ;
475
475
static VALUE : int = 0 ;
476
- let v: & ' static int = & VALUE ;
476
+ let v: @ & ' static int = @ & VALUE ;
477
477
set( key, v) ;
478
478
}
479
479
0 commit comments