diff --git a/src/librustc/middle/typeck/check/method.rs b/src/librustc/middle/typeck/check/method.rs index 2892ad62b73..747c097f199 100644 --- a/src/librustc/middle/typeck/check/method.rs +++ b/src/librustc/middle/typeck/check/method.rs @@ -343,7 +343,7 @@ impl<'a> LookupContext<'a> { // If the method being called is associated with a trait, then // find all the impls of that trait. Each of those are // candidates. - let trait_map: &mut resolve::TraitMap = &mut self.fcx.ccx.trait_map; + let trait_map: &resolve::TraitMap = &self.fcx.ccx.trait_map; let opt_applicable_traits = trait_map.find(&self.expr.id); for applicable_traits in opt_applicable_traits.iter() { for trait_did in applicable_traits.iter() { diff --git a/src/librustc/middle/typeck/check/mod.rs b/src/librustc/middle/typeck/check/mod.rs index 82f7ba2e88b..1b89cf67cab 100644 --- a/src/librustc/middle/typeck/check/mod.rs +++ b/src/librustc/middle/typeck/check/mod.rs @@ -251,7 +251,7 @@ pub struct FnCtxt { inh: @Inherited, - ccx: @mut CrateCtxt, + ccx: @CrateCtxt, } impl Inherited { @@ -272,7 +272,7 @@ impl Inherited { } // Used by check_const and check_enum_variants -pub fn blank_fn_ctxt(ccx: @mut CrateCtxt, +pub fn blank_fn_ctxt(ccx: @CrateCtxt, rty: ty::t, region_bnd: ast::NodeId) -> @FnCtxt { @@ -302,7 +302,7 @@ impl ExprTyProvider for FnCtxt { } } -struct CheckItemTypesVisitor { ccx: @mut CrateCtxt } +struct CheckItemTypesVisitor { ccx: @CrateCtxt } impl Visitor<()> for CheckItemTypesVisitor { fn visit_item(&mut self, i:@ast::item, _:()) { @@ -311,12 +311,12 @@ impl Visitor<()> for CheckItemTypesVisitor { } } -pub fn check_item_types(ccx: @mut CrateCtxt, crate: &ast::Crate) { +pub fn check_item_types(ccx: @CrateCtxt, crate: &ast::Crate) { let mut visit = CheckItemTypesVisitor { ccx: ccx }; visit::walk_crate(&mut visit, crate, ()); } -pub fn check_bare_fn(ccx: @mut CrateCtxt, +pub fn check_bare_fn(ccx: @CrateCtxt, decl: &ast::fn_decl, body: ast::P, id: ast::NodeId, @@ -407,7 +407,7 @@ impl Visitor<()> for GatherLocalsVisitor { } -pub fn check_fn(ccx: @mut CrateCtxt, +pub fn check_fn(ccx: @CrateCtxt, opt_self_info: Option, purity: ast::purity, fn_sig: &ty::FnSig, @@ -556,7 +556,7 @@ pub fn check_no_duplicate_fields(tcx: ty::ctxt, } } -pub fn check_struct(ccx: @mut CrateCtxt, id: ast::NodeId, span: Span) { +pub fn check_struct(ccx: @CrateCtxt, id: ast::NodeId, span: Span) { let tcx = ccx.tcx; // Check that the class is instantiable @@ -567,7 +567,7 @@ pub fn check_struct(ccx: @mut CrateCtxt, id: ast::NodeId, span: Span) { } } -pub fn check_item(ccx: @mut CrateCtxt, it: @ast::item) { +pub fn check_item(ccx: @CrateCtxt, it: @ast::item) { debug!("check_item(it.id={}, it.ident={})", it.id, ty::item_path_str(ccx.tcx, local_def(it.id))); @@ -670,7 +670,7 @@ pub fn check_item(ccx: @mut CrateCtxt, it: @ast::item) { } } -fn check_method_body(ccx: @mut CrateCtxt, +fn check_method_body(ccx: @CrateCtxt, item_generics: &ty::Generics, self_bound: Option<@ty::TraitRef>, method: @ast::method) { @@ -722,7 +722,7 @@ fn check_method_body(ccx: @mut CrateCtxt, param_env); } -fn check_impl_methods_against_trait(ccx: @mut CrateCtxt, +fn check_impl_methods_against_trait(ccx: @CrateCtxt, impl_span: Span, impl_generics: &ty::Generics, ast_trait_ref: &ast::trait_ref, @@ -1388,7 +1388,7 @@ pub fn check_lit(fcx: @FnCtxt, lit: @ast::lit) -> ty::t { } } -pub fn valid_range_bounds(ccx: @mut CrateCtxt, +pub fn valid_range_bounds(ccx: @CrateCtxt, from: @ast::Expr, to: @ast::Expr) -> Option { @@ -3443,7 +3443,7 @@ pub fn check_block_with_expected(fcx: @FnCtxt, fcx.ps.set(prev); } -pub fn check_const(ccx: @mut CrateCtxt, +pub fn check_const(ccx: @CrateCtxt, sp: Span, e: @ast::Expr, id: ast::NodeId) { @@ -3519,15 +3519,15 @@ pub fn check_simd(tcx: ty::ctxt, sp: Span, id: ast::NodeId) { } } -pub fn check_enum_variants(ccx: @mut CrateCtxt, +pub fn check_enum_variants(ccx: @CrateCtxt, sp: Span, vs: &[ast::P], id: ast::NodeId) { - fn disr_in_range(ccx: @mut CrateCtxt, + fn disr_in_range(ccx: @CrateCtxt, ty: attr::IntType, disr: ty::Disr) -> bool { - fn uint_in_range(ccx: @mut CrateCtxt, ty: ast::uint_ty, disr: ty::Disr) -> bool { + fn uint_in_range(ccx: @CrateCtxt, ty: ast::uint_ty, disr: ty::Disr) -> bool { match ty { ast::ty_u8 => disr as u8 as Disr == disr, ast::ty_u16 => disr as u16 as Disr == disr, @@ -3536,7 +3536,7 @@ pub fn check_enum_variants(ccx: @mut CrateCtxt, ast::ty_u => uint_in_range(ccx, ccx.tcx.sess.targ_cfg.uint_type, disr) } } - fn int_in_range(ccx: @mut CrateCtxt, ty: ast::int_ty, disr: ty::Disr) -> bool { + fn int_in_range(ccx: @CrateCtxt, ty: ast::int_ty, disr: ty::Disr) -> bool { match ty { ast::ty_i8 => disr as i8 as Disr == disr, ast::ty_i16 => disr as i16 as Disr == disr, @@ -3551,7 +3551,7 @@ pub fn check_enum_variants(ccx: @mut CrateCtxt, } } - fn do_check(ccx: @mut CrateCtxt, + fn do_check(ccx: @CrateCtxt, vs: &[ast::P], id: ast::NodeId, hint: attr::ReprAttr) @@ -3923,7 +3923,7 @@ pub fn may_break(cx: ty::ctxt, id: ast::NodeId, b: ast::P) -> bool { }})) } -pub fn check_bounds_are_used(ccx: @mut CrateCtxt, +pub fn check_bounds_are_used(ccx: @CrateCtxt, span: Span, tps: &OptVec, ty: ty::t) { @@ -3953,8 +3953,8 @@ pub fn check_bounds_are_used(ccx: @mut CrateCtxt, } } -pub fn check_intrinsic_type(ccx: @mut CrateCtxt, it: @ast::foreign_item) { - fn param(ccx: @mut CrateCtxt, n: uint) -> ty::t { +pub fn check_intrinsic_type(ccx: @CrateCtxt, it: @ast::foreign_item) { + fn param(ccx: @CrateCtxt, n: uint) -> ty::t { ty::mk_param(ccx.tcx, n, local_def(0)) } diff --git a/src/librustc/middle/typeck/check/vtable.rs b/src/librustc/middle/typeck/check/vtable.rs index c6636db8393..dc17a082201 100644 --- a/src/librustc/middle/typeck/check/vtable.rs +++ b/src/librustc/middle/typeck/check/vtable.rs @@ -728,7 +728,7 @@ fn resolve_expr(fcx: @FnCtxt, visit::walk_expr(&mut fcx, ex, ()); } -pub fn resolve_impl(ccx: @mut CrateCtxt, +pub fn resolve_impl(ccx: @CrateCtxt, impl_item: @ast::item, impl_generics: &ty::Generics, impl_trait_ref: &ty::TraitRef) { diff --git a/src/librustc/middle/typeck/coherence.rs b/src/librustc/middle/typeck/coherence.rs index 6244c116bae..5bca8b4432c 100644 --- a/src/librustc/middle/typeck/coherence.rs +++ b/src/librustc/middle/typeck/coherence.rs @@ -142,7 +142,7 @@ pub fn get_base_type_def_id(inference_context: @mut InferCtxt, } } -pub fn CoherenceChecker(crate_context: @mut CrateCtxt) -> CoherenceChecker { +pub fn CoherenceChecker(crate_context: @CrateCtxt) -> CoherenceChecker { CoherenceChecker { crate_context: crate_context, inference_context: new_infer_ctxt(crate_context.tcx), @@ -150,7 +150,7 @@ pub fn CoherenceChecker(crate_context: @mut CrateCtxt) -> CoherenceChecker { } pub struct CoherenceChecker { - crate_context: @mut CrateCtxt, + crate_context: @CrateCtxt, inference_context: @mut InferCtxt, } @@ -825,7 +825,7 @@ fn subst_receiver_types_in_method_ty(tcx: ty::ctxt, ) } -pub fn check_coherence(crate_context: @mut CrateCtxt, crate: &Crate) { +pub fn check_coherence(crate_context: @CrateCtxt, crate: &Crate) { let coherence_checker = CoherenceChecker(crate_context); coherence_checker.check_coherence(crate); } diff --git a/src/librustc/middle/typeck/collect.rs b/src/librustc/middle/typeck/collect.rs index c860310ade4..3dfcf15e024 100644 --- a/src/librustc/middle/typeck/collect.rs +++ b/src/librustc/middle/typeck/collect.rs @@ -57,7 +57,7 @@ use syntax::opt_vec::OptVec; use syntax::parse::token::special_idents; struct CollectItemTypesVisitor { - ccx: @mut CrateCtxt + ccx: @CrateCtxt } impl visit::Visitor<()> for CollectItemTypesVisitor { @@ -71,7 +71,7 @@ impl visit::Visitor<()> for CollectItemTypesVisitor { } } -pub fn collect_item_types(ccx: @mut CrateCtxt, crate: &ast::Crate) { +pub fn collect_item_types(ccx: @CrateCtxt, crate: &ast::Crate) { fn collect_intrinsic_type(ccx: &CrateCtxt, lang_item: ast::DefId) { let ty::ty_param_bounds_and_ty { ty: ty, .. } = diff --git a/src/librustc/middle/typeck/mod.rs b/src/librustc/middle/typeck/mod.rs index 2da5c09e002..62fb7390fa4 100644 --- a/src/librustc/middle/typeck/mod.rs +++ b/src/librustc/middle/typeck/mod.rs @@ -456,7 +456,7 @@ pub fn check_crate(tcx: ty::ctxt, crate: &ast::Crate) -> (method_map, vtable_map) { let time_passes = tcx.sess.time_passes(); - let ccx = @mut CrateCtxt { + let ccx = @CrateCtxt { trait_map: trait_map, method_map: @mut HashMap::new(), vtable_map: @RefCell::new(HashMap::new()),