@@ -39,8 +39,40 @@ export loc;
39
39
export get_filemap;
40
40
export new_codemap;
41
41
42
+ struct span { lo : uint , hi : uint , expn_info : expn_info }
43
+
44
+ impl span : cmp:: Eq {
45
+ pure fn eq ( other : & span ) -> bool {
46
+ return self . lo == ( * other) . lo && self . hi == ( * other) . hi ;
47
+ }
48
+ pure fn ne ( other : & span ) -> bool { !self . eq ( other) }
49
+ }
50
+
51
+ impl < S : Serializer > span: Serializable < S > {
52
+ /* Note #1972 -- spans are serialized but not deserialized */
53
+ fn serialize ( & self , _s : & S ) { }
54
+ }
55
+
56
+ impl < D : Deserializer > span: Deserializable < D > {
57
+ static fn deserialize( _d : & D ) -> span {
58
+ ast_util:: dummy_sp( )
59
+ }
60
+ }
61
+
62
+ enum expn_info_ {
63
+ expanded_from( { call_site: span,
64
+ callie: { name: ~str , span: Option <span >} } )
65
+ }
66
+ type expn_info = Option < @expn_info_ > ;
67
+
42
68
type filename = ~str ;
43
69
70
+ type lookup_fn = pure fn( file_pos ) -> uint ;
71
+
72
+ struct loc {
73
+ file : @filemap , line : uint , col : uint
74
+ }
75
+
44
76
struct file_pos {
45
77
ch : uint , byte : uint
46
78
}
@@ -90,10 +122,6 @@ struct CodeMap {
90
122
files : DVec < @filemap >
91
123
}
92
124
93
- struct loc {
94
- file : @filemap , line : uint , col : uint
95
- }
96
-
97
125
fn new_codemap ( ) -> CodeMap {
98
126
CodeMap {
99
127
files : DVec ( )
@@ -110,8 +138,6 @@ fn next_line(file: @filemap, chpos: uint, byte_pos: uint) {
110
138
file. lines . push ( file_pos { ch : chpos, byte : byte_pos + file. start_pos . byte } ) ;
111
139
}
112
140
113
- type lookup_fn = pure fn( file_pos ) -> uint ;
114
-
115
141
fn lookup_line ( map : @CodeMap , pos : uint , lookup : lookup_fn )
116
142
-> { fm : @filemap , line : uint }
117
143
{
@@ -186,32 +212,6 @@ fn adjust_span(map: @CodeMap, sp: span) -> span {
186
212
}
187
213
}
188
214
189
- enum expn_info_ {
190
- expanded_from( { call_site : span ,
191
- callie: { name : ~str , span : Option < span > } } )
192
- }
193
- type expn_info = Option < @expn_info_ > ;
194
-
195
- struct span { lo : uint , hi : uint , expn_info : expn_info }
196
-
197
- impl span : cmp:: Eq {
198
- pure fn eq ( other : & span ) -> bool {
199
- return self . lo == ( * other) . lo && self . hi == ( * other) . hi ;
200
- }
201
- pure fn ne ( other : & span ) -> bool { !self . eq ( other) }
202
- }
203
-
204
- impl < S : Serializer > span: Serializable < S > {
205
- /* Note #1972 -- spans are serialized but not deserialized */
206
- fn serialize ( & self , _s : & S ) { }
207
- }
208
-
209
- impl < D : Deserializer > span: Deserializable < D > {
210
- static fn deserialize( _d : & D ) -> span {
211
- ast_util:: dummy_sp( )
212
- }
213
- }
214
-
215
215
fn span_to_str_no_adj ( sp : span , cm : @CodeMap ) -> ~str {
216
216
let lo = lookup_char_pos ( cm, sp. lo ) ;
217
217
let hi = lookup_char_pos ( cm, sp. hi ) ;
0 commit comments