@@ -7,6 +7,7 @@ import middle::trans_common::*;
7
7
import middle:: trans_build:: B ;
8
8
import middle:: ty;
9
9
import syntax:: { ast, codemap} ;
10
+ import codemap:: span;
10
11
import ast:: ty;
11
12
import pat_util:: * ;
12
13
import util:: ppaux:: ty_to_str;
@@ -218,17 +219,17 @@ fn create_file(cx: @crate_ctxt, full_path: str) -> @metadata<file_md> {
218
219
ret mdval;
219
220
}
220
221
221
- fn line_from_span ( cm : codemap:: codemap , sp : codemap :: span ) -> uint {
222
+ fn line_from_span ( cm : codemap:: codemap , sp : span ) -> uint {
222
223
codemap:: lookup_char_pos ( cm, sp. lo ) . line
223
224
}
224
225
225
- fn create_block ( cx : @block_ctxt ) -> @metadata < block_md > {
226
+ fn create_block ( cx : @block_ctxt , sp : span ) -> @metadata < block_md > {
226
227
let cache = get_cache ( bcx_ccx ( cx) ) ;
227
228
let start = codemap:: lookup_char_pos ( bcx_ccx ( cx) . sess . codemap ,
228
- cx . sp . lo ) ;
229
+ sp. lo ) ;
229
230
let fname = start. filename ;
230
231
let end = codemap:: lookup_char_pos ( bcx_ccx ( cx) . sess . codemap ,
231
- cx . sp . hi ) ;
232
+ sp. hi ) ;
232
233
let tg = LexicalBlockTag ;
233
234
alt cached_metadata :: < @metadata < block_md > > (
234
235
cache, tg,
@@ -238,8 +239,8 @@ fn create_block(cx: @block_ctxt) -> @metadata<block_md> {
238
239
}
239
240
240
241
let parent = alt cx. parent {
241
- trans_common:: parent_none { create_function( cx. fcx ) . node }
242
- trans_common:: parent_some ( bcx) { create_block ( cx) . node }
242
+ trans_common:: parent_none { create_function( cx. fcx , sp ) . node }
243
+ trans_common:: parent_some ( bcx) { create_block ( cx, sp ) . node }
243
244
} ;
244
245
let file_node = create_file ( bcx_ccx ( cx) , fname) ;
245
246
let unique_id = alt cache. find ( LexicalBlockTag ) {
@@ -317,7 +318,7 @@ fn create_basic_type(cx: @crate_ctxt, t: ty::t, ty: @ast::ty)
317
318
ret mdval;
318
319
}
319
320
320
- fn create_pointer_type ( cx : @crate_ctxt , t : ty:: t , span : codemap :: span ,
321
+ fn create_pointer_type ( cx : @crate_ctxt , t : ty:: t , span : span ,
321
322
pointee : @metadata < tydesc_md > )
322
323
-> @metadata < tydesc_md > {
323
324
let tg = PointerTypeTag ;
@@ -391,7 +392,7 @@ fn add_member(cx: @struct_ctxt, name: str, line: int, size: int, align: int,
391
392
}
392
393
393
394
fn create_record ( cx : @crate_ctxt , t : ty:: t , fields : [ ast:: ty_field ] ,
394
- span : codemap :: span ) -> @metadata < tydesc_md > {
395
+ span : span ) -> @metadata < tydesc_md > {
395
396
let fname = filename_from_span ( cx, span) ;
396
397
let file_node = create_file ( cx, fname) ;
397
398
let scx = create_structure ( file_node,
@@ -411,7 +412,7 @@ fn create_record(cx: @crate_ctxt, t: ty::t, fields: [ast::ty_field],
411
412
}
412
413
413
414
fn create_boxed_type ( cx : @crate_ctxt , outer : ty:: t , _inner : ty:: t ,
414
- span : codemap :: span , boxed : @metadata < tydesc_md > )
415
+ span : span , boxed : @metadata < tydesc_md > )
415
416
-> @metadata < tydesc_md > {
416
417
//let tg = StructureTypeTag;
417
418
/*let cache = cx.llmetadata;
@@ -537,7 +538,7 @@ fn create_ty(cx: @crate_ctxt, t: ty::t, ty: @ast::ty)
537
538
option::none {}
538
539
}*/
539
540
540
- fn t_to_ty ( cx : @crate_ctxt , t : ty:: t , span : codemap :: span ) -> @ast:: ty {
541
+ fn t_to_ty ( cx : @crate_ctxt , t : ty:: t , span : span ) -> @ast:: ty {
541
542
let ty = alt ty:: struct ( ccx_tcx ( cx) , t) {
542
543
ty:: ty_nil { ast : : ty_nil }
543
544
ty:: ty_bot { ast : : ty_bot }
@@ -602,7 +603,7 @@ fn create_ty(cx: @crate_ctxt, t: ty::t, ty: @ast::ty)
602
603
} ;
603
604
}
604
605
605
- fn filename_from_span ( cx : @crate_ctxt , sp : codemap :: span ) -> str {
606
+ fn filename_from_span ( cx : @crate_ctxt , sp : span ) -> str {
606
607
codemap:: lookup_char_pos ( cx. sess . codemap , sp. lo ) . filename
607
608
}
608
609
@@ -633,15 +634,15 @@ fn create_local_var(bcx: @block_ctxt, local: @ast::local)
633
634
let name = path_to_ident ( alt pat_util:: normalize_pat ( bcx_tcx ( bcx) ,
634
635
local. node . pat ) . node {
635
636
ast:: pat_ident ( ident, _) { ident /*XXX deal w/ optional node binding*/ }
636
- } ) ;
637
+ } ) ;
637
638
let loc = codemap:: lookup_char_pos ( cx. sess . codemap ,
638
639
local. span . lo ) ;
639
640
let ty = trans:: node_id_type ( cx, local. node . id ) ;
640
641
let tymd = create_ty ( cx, ty, local. node . ty ) ;
641
642
let filemd = create_file ( cx, loc. filename ) ;
642
643
let context = alt bcx. parent {
643
- trans_common:: parent_none { create_function( bcx. fcx ) . node }
644
- trans_common:: parent_some ( _) { create_block ( bcx) . node }
644
+ trans_common:: parent_none { create_function( bcx. fcx , local . span ) . node }
645
+ trans_common:: parent_some ( _) { create_block ( bcx, local . span ) . node }
645
646
} ;
646
647
let mdnode = create_var ( tg, context, name, filemd. node ,
647
648
loc. line as int , tymd. node ) ;
@@ -662,7 +663,7 @@ fn create_local_var(bcx: @block_ctxt, local: @ast::local)
662
663
ret mdval;
663
664
}
664
665
665
- fn create_arg ( bcx : @block_ctxt , arg : ast:: arg )
666
+ fn create_arg ( bcx : @block_ctxt , arg : ast:: arg , sp : span )
666
667
-> @metadata < argument_md > unsafe {
667
668
let fcx = bcx_fcx ( bcx) ;
668
669
let cx = fcx_ccx ( fcx) ;
@@ -678,11 +679,11 @@ fn create_arg(bcx: @block_ctxt, arg: ast::arg)
678
679
ast_map::node_arg(_, n) { n - 2u }
679
680
};*/
680
681
let loc = codemap:: lookup_char_pos ( cx. sess . codemap ,
681
- fcx . sp . lo ) ;
682
+ sp. lo ) ;
682
683
let ty = trans:: node_id_type ( cx, arg. id ) ;
683
684
let tymd = create_ty ( cx, ty, arg. ty ) ;
684
685
let filemd = create_file ( cx, loc. filename ) ;
685
- let context = create_function ( bcx. fcx ) ;
686
+ let context = create_function ( bcx. fcx , sp ) ;
686
687
let mdnode = create_var ( tg, context. node , arg. ident , filemd. node ,
687
688
loc. line as int , tymd. node ) ;
688
689
let mdval = @{ node: mdnode, data : { id : arg. id } } ;
@@ -697,12 +698,12 @@ fn create_arg(bcx: @block_ctxt, arg: ast::arg)
697
698
ret mdval;
698
699
}
699
700
700
- fn update_source_pos ( cx : @block_ctxt , s : codemap :: span ) {
701
+ fn update_source_pos ( cx : @block_ctxt , s : span ) {
701
702
if !bcx_ccx ( cx) . sess . opts . debuginfo {
702
703
ret;
703
704
}
704
705
let cm = bcx_ccx ( cx) . sess . codemap ;
705
- let blockmd = create_block ( cx) ;
706
+ let blockmd = create_block ( cx, s ) ;
706
707
let loc = codemap:: lookup_char_pos ( cm, s. lo ) ;
707
708
let scopedata = [ lli32 ( loc. line as int ) ,
708
709
lli32 ( loc. col as int ) ,
@@ -712,14 +713,14 @@ fn update_source_pos(cx: @block_ctxt, s: codemap::span) {
712
713
llvm:: LLVMSetCurrentDebugLocation ( trans_build:: B ( cx) , dbgscope) ;
713
714
}
714
715
715
- fn create_function ( fcx : @fn_ctxt ) -> @metadata < subprogram_md > {
716
+ fn create_function ( fcx : @fn_ctxt , sp : span ) -> @metadata < subprogram_md > {
716
717
let cx = fcx_ccx ( fcx) ;
717
718
let dbg_cx = option:: get ( cx. dbg_cx ) ;
718
719
719
720
#debug ( "~~" ) ;
720
721
log ( debug, fcx. id ) ;
721
722
722
- log ( debug, codemap:: span_to_str ( fcx . sp , cx. sess . codemap ) ) ;
723
+ log ( debug, codemap:: span_to_str ( sp, cx. sess . codemap ) ) ;
723
724
724
725
let ( ident, ret_ty, id) = alt cx. ast_map . get ( fcx. id ) {
725
726
ast_map:: node_item ( item) {
@@ -763,7 +764,7 @@ fn create_function(fcx: @fn_ctxt) -> @metadata<subprogram_md> {
763
764
}
764
765
765
766
let loc = codemap:: lookup_char_pos ( cx. sess . codemap ,
766
- fcx . sp . lo ) ;
767
+ sp. lo ) ;
767
768
let file_node = create_file ( cx, loc. filename ) . node ;
768
769
let key = cx. item_symbols . contains_key ( fcx. id ) ? fcx. id : id;
769
770
let mangled = cx. item_symbols . get ( key) ;
0 commit comments