diff options
| author | Marijn Haverbeke <marijnh@gmail.com> | 2012-01-12 17:59:49 +0100 |
|---|---|---|
| committer | Marijn Haverbeke <marijnh@gmail.com> | 2012-01-12 18:04:02 +0100 |
| commit | efb9df1ebd7ebe0232e202d0e065b08d6a593785 (patch) | |
| tree | c0e798a4f2529fb5cdb6512555676ba2bae0c5b6 /src/comp/middle | |
| parent | 56fe4c2681f7ef467d8b3405279acbcfc6b0ebcf (diff) | |
Make driver::session::session no longer an object
Rather, it is now a struct where properties like opts are accessed directly, and the error-reporting methods are part of a static impl (with the same name as the type).
Diffstat (limited to 'src/comp/middle')
26 files changed, 99 insertions, 76 deletions
diff --git a/src/comp/middle/alias.rs b/src/comp/middle/alias.rs index a6a67bb0158..82058a6a781 100644 --- a/src/comp/middle/alias.rs +++ b/src/comp/middle/alias.rs @@ -8,6 +8,7 @@ import core::{vec, option}; import std::list; import option::{some, none, is_none}; import list::list; +import driver::session::session; // This is not an alias-analyser (though it would merit from becoming one, or // getting input from one, to be more precise). It is a pass that checks diff --git a/src/comp/middle/block_use.rs b/src/comp/middle/block_use.rs index afc9a901444..3796ae96b5d 100644 --- a/src/comp/middle/block_use.rs +++ b/src/comp/middle/block_use.rs @@ -1,5 +1,6 @@ import syntax::visit; import syntax::ast::*; +import driver::session::session; type ctx = {tcx: ty::ctxt, mutable allow_block: bool}; diff --git a/src/comp/middle/capture.rs b/src/comp/middle/capture.rs index e1c1c63d02f..aa258673a6e 100644 --- a/src/comp/middle/capture.rs +++ b/src/comp/middle/capture.rs @@ -1,4 +1,5 @@ import syntax::{ast, ast_util}; +import driver::session::session; import std::map; export capture_mode; diff --git a/src/comp/middle/check_alt.rs b/src/comp/middle/check_alt.rs index 4d02d4df922..d2e3c15009d 100644 --- a/src/comp/middle/check_alt.rs +++ b/src/comp/middle/check_alt.rs @@ -3,6 +3,7 @@ import syntax::ast_util::{variant_def_ids, dummy_sp, compare_lit_exprs, lit_expr_eq}; import syntax::visit; import option::{some, none}; +import driver::session::session; fn check_crate(tcx: ty::ctxt, crate: @crate) { let v = diff --git a/src/comp/middle/check_const.rs b/src/comp/middle/check_const.rs index 1a34fe631e9..c0460e90cb0 100644 --- a/src/comp/middle/check_const.rs +++ b/src/comp/middle/check_const.rs @@ -59,14 +59,14 @@ fn check_expr(sess: session, e: @expr, &&is_const: bool, v: visit::vt<bool>) { expr_lit(@{node: lit_int(v, t), _}) { if t != ty_char { if (v as u64) > ast_util::int_ty_max( - t == ty_i ? sess.get_targ_cfg().int_type : t) { + t == ty_i ? sess.targ_cfg.int_type : t) { sess.span_err(e.span, "literal out of range for its type"); } } } expr_lit(@{node: lit_uint(v, t), _}) { if v > ast_util::uint_ty_max( - t == ty_u ? sess.get_targ_cfg().uint_type : t) { + t == ty_u ? sess.targ_cfg.uint_type : t) { sess.span_err(e.span, "literal out of range for its type"); } } diff --git a/src/comp/middle/debuginfo.rs b/src/comp/middle/debuginfo.rs index 1c74cb7b171..babe01963ef 100644 --- a/src/comp/middle/debuginfo.rs +++ b/src/comp/middle/debuginfo.rs @@ -162,7 +162,7 @@ fn create_compile_unit(cx: @crate_ctxt, full_path: str) option::none. {} } - let work_dir = cx.sess.get_working_dir(); + let work_dir = cx.sess.working_dir; let file_path = if str::starts_with(full_path, work_dir) { str::slice(full_path, str::byte_len(work_dir), str::byte_len(full_path)) @@ -176,7 +176,7 @@ fn create_compile_unit(cx: @crate_ctxt, full_path: str) llstr(work_dir), llstr(#env["CFG_VERSION"]), lli1(false), // main compile unit - lli1(cx.sess.get_opts().optimize != 0u), + lli1(cx.sess.opts.optimize != 0u), llstr(""), // flags (???) lli32(0) // runtime version (???) // list of enum types @@ -223,10 +223,10 @@ fn line_from_span(cm: codemap::codemap, sp: codemap::span) -> uint { fn create_block(cx: @block_ctxt) -> @metadata<block_md> { let cache = get_cache(bcx_ccx(cx)); - let start = codemap::lookup_char_pos(bcx_ccx(cx).sess.get_codemap(), + let start = codemap::lookup_char_pos(bcx_ccx(cx).sess.codemap, cx.sp.lo); let fname = start.filename; - let end = codemap::lookup_char_pos(bcx_ccx(cx).sess.get_codemap(), + let end = codemap::lookup_char_pos(bcx_ccx(cx).sess.codemap, cx.sp.hi); let tg = LexicalBlockTag; alt cached_metadata::<@metadata<block_md>>( @@ -395,14 +395,14 @@ fn create_record(cx: @crate_ctxt, t: ty::t, fields: [ast::ty_field], let file_node = create_file(cx, fname); let scx = create_structure(file_node, option::get(cx.dbg_cx).names.next("rec"), - line_from_span(cx.sess.get_codemap(), + line_from_span(cx.sess.codemap, span) as int); for field in fields { let field_t = ty::get_field(ccx_tcx(cx), t, field.node.ident).mt.ty; let ty_md = create_ty(cx, field_t, field.node.mt.ty); let (size, align) = member_size_and_align(field.node.mt.ty); add_member(scx, field.node.ident, - line_from_span(cx.sess.get_codemap(), field.span) as int, + line_from_span(cx.sess.codemap, field.span) as int, size as int, align as int, ty_md.node); } let mdval = @{node: finish_structure(scx), data:{hash: t}}; @@ -602,7 +602,7 @@ fn create_ty(cx: @crate_ctxt, t: ty::t, ty: @ast::ty) } fn filename_from_span(cx: @crate_ctxt, sp: codemap::span) -> str { - codemap::lookup_char_pos(cx.sess.get_codemap(), sp.lo).filename + codemap::lookup_char_pos(cx.sess.codemap, sp.lo).filename } fn create_var(type_tag: int, context: ValueRef, name: str, file: ValueRef, @@ -632,7 +632,7 @@ fn create_local_var(bcx: @block_ctxt, local: @ast::local) let name = alt local.node.pat.node { ast::pat_bind(ident, _) { ident /*XXX deal w/ optional node binding*/ } }; - let loc = codemap::lookup_char_pos(cx.sess.get_codemap(), + let loc = codemap::lookup_char_pos(cx.sess.codemap, local.span.lo); let ty = trans::node_id_type(cx, local.node.id); let tymd = create_ty(cx, ty, local.node.ty); @@ -675,7 +675,7 @@ fn create_arg(bcx: @block_ctxt, arg: ast::arg) /*let arg_n = alt cx.ast_map.get(arg.id) { ast_map::node_arg(_, n) { n - 2u } };*/ - let loc = codemap::lookup_char_pos(cx.sess.get_codemap(), + let loc = codemap::lookup_char_pos(cx.sess.codemap, fcx.sp.lo); let ty = trans::node_id_type(cx, arg.id); let tymd = create_ty(cx, ty, arg.ty); @@ -696,10 +696,10 @@ fn create_arg(bcx: @block_ctxt, arg: ast::arg) } fn update_source_pos(cx: @block_ctxt, s: codemap::span) { - if !bcx_ccx(cx).sess.get_opts().debuginfo { + if !bcx_ccx(cx).sess.opts.debuginfo { ret; } - let cm = bcx_ccx(cx).sess.get_codemap(); + let cm = bcx_ccx(cx).sess.codemap; let blockmd = create_block(cx); let loc = codemap::lookup_char_pos(cm, s.lo); let scopedata = [lli32(loc.line as int), @@ -716,7 +716,8 @@ fn create_function(fcx: @fn_ctxt) -> @metadata<subprogram_md> { #debug("~~"); log(debug, fcx.id); - log(debug, cx.sess.span_str(fcx.sp)); + + log(debug, codemap::span_to_str(fcx.sp, cx.sess.codemap)); let (ident, ret_ty, id) = alt cx.ast_map.get(fcx.id) { ast_map::node_item(item) { @@ -759,12 +760,12 @@ fn create_function(fcx: @fn_ctxt) -> @metadata<subprogram_md> { option::none. {} } - let loc = codemap::lookup_char_pos(cx.sess.get_codemap(), + let loc = codemap::lookup_char_pos(cx.sess.codemap, fcx.sp.lo); let file_node = create_file(cx, loc.filename).node; let key = cx.item_symbols.contains_key(fcx.id) ? fcx.id : id; let mangled = cx.item_symbols.get(key); - let ty_node = if cx.sess.get_opts().extra_debuginfo { + let ty_node = if cx.sess.opts.extra_debuginfo { alt ret_ty.node { ast::ty_nil. { llnull() } _ { create_ty(cx, ty::node_id_to_type(ccx_tcx(cx), id), @@ -792,7 +793,7 @@ fn create_function(fcx: @fn_ctxt) -> @metadata<subprogram_md> { lli32(0i), //index into virt func llnull(), // base type with vtbl lli1(false), // artificial - lli1(cx.sess.get_opts().optimize != 0u), + lli1(cx.sess.opts.optimize != 0u), fcx.llfn //list of template params //func decl descriptor diff --git a/src/comp/middle/fn_usage.rs b/src/comp/middle/fn_usage.rs index 10b4b096c87..6901ae9d9f9 100644 --- a/src/comp/middle/fn_usage.rs +++ b/src/comp/middle/fn_usage.rs @@ -2,6 +2,7 @@ import syntax::ast; import syntax::visit; import option::some; import syntax::print::pprust::expr_to_str; +import driver::session::session; export check_crate_fn_usage; diff --git a/src/comp/middle/gc.rs b/src/comp/middle/gc.rs index 8ae46cec408..6860039aa9f 100644 --- a/src/comp/middle/gc.rs +++ b/src/comp/middle/gc.rs @@ -8,6 +8,7 @@ import middle::trans_common::*; import middle::ty; import option::none; import str; +import driver::session::session; import lll = lib::llvm::llvm; import bld = trans_build; diff --git a/src/comp/middle/kind.rs b/src/comp/middle/kind.rs index 5b1cc73ede0..c9659e7b60a 100644 --- a/src/comp/middle/kind.rs +++ b/src/comp/middle/kind.rs @@ -3,6 +3,7 @@ import syntax::{visit, ast_util}; import syntax::ast::*; import syntax::codemap::span; import ty::{kind, kind_copyable, kind_sendable, kind_noncopyable}; +import driver::session::session; // Kind analysis pass. There are three kinds: // diff --git a/src/comp/middle/mut.rs b/src/comp/middle/mut.rs index 41bc218e176..57dea65ce1a 100644 --- a/src/comp/middle/mut.rs +++ b/src/comp/middle/mut.rs @@ -3,6 +3,7 @@ import option::{some, none}; import syntax::ast::*; import syntax::visit; import syntax::ast_util; +import driver::session::session; tag deref_t { unbox; field; index; } diff --git a/src/comp/middle/resolve.rs b/src/comp/middle/resolve.rs index 8925ca6b312..31fbfea9234 100644 --- a/src/comp/middle/resolve.rs +++ b/src/comp/middle/resolve.rs @@ -162,7 +162,7 @@ tag ns_value_type { ns_a_tag; ns_any_value; } fn resolve_crate(sess: session, amap: ast_map::map, crate: @ast::crate) -> {def_map: def_map, exp_map: exp_map, impl_map: impl_map} { let e = - @{cstore: sess.get_cstore(), + @{cstore: sess.cstore, def_map: new_int_hash(), ast_map: amap, imports: new_int_hash(), @@ -185,7 +185,7 @@ fn resolve_crate(sess: session, amap: ast_map::map, crate: @ast::crate) -> check_exports(e); resolve_names(e, crate); resolve_impls(e, crate); - if sess.get_opts().warn_unused_imports { + if sess.opts.warn_unused_imports { check_unused_imports(e); } ret {def_map: e.def_map, exp_map: e.exp_map, impl_map: e.impl_map}; @@ -472,10 +472,10 @@ fn visit_fn_with_scope(e: @env, fk: visit::fn_kind, decl: ast::fn_decl, // is this a main fn declaration? alt fk { visit::fk_item_fn(nm, _) { - if is_main_name([nm]) && !e.sess.building_library() { + if is_main_name([nm]) && !e.sess.building_library { // This is a main function -- set it in the session // as the main ID - e.sess.set_main_id(id); + e.sess.main_fn = some(id); } } _ { /* fallthrough */ } @@ -1496,7 +1496,7 @@ fn ns_ok(wanted:namespace, actual:namespace) -> bool { fn lookup_external(e: env, cnum: int, ids: [ident], ns: namespace) -> option::t<def> { - for d: def in csearch::lookup_defs(e.sess.get_cstore(), cnum, ids) { + for d: def in csearch::lookup_defs(e.sess.cstore, cnum, ids) { let did = def_id_of_def(d); alt d { def_mod(_) | def_native_mod(_) { @@ -1919,7 +1919,7 @@ fn find_impls_in_mod(e: env, m: def, &impls: [@_impl], } @tmp } else { - csearch::get_impls_for_mod(e.sess.get_cstore(), defid, none) + csearch::get_impls_for_mod(e.sess.cstore, defid, none) }; e.impl_cache.insert(defid, cached); } diff --git a/src/comp/middle/shape.rs b/src/comp/middle/shape.rs index ff760230d93..51bba4514b4 100644 --- a/src/comp/middle/shape.rs +++ b/src/comp/middle/shape.rs @@ -240,7 +240,7 @@ fn tag_kind(ccx: @crate_ctxt, did: ast::def_id) -> tag_kind { // Returns the code corresponding to the pointer size on this architecture. fn s_int(tcx: ty_ctxt) -> u8 { - ret alt tcx.sess.get_targ_cfg().arch { + ret alt tcx.sess.targ_cfg.arch { session::arch_x86. { shape_i32 } session::arch_x86_64. { shape_i64 } session::arch_arm. { shape_i32 } @@ -248,7 +248,7 @@ fn s_int(tcx: ty_ctxt) -> u8 { } fn s_uint(tcx: ty_ctxt) -> u8 { - ret alt tcx.sess.get_targ_cfg().arch { + ret alt tcx.sess.targ_cfg.arch { session::arch_x86. { shape_u32 } session::arch_x86_64. { shape_u64 } session::arch_arm. { shape_u32 } @@ -256,7 +256,7 @@ fn s_uint(tcx: ty_ctxt) -> u8 { } fn s_float(tcx: ty_ctxt) -> u8 { - ret alt tcx.sess.get_targ_cfg().arch { + ret alt tcx.sess.targ_cfg.arch { session::arch_x86. { shape_f64 } session::arch_x86_64. { shape_f64 } session::arch_arm. { shape_f64 } diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs index 1ad1b4f50ef..12d0e416b00 100644 --- a/src/comp/middle/trans.rs +++ b/src/comp/middle/trans.rs @@ -18,6 +18,7 @@ import std::map::hashmap; import std::map::{new_int_hash, new_str_hash}; import option::{some, none}; import driver::session; +import session::session; import front::attr; import middle::{ty, gc, resolve, debuginfo}; import middle::freevars::*; @@ -364,7 +365,7 @@ fn trans_native_call(cx: @block_ctxt, externs: hashmap<str, ValueRef>, fn trans_free_if_not_gc(cx: @block_ctxt, v: ValueRef) -> @block_ctxt { let ccx = bcx_ccx(cx); - if !ccx.sess.get_opts().do_gc { + if !ccx.sess.opts.do_gc { Call(cx, ccx.upcalls.free, [PointerCast(cx, v, T_ptr(T_i8())), C_int(bcx_ccx(cx), 0)]); @@ -1153,7 +1154,7 @@ fn declare_tydesc(cx: @local_ctxt, sp: span, t: ty::t, ty_params: [uint], llalign = C_int(ccx, 0); } let name; - if cx.ccx.sess.get_opts().debuginfo { + if cx.ccx.sess.opts.debuginfo { name = mangle_internal_name_by_type_only(cx.ccx, t, "tydesc"); name = sanitize(name); } else { name = mangle_internal_name_by_seq(cx.ccx, "tydesc"); } @@ -1183,7 +1184,7 @@ fn declare_generic_glue(cx: @local_ctxt, t: ty::t, llfnty: TypeRef, name: str) -> ValueRef { let name = name; let fn_nm; - if cx.ccx.sess.get_opts().debuginfo { + if cx.ccx.sess.opts.debuginfo { fn_nm = mangle_internal_name_by_type_only(cx.ccx, t, "glue_" + name); fn_nm = sanitize(fn_nm); } else { fn_nm = mangle_internal_name_by_seq(cx.ccx, "glue_" + name); } @@ -1237,7 +1238,7 @@ fn make_generic_glue_inner(cx: @local_ctxt, sp: span, t: ty::t, fn make_generic_glue(cx: @local_ctxt, sp: span, t: ty::t, llfn: ValueRef, helper: glue_helper, ty_params: [uint], name: str) -> ValueRef { - if !cx.ccx.sess.get_opts().stats { + if !cx.ccx.sess.opts.stats { ret make_generic_glue_inner(cx, sp, t, llfn, helper, ty_params); } @@ -1527,7 +1528,7 @@ fn decr_refcnt_maybe_free(cx: @block_ctxt, box_ptr: ValueRef, t: ty::t) // Structural comparison: a rather involved form of glue. fn maybe_name_value(cx: @crate_ctxt, v: ValueRef, s: str) { - if cx.sess.get_opts().save_temps { + if cx.sess.opts.save_temps { let _: () = str::as_buf(s, {|buf| llvm::LLVMSetValueName(v, buf) }); } } @@ -1971,7 +1972,7 @@ fn call_memmove(cx: @block_ctxt, dst: ValueRef, src: ValueRef, // LLVM complains -- not even a constant element of a tydesc works). let ccx = bcx_ccx(cx); - let key = alt ccx.sess.get_targ_cfg().arch { + let key = alt ccx.sess.targ_cfg.arch { session::arch_x86. | session::arch_arm. { "llvm.memmove.p0i8.p0i8.i32" } session::arch_x86_64. { "llvm.memmove.p0i8.p0i8.i64" } }; @@ -2623,7 +2624,7 @@ fn lval_no_env(bcx: @block_ctxt, val: ValueRef, kind: lval_kind) fn trans_external_path(cx: @block_ctxt, did: ast::def_id, tpt: ty::ty_param_bounds_and_ty) -> ValueRef { let lcx = cx.fcx.lcx; - let name = csearch::get_symbol(lcx.ccx.sess.get_cstore(), did); + let name = csearch::get_symbol(lcx.ccx.sess.cstore, did); ret get_extern_const(lcx.ccx.externs, lcx.ccx.llmod, name, type_of_ty_param_bounds_and_ty(lcx, cx.sp, tpt)); } @@ -2667,7 +2668,7 @@ fn lookup_discriminant(lcx: @local_ctxt, vid: ast::def_id) -> ValueRef { none. { // It's an external discriminant that we haven't seen yet. assert (vid.crate != ast::local_crate); - let sym = csearch::get_symbol(lcx.ccx.sess.get_cstore(), vid); + let sym = csearch::get_symbol(lcx.ccx.sess.cstore, vid); let gvar = str::as_buf(sym, {|buf| @@ -3923,7 +3924,8 @@ fn trans_fail_value(bcx: @block_ctxt, sp_opt: option::t<span>, let V_line; alt sp_opt { some(sp) { - let loc = bcx_ccx(bcx).sess.lookup_pos(sp.lo); + let sess = bcx_ccx(bcx).sess; + let loc = codemap::lookup_char_pos(sess.parse_sess.cm, sp.lo); V_filename = C_cstr(bcx_ccx(bcx), loc.filename); V_line = loc.line as int; } @@ -4077,7 +4079,7 @@ fn zero_alloca(cx: @block_ctxt, llptr: ValueRef, t: ty::t) fn trans_stmt(cx: @block_ctxt, s: ast::stmt) -> @block_ctxt { // FIXME Fill in cx.sp - if (!bcx_ccx(cx).sess.get_opts().no_asm_comments) { + if (!bcx_ccx(cx).sess.opts.no_asm_comments) { add_span_comment(cx, s.span, stmt_to_str(s)); } @@ -4097,7 +4099,7 @@ fn trans_stmt(cx: @block_ctxt, s: ast::stmt) -> @block_ctxt { } else { bcx = init_ref_local(bcx, local); } - if bcx_ccx(cx).sess.get_opts().extra_debuginfo { + if bcx_ccx(cx).sess.opts.extra_debuginfo { debuginfo::create_local_var(bcx, local); } } @@ -4116,8 +4118,8 @@ fn trans_stmt(cx: @block_ctxt, s: ast::stmt) -> @block_ctxt { fn new_block_ctxt(cx: @fn_ctxt, parent: block_parent, kind: block_kind, name: str) -> @block_ctxt { let s = ""; - if cx.lcx.ccx.sess.get_opts().save_temps || - cx.lcx.ccx.sess.get_opts().debuginfo { + if cx.lcx.ccx.sess.opts.save_temps || + cx.lcx.ccx.sess.opts.debuginfo { s = cx.lcx.ccx.names.next(name); } let llbb: BasicBlockRef = @@ -4284,7 +4286,7 @@ fn alloc_ty(cx: @block_ctxt, t: ty::t) -> result { // past caller conventions and may well make sense again, // so we leave it as-is. - if bcx_tcx(cx).sess.get_opts().do_gc { + if bcx_tcx(cx).sess.opts.do_gc { bcx = gc::add_gc_root(bcx, val, t); } @@ -4309,7 +4311,7 @@ fn alloc_local(cx: @block_ctxt, local: @ast::local) -> @block_ctxt { let r = alloc_ty(cx, t); alt local.node.pat.node { ast::pat_bind(ident, none.) { - if bcx_ccx(cx).sess.get_opts().debuginfo { + if bcx_ccx(cx).sess.opts.debuginfo { let _: () = str::as_buf(ident, {|buf| llvm::LLVMSetValueName(r.val, buf) }); @@ -4502,7 +4504,7 @@ fn copy_args_to_allocas(fcx: @fn_ctxt, bcx: @block_ctxt, args: [ast::arg], } ast::by_ref. {} } - if fcx_ccx(fcx).sess.get_opts().extra_debuginfo { + if fcx_ccx(fcx).sess.opts.extra_debuginfo { debuginfo::create_arg(bcx, args[arg_n]); } arg_n += 1u; @@ -4637,12 +4639,12 @@ fn trans_closure(cx: @local_ctxt, sp: span, decl: ast::fn_decl, fn trans_fn(cx: @local_ctxt, sp: span, decl: ast::fn_decl, body: ast::blk, llfndecl: ValueRef, ty_self: self_arg, ty_params: [ast::ty_param], id: ast::node_id) { - let do_time = cx.ccx.sess.get_opts().stats; + let do_time = cx.ccx.sess.opts.stats; let start = do_time ? time::get_time() : {sec: 0u32, usec: 0u32}; let fcx = option::none; trans_closure(cx, sp, decl, body, llfndecl, ty_self, ty_params, id, {|new_fcx| fcx = option::some(new_fcx);}); - if cx.ccx.sess.get_opts().extra_debuginfo { + if cx.ccx.sess.opts.extra_debuginfo { debuginfo::create_function(option::get(fcx)); } if do_time { @@ -5149,7 +5151,7 @@ fn register_fn_full(ccx: @crate_ctxt, sp: span, path: [str], _flav: str, ccx.item_ids.insert(node_id, llfn); ccx.item_symbols.insert(node_id, ps); - let is_main: bool = is_main_name(path) && !ccx.sess.building_library(); + let is_main: bool = is_main_name(path) && !ccx.sess.building_library; if is_main { create_main_wrapper(ccx, sp, llfn, node_type); } } @@ -5551,12 +5553,12 @@ fn create_module_map(ccx: @crate_ctxt) -> ValueRef { fn decl_crate_map(sess: session::session, mapname: str, llmod: ModuleRef) -> ValueRef { - let targ_cfg = sess.get_targ_cfg(); + let targ_cfg = sess.targ_cfg; let int_type = T_int(targ_cfg); let n_subcrates = 1; - let cstore = sess.get_cstore(); + let cstore = sess.cstore; while cstore::have_crate_data(cstore, n_subcrates) { n_subcrates += 1; } - let mapname = sess.building_library() ? mapname : "toplevel"; + let mapname = sess.building_library ? mapname : "toplevel"; let sym_name = "_rust_crate_map_" + mapname; let arrtype = T_array(int_type, n_subcrates as uint); let maptype = T_struct([int_type, arrtype]); @@ -5572,7 +5574,7 @@ fn decl_crate_map(sess: session::session, mapname: str, fn fill_crate_map(ccx: @crate_ctxt, map: ValueRef) { let subcrates: [ValueRef] = []; let i = 1; - let cstore = ccx.sess.get_cstore(); + let cstore = ccx.sess.cstore; while cstore::have_crate_data(cstore, i) { let nm = "_rust_crate_map_" + cstore::get_crate_data(cstore, i).name; let cr = str::as_buf(nm, {|buf| @@ -5588,7 +5590,7 @@ fn fill_crate_map(ccx: @crate_ctxt, map: ValueRef) { } fn write_metadata(cx: @crate_ctxt, crate: @ast::crate) { - if !cx.sess.building_library() { ret; } + if !cx.sess.building_library { ret; } let llmeta = C_postr(metadata::encoder::encode_metadata(cx, crate)); let llconst = trans_common::C_struct([llmeta]); let llglobal = @@ -5598,7 +5600,7 @@ fn write_metadata(cx: @crate_ctxt, crate: @ast::crate) { }); llvm::LLVMSetInitializer(llglobal, llconst); let _: () = - str::as_buf(cx.sess.get_targ_cfg().target_strs.meta_sect_name, + str::as_buf(cx.sess.targ_cfg.target_strs.meta_sect_name, {|buf| llvm::LLVMSetSection(llglobal, buf) }); llvm::LLVMSetLinkage(llglobal, lib::llvm::LLVMInternalLinkage as llvm::Linkage); @@ -5645,19 +5647,19 @@ fn trans_crate(sess: session::session, crate: @ast::crate, tcx: ty::ctxt, llvm::LLVMModuleCreateWithNameInContext (buf, llvm::LLVMGetGlobalContext()) }); - let data_layout = sess.get_targ_cfg().target_strs.data_layout; - let targ_triple = sess.get_targ_cfg().target_strs.target_triple; + let data_layout = sess.targ_cfg.target_strs.data_layout; + let targ_triple = sess.targ_cfg.target_strs.target_triple; let _: () = str::as_buf(data_layout, {|buf| llvm::LLVMSetDataLayout(llmod, buf) }); let _: () = str::as_buf(targ_triple, {|buf| llvm::LLVMSetTarget(llmod, buf) }); - let targ_cfg = sess.get_targ_cfg(); - let td = mk_target_data(sess.get_targ_cfg().target_strs.data_layout); + let targ_cfg = sess.targ_cfg; + let td = mk_target_data(sess.targ_cfg.target_strs.data_layout); let tn = mk_type_names(); let intrinsics = declare_intrinsics(llmod); - if sess.get_opts().extra_debuginfo { + if sess.opts.extra_debuginfo { declare_dbg_intrinsics(llmod, intrinsics); } let int_type = T_int(targ_cfg); @@ -5668,7 +5670,7 @@ fn trans_crate(sess: session::session, crate: @ast::crate, tcx: ty::ctxt, let tydesc_type = T_tydesc(targ_cfg); tn.associate("tydesc", tydesc_type); let crate_map = decl_crate_map(sess, link_meta.name, llmod); - let dbg_cx = if sess.get_opts().debuginfo { + let dbg_cx = if sess.opts.debuginfo { option::some(@{llmetadata: map::new_int_hash(), names: namegen(0)}) } else { @@ -5737,7 +5739,7 @@ fn trans_crate(sess: session::session, crate: @ast::crate, tcx: ty::ctxt, // Translate the metadata. write_metadata(cx.ccx, crate); - if ccx.sess.get_opts().stats { + if ccx.sess.opts.stats { #error("--- trans stats ---"); #error("n_static_tydescs: %u", ccx.stats.n_static_tydescs); #error("n_derived_tydescs: %u", ccx.stats.n_derived_tydescs); diff --git a/src/comp/middle/trans_build.rs b/src/comp/middle/trans_build.rs index 1295e24b110..a9d18fbd55a 100644 --- a/src/comp/middle/trans_build.rs +++ b/src/comp/middle/trans_build.rs @@ -1,7 +1,8 @@ import core::{vec, str}; import str::sbuf; import lib::llvm::llvm; -import syntax::codemap::span; +import syntax::codemap; +import codemap::span; import llvm::{ValueRef, TypeRef, BasicBlockRef, BuilderRef, Opcode, ModuleRef}; import trans_common::{block_ctxt, T_ptr, T_nil, T_i8, T_i1, T_void, @@ -509,8 +510,9 @@ fn _UndefReturn(cx: @block_ctxt, Fn: ValueRef) -> ValueRef { fn add_span_comment(bcx: @block_ctxt, sp: span, text: str) { let ccx = bcx_ccx(bcx); - if (!ccx.sess.get_opts().no_asm_comments) { - let s = text + " (" + ccx.sess.span_str(sp) + ")"; + if (!ccx.sess.opts.no_asm_comments) { + let s = text + " (" + codemap::span_to_str(sp, ccx.sess.codemap) + + ")"; log(debug, s); add_comment(bcx, s); } @@ -518,7 +520,7 @@ fn add_span_comment(bcx: @block_ctxt, sp: span, text: str) { fn add_comment(bcx: @block_ctxt, text: str) { let ccx = bcx_ccx(bcx); - if (!ccx.sess.get_opts().no_asm_comments) { + if (!ccx.sess.opts.no_asm_comments) { check str::is_not_empty("$"); let sanitized = str::replace(text, "$", ""); let comment_text = "; " + sanitized; diff --git a/src/comp/middle/trans_closure.rs b/src/comp/middle/trans_closure.rs index 398d47469f4..3319969f8bd 100644 --- a/src/comp/middle/trans_closure.rs +++ b/src/comp/middle/trans_closure.rs @@ -364,7 +364,7 @@ fn store_environment( let {bcx: bcx, val:bindings_slot} = GEP_tup_like_1(bcx, cboxptr_ty, llbox, [0, abi::cbox_elt_bindings]); vec::iteri(bound_values) { |i, bv| - if (!ccx.sess.get_opts().no_asm_comments) { + if (!ccx.sess.opts.no_asm_comments) { add_comment(bcx, #fmt("Copy %s into closure", ev_to_str(ccx, bv))); } diff --git a/src/comp/middle/trans_common.rs b/src/comp/middle/trans_common.rs index 6b28f1483e7..c0f110e65c3 100644 --- a/src/comp/middle/trans_common.rs +++ b/src/comp/middle/trans_common.rs @@ -9,6 +9,7 @@ import std::map::hashmap; import option::some; import syntax::ast; import driver::session; +import session::session; import middle::{resolve, ty}; import back::{link, abi, upcall}; import util::common::*; @@ -331,7 +332,7 @@ fn get_res_dtor(ccx: @crate_ctxt, sp: span, did: ast::def_id, inner_t: ty::t) [{mode: ast::by_ref, ty: inner_t}], nil_res, *param_bounds); ret trans::get_extern_const(ccx.externs, ccx.llmod, - csearch::get_symbol(ccx.sess.get_cstore(), + csearch::get_symbol(ccx.sess.cstore, did), f_t); } @@ -662,7 +663,7 @@ fn T_vec2(targ_cfg: @session::config, t: TypeRef) -> TypeRef { } fn T_vec(ccx: @crate_ctxt, t: TypeRef) -> TypeRef { - ret T_vec2(ccx.sess.get_targ_cfg(), t); + ret T_vec2(ccx.sess.targ_cfg, t); } // Note that the size of this one is in bytes. diff --git a/src/comp/middle/trans_impl.rs b/src/comp/middle/trans_impl.rs index 0139148d728..0a883c193f8 100644 --- a/src/comp/middle/trans_impl.rs +++ b/src/comp/middle/trans_impl.rs @@ -360,7 +360,7 @@ fn get_dict_ptrs(bcx: @block_ctxt, origin: typeck::dict_origin) if did.crate == ast::local_crate { ccx.item_ids.get(did.node) } else { - let name = csearch::get_symbol(ccx.sess.get_cstore(), did); + let name = csearch::get_symbol(ccx.sess.cstore, did); get_extern_const(ccx.externs, ccx.llmod, name, T_ptr(T_i8())) } } diff --git a/src/comp/middle/trans_objects.rs b/src/comp/middle/trans_objects.rs index 913cca74192..b4edb2b1cf2 100644 --- a/src/comp/middle/trans_objects.rs +++ b/src/comp/middle/trans_objects.rs @@ -16,6 +16,8 @@ import trans_common::*; import trans::*; import trans_build::*; +import driver::session::session; + export trans_anon_obj; export trans_obj; diff --git a/src/comp/middle/tstate/auxiliary.rs b/src/comp/middle/tstate/auxiliary.rs index de723dc16cc..8d1e0bbb311 100644 --- a/src/comp/middle/tstate/auxiliary.rs +++ b/src/comp/middle/tstate/auxiliary.rs @@ -2,8 +2,8 @@ import core::{vec, int, uint, option}; import option::*; import syntax::ast::*; import syntax::ast_util::*; -import syntax::codemap::span; -import syntax::visit; +import syntax::{visit, codemap}; +import codemap::span; import std::map::{new_int_hash}; import syntax::print::pprust::path_to_str; import tstate::ann::{pre_and_post, pre_and_post_state, empty_ann, prestate, @@ -15,6 +15,7 @@ import tstate::ann::{pre_and_post, pre_and_post_state, empty_ann, prestate, clear_in_poststate_}; import tritv::*; import bitvectors::promises_; +import driver::session::session; import syntax::print::pprust::{constr_args_to_str, lit_to_str}; @@ -51,13 +52,13 @@ fn constraint_to_str(tcx: ty::ctxt, c: sp_constr) -> str { alt c.node { ninit(id, i) { ret #fmt("init(%s id=%d - arising from %s)", - i, id, tcx.sess.span_str(c.span)); + i, id, codemap::span_to_str(c.span, tcx.sess.codemap)); } npred(p, _, args) { ret #fmt("%s(%s) - arising from %s", path_to_str(p), comma_str(args), - tcx.sess.span_str(c.span)); + codemap::span_to_str(c.span, tcx.sess.codemap)); } } } diff --git a/src/comp/middle/tstate/bitvectors.rs b/src/comp/middle/tstate/bitvectors.rs index 9f4d5949e01..e522103d62b 100644 --- a/src/comp/middle/tstate/bitvectors.rs +++ b/src/comp/middle/tstate/bitvectors.rs @@ -12,6 +12,7 @@ import tstate::ann::{pre_and_post, precond, postcond, prestate, poststate, clear_in_poststate_}; import tritv::*; import util::common::*; +import driver::session::session; fn bit_num(fcx: fn_ctxt, c: tsconstr) -> uint { let d = tsconstr_to_def_id(c); diff --git a/src/comp/middle/tstate/ck.rs b/src/comp/middle/tstate/ck.rs index 0ebf4bd0ccc..fbe32a4adff 100644 --- a/src/comp/middle/tstate/ck.rs +++ b/src/comp/middle/tstate/ck.rs @@ -15,6 +15,7 @@ import annotate::annotate_crate; import collect_locals::mk_f_to_fn_info; import pre_post_conditions::fn_pre_post; import states::find_pre_post_state_fn; +import driver::session::session; fn check_unused_vars(fcx: fn_ctxt) { diff --git a/src/comp/middle/tstate/collect_locals.rs b/src/comp/middle/tstate/collect_locals.rs index 939197716b4..f303e790189 100644 --- a/src/comp/middle/tstate/collect_locals.rs +++ b/src/comp/middle/tstate/collect_locals.rs @@ -6,6 +6,7 @@ import aux::*; import util::common::new_def_hash; import syntax::codemap::span; import syntax::ast_util::respan; +import driver::session::session; type ctxt = {cs: @mutable [sp_constr], tcx: ty::ctxt}; diff --git a/src/comp/middle/tstate/pre_post_conditions.rs b/src/comp/middle/tstate/pre_post_conditions.rs index 244f696549e..98860463d19 100644 --- a/src/comp/middle/tstate/pre_post_conditions.rs +++ b/src/comp/middle/tstate/pre_post_conditions.rs @@ -14,6 +14,7 @@ import syntax::visit; import util::common::{new_def_hash, log_expr, field_exprs, has_nonlocal_exits, log_stmt}; import syntax::codemap::span; +import driver::session::session; fn find_pre_post_mod(_m: _mod) -> _mod { #debug("implement find_pre_post_mod!"); diff --git a/src/comp/middle/tstate/states.rs b/src/comp/middle/tstate/states.rs index e2927174b56..40f71703843 100644 --- a/src/comp/middle/tstate/states.rs +++ b/src/comp/middle/tstate/states.rs @@ -10,6 +10,7 @@ import syntax::ast_util::*; import syntax::codemap::span; import middle::ty::{expr_ty, type_is_bot}; import util::common::{field_exprs, has_nonlocal_exits}; +import driver::session::session; fn forbid_upvar(fcx: fn_ctxt, rhs_id: node_id, sp: span, t: oper_type) { alt t { diff --git a/src/comp/middle/ty.rs b/src/comp/middle/ty.rs index 2cf62fcb2d4..3607edb43c3 100644 --- a/src/comp/middle/ty.rs +++ b/src/comp/middle/ty.rs @@ -9,6 +9,7 @@ import option::none; import option::some; import std::smallintmap; import driver::session; +import session::session; import syntax::ast; import syntax::ast::*; import syntax::ast_util; @@ -1864,7 +1865,7 @@ mod unify { // Simple structural type comparison. fn struct_cmp(cx: @ctxt, expected: t, actual: t) -> result { let tcx = cx.tcx; - let cfg = tcx.sess.get_targ_cfg(); + let cfg = tcx.sess.targ_cfg; if mach_struct(tcx, cfg, expected) == mach_struct(tcx, cfg, actual) { ret ures_ok(expected); } diff --git a/src/comp/middle/typeck.rs b/src/comp/middle/typeck.rs index 18b602e33aa..0ecff4260fb 100644 --- a/src/comp/middle/typeck.rs +++ b/src/comp/middle/typeck.rs @@ -3,7 +3,7 @@ import ast::spanned; import syntax::ast_util::{local_def, respan}; import syntax::visit; import metadata::csearch; -import driver::session; +import driver::session::session; import util::common::*; import syntax::codemap::span; import middle::ty; @@ -1468,7 +1468,7 @@ fn check_pat(fcx: @fn_ctxt, map: ast_util::pat_id_map, pat: @ast::pat, } } -fn require_unsafe(sess: session::session, f_purity: ast::purity, sp: span) { +fn require_unsafe(sess: session, f_purity: ast::purity, sp: span) { alt f_purity { ast::unsafe_fn. { ret; } _ { @@ -1479,7 +1479,7 @@ fn require_unsafe(sess: session::session, f_purity: ast::purity, sp: span) { } } -fn require_impure(sess: session::session, f_purity: ast::purity, sp: span) { +fn require_impure(sess: session, f_purity: ast::purity, sp: span) { alt f_purity { ast::unsafe_fn. { ret; } ast::impure_fn. { ret; } @@ -2879,8 +2879,8 @@ fn check_main_fn_ty(tcx: ty::ctxt, main_id: ast::node_id) { } fn check_for_main_fn(tcx: ty::ctxt, crate: @ast::crate) { - if !tcx.sess.building_library() { - alt tcx.sess.get_main_id() { + if !tcx.sess.building_library { + alt tcx.sess.main_fn { some(id) { check_main_fn_ty(tcx, id); } none. { tcx.sess.span_err(crate.span, "main function not found"); } } |
