@@ -325,6 +325,7 @@ unsafe fn get_buffer<T: send>(p: *packet_header) -> ~buffer<T> {
325
325
transmute ( ( * p) . buf_header ( ) )
326
326
}
327
327
328
+ // This could probably be done with SharedMutableState to avoid move_it!().
328
329
struct buffer_resource < T : send > {
329
330
let buffer : ~buffer < T > ;
330
331
new ( +b : ~buffer < T > ) {
@@ -962,8 +963,8 @@ impl<T: send> chan<T>: channel<T> {
962
963
let mut endp = none;
963
964
endp <-> self . endp ;
964
965
match move streamp:: client:: try_data ( unwrap ( endp) , x) {
965
- some( next) => {
966
- self . endp = some ( move_it ! ( next) ) ;
966
+ some( move next) => {
967
+ self . endp = some ( next) ;
967
968
true
968
969
}
969
970
none => false
@@ -984,9 +985,9 @@ impl<T: send> port<T>: recv<T> {
984
985
let mut endp = none;
985
986
endp <-> self . endp ;
986
987
match move pipes:: try_recv ( unwrap ( endp) ) {
987
- some( streamp:: data( x , endp) ) => {
988
- self . endp = some ( move_it ! ( endp) ) ;
989
- some ( move_it ! ( x ) )
988
+ some( streamp:: data( move x , move endp) ) => {
989
+ self . endp = some ( endp) ;
990
+ some ( x )
990
991
}
991
992
none => none
992
993
}
@@ -1029,12 +1030,8 @@ struct PortSet<T: send> : recv<T> {
1029
1030
while result == none && ports. len ( ) > 0 {
1030
1031
let i = wait_many ( ports) ;
1031
1032
match move ports[ i] . try_recv ( ) {
1032
- // FIXME (#2329): use this version once move from enum works.
1033
- //some(copy m) => {
1034
- // result = some(move m);
1035
- //}
1036
- some( m) => {
1037
- result = some ( move_it ! ( m) ) ;
1033
+ some( move m) => {
1034
+ result = some ( m) ;
1038
1035
}
1039
1036
none => {
1040
1037
// Remove this port.
@@ -1047,12 +1044,7 @@ struct PortSet<T: send> : recv<T> {
1047
1044
}
1048
1045
1049
1046
fn recv ( ) -> T {
1050
- match move self . try_recv ( ) {
1051
- // FIXME (#2329): use this version once move from enum works.
1052
- //some(copy x) => move x,
1053
- some( x) => move_it ! ( x) ,
1054
- none => fail ~"port_set: endpoints closed"
1055
- }
1047
+ option:: unwrap_expect ( self . try_recv ( ) , "port_set: endpoints closed" )
1056
1048
}
1057
1049
1058
1050
pure fn peek ( ) -> bool {
0 commit comments