@@ -657,7 +657,7 @@ pub struct MultiByteChar {
657
657
/// The absolute offset of the character in the CodeMap
658
658
pub pos : BytePos ,
659
659
/// The number of bytes, >=2
660
- pub bytes : usize ,
660
+ pub bytes : u32 ,
661
661
}
662
662
663
663
/// Identifies an offset of a non-narrow character in a FileMap
@@ -1174,6 +1174,8 @@ fn remove_bom(src: &mut String) {
1174
1174
pub trait Pos {
1175
1175
fn from_usize ( n : usize ) -> Self ;
1176
1176
fn to_usize ( & self ) -> usize ;
1177
+ fn from_u32 ( n : u32 ) -> Self ;
1178
+ fn to_u32 ( & self ) -> u32 ;
1177
1179
}
1178
1180
1179
1181
/// A byte offset. Keep this small (currently 32-bits), as AST contains
@@ -1195,7 +1197,13 @@ impl Pos for BytePos {
1195
1197
fn from_usize ( n : usize ) -> BytePos { BytePos ( n as u32 ) }
1196
1198
1197
1199
#[ inline( always) ]
1198
- fn to_usize ( & self ) -> usize { let BytePos ( n) = * self ; n as usize }
1200
+ fn to_usize ( & self ) -> usize { self . 0 as usize }
1201
+
1202
+ #[ inline( always) ]
1203
+ fn from_u32 ( n : u32 ) -> BytePos { BytePos ( n) }
1204
+
1205
+ #[ inline( always) ]
1206
+ fn to_u32 ( & self ) -> u32 { self . 0 }
1199
1207
}
1200
1208
1201
1209
impl Add for BytePos {
@@ -1233,7 +1241,13 @@ impl Pos for CharPos {
1233
1241
fn from_usize ( n : usize ) -> CharPos { CharPos ( n) }
1234
1242
1235
1243
#[ inline( always) ]
1236
- fn to_usize ( & self ) -> usize { let CharPos ( n) = * self ; n }
1244
+ fn to_usize ( & self ) -> usize { self . 0 }
1245
+
1246
+ #[ inline( always) ]
1247
+ fn from_u32 ( n : u32 ) -> CharPos { CharPos ( n as usize ) }
1248
+
1249
+ #[ inline( always) ]
1250
+ fn to_u32 ( & self ) -> u32 { self . 0 as u32 }
1237
1251
}
1238
1252
1239
1253
impl Add for CharPos {
0 commit comments