@@ -103,26 +103,32 @@ fn dup_string_reader(r: @mut StringReader) -> @mut StringReader {
103
103
curr : r. curr ,
104
104
filemap : r. filemap ,
105
105
interner : r. interner ,
106
- peek_tok : r. peek_tok ,
107
- peek_span : r. peek_span
106
+ peek_tok : copy r. peek_tok ,
107
+ peek_span : copy r. peek_span
108
108
}
109
109
}
110
110
111
111
impl reader for StringReader {
112
112
fn is_eof ( @mut self ) -> bool { is_eof ( self ) }
113
113
// return the next token. EFFECT: advances the string_reader.
114
114
fn next_token ( @mut self ) -> TokenAndSpan {
115
- let ret_val = TokenAndSpan { tok : self . peek_tok , sp : self . peek_span } ;
115
+ let ret_val = TokenAndSpan {
116
+ tok : copy self . peek_tok ,
117
+ sp : copy self . peek_span ,
118
+ } ;
116
119
string_advance_token ( self ) ;
117
- return ret_val;
120
+ ret_val
118
121
}
119
122
fn fatal ( @mut self , m : ~str ) -> ! {
120
123
self . span_diagnostic . span_fatal ( copy self . peek_span , m)
121
124
}
122
125
fn span_diag ( @mut self ) -> span_handler { self . span_diagnostic }
123
126
pure fn interner ( @mut self ) -> @token:: ident_interner { self . interner }
124
127
fn peek ( @mut self ) -> TokenAndSpan {
125
- TokenAndSpan { tok : self . peek_tok , sp : self . peek_span }
128
+ TokenAndSpan {
129
+ tok : copy self . peek_tok ,
130
+ sp : copy self . peek_span ,
131
+ }
126
132
}
127
133
fn dup ( @mut self ) -> reader { dup_string_reader ( self ) as reader }
128
134
}
@@ -136,7 +142,10 @@ pub impl reader for TtReader {
136
142
fn span_diag ( @mut self ) -> span_handler { self . sp_diag }
137
143
pure fn interner ( @mut self ) -> @token:: ident_interner { self . interner }
138
144
fn peek ( @mut self ) -> TokenAndSpan {
139
- TokenAndSpan { tok : self . cur_tok , sp : self . cur_span }
145
+ TokenAndSpan {
146
+ tok : copy self . cur_tok ,
147
+ sp : copy self . cur_span ,
148
+ }
140
149
}
141
150
fn dup ( @mut self ) -> reader { dup_tt_reader ( self ) as reader }
142
151
}
@@ -145,8 +154,8 @@ pub impl reader for TtReader {
145
154
fn string_advance_token ( r : @mut StringReader ) {
146
155
match ( consume_whitespace_and_comments ( r) ) {
147
156
Some ( comment) => {
148
- r. peek_tok = comment. tok ;
149
- r. peek_span = comment. sp ;
157
+ r. peek_tok = copy comment. tok ;
158
+ r. peek_span = copy comment. sp ;
150
159
} ,
151
160
None => {
152
161
if is_eof ( r) {
0 commit comments