From 384906c1e807196fbb8653e3233c92f920888d40 Mon Sep 17 00:00:00 2001 From: Graydon Hoare Date: Wed, 19 Sep 2012 13:21:25 -0700 Subject: [PATCH] Remove unused hokey-hashes from typeck and region inference. --- src/rustc/middle/ty.rs | 110 ------------------ .../typeck/infer/region_var_bindings.rs | 10 +- 2 files changed, 1 insertion(+), 119 deletions(-) diff --git a/src/rustc/middle/ty.rs b/src/rustc/middle/ty.rs index bae64f02fcc..f0b71ea556a 100644 --- a/src/rustc/middle/ty.rs +++ b/src/rustc/middle/ty.rs @@ -2645,120 +2645,10 @@ impl sty : to_bytes::IterBytes { } } -pure fn hash_bound_region(br: &bound_region) -> uint { - match *br { // no idea if this is any good - ty::br_self => 0u, - ty::br_anon(idx) => 1u | (idx << 2), - ty::br_named(ident) => 2u | (ident << 2), - ty::br_cap_avoid(id, br) => - 3u | (id as uint << 2) | hash_bound_region(br) - } -} - fn br_hashmap() -> HashMap { map::HashMap() } -pure fn hash_region(r: ®ion) -> uint { - match *r { // no idea if this is any good - re_bound(br) => (hash_bound_region(&br)) << 2u | 0u, - re_free(id, br) => ((id as uint) << 4u) | - (hash_bound_region(&br)) << 2u | 1u, - re_scope(id) => ((id as uint) << 2u) | 2u, - re_var(id) => (id.to_uint() << 2u) | 3u, - re_static => 4u - } -} - -// Type hashing. -pure fn hash_type_structure(st: &sty) -> uint { - pure fn hash_uint(id: uint, n: uint) -> uint { (id << 2u) + n } - pure fn hash_def(id: uint, did: ast::def_id) -> uint { - let h = (id << 2u) + (did.crate as uint); - (h << 2u) + (did.node as uint) - } - pure fn hash_subty(id: uint, subty: t) -> uint { - (id << 2u) + type_id(subty) - } - pure fn hash_subtys(id: uint, subtys: ~[t]) -> uint { - let mut h = id; - for vec::each(subtys) |s| { h = (h << 2u) + type_id(*s) } - h - } - pure fn hash_substs(h: uint, substs: &substs) -> uint { - let h = hash_subtys(h, substs.tps); - h + substs.self_r.map_default(0u, |r| hash_region(&r)) - } - match *st { - ty_nil => 0u, - ty_bool => 1u, - ty_int(t) => match t { - ast::ty_i => 2u, - ast::ty_char => 3u, - ast::ty_i8 => 4u, - ast::ty_i16 => 5u, - ast::ty_i32 => 6u, - ast::ty_i64 => 7u - }, - ty_uint(t) => match t { - ast::ty_u => 8u, - ast::ty_u8 => 9u, - ast::ty_u16 => 10u, - ast::ty_u32 => 11u, - ast::ty_u64 => 12u - }, - ty_float(t) => match t { - ast::ty_f => 13u, - ast::ty_f32 => 14u, - ast::ty_f64 => 15u - }, - ty_estr(_) => 16u, - ty_enum(did, ref substs) => { - let mut h = hash_def(18u, did); - hash_substs(h, substs) - } - ty_box(mt) => hash_subty(19u, mt.ty), - ty_evec(mt, _) => hash_subty(20u, mt.ty), - ty_unboxed_vec(mt) => hash_subty(22u, mt.ty), - ty_tup(ts) => hash_subtys(25u, ts), - ty_rec(fields) => { - let mut h = 26u; - for vec::each(fields) |f| { h = hash_subty(h, f.mt.ty); } - h - } - ty_fn(ref f) => { - let mut h = 27u; - for vec::each(f.sig.inputs) |a| { - h = hash_subty(h, a.ty); - } - hash_subty(h, f.sig.output) - } - ty_self => 28u, - ty_infer(v) => hash_uint(29u, v.to_hash()), - ty_param(p) => hash_def(hash_uint(31u, p.idx), p.def_id), - ty_type => 32u, - ty_bot => 34u, - ty_ptr(mt) => hash_subty(35u, mt.ty), - ty_uniq(mt) => hash_subty(37u, mt.ty), - ty_trait(did, ref substs, _) => { - let mut h = hash_def(40u, did); - hash_substs(h, substs) - } - ty_opaque_closure_ptr(ck_block) => 41u, - ty_opaque_closure_ptr(ck_box) => 42u, - ty_opaque_closure_ptr(ck_uniq) => 43u, - ty_opaque_box => 44u, - ty_class(did, ref substs) => { - let mut h = hash_def(45u, did); - hash_substs(h, substs) - } - ty_rptr(region, mt) => { - let mut h = (46u << 2u) + hash_region(®ion); - hash_subty(h, mt.ty) - } - } -} - fn node_id_to_type(cx: ctxt, id: ast::node_id) -> t { //io::println(fmt!("%?/%?", id, cx.node_types.size())); match smallintmap::find(*cx.node_types, id as uint) { diff --git a/src/rustc/middle/typeck/infer/region_var_bindings.rs b/src/rustc/middle/typeck/infer/region_var_bindings.rs index 4f2eb7c7c75..7e736925890 100644 --- a/src/rustc/middle/typeck/infer/region_var_bindings.rs +++ b/src/rustc/middle/typeck/infer/region_var_bindings.rs @@ -312,7 +312,7 @@ use std::map::{HashMap, uint_hash}; use std::cell::{Cell, empty_cell}; use std::list::{List, Nil, Cons}; -use ty::{region, RegionVid, hash_region}; +use ty::{region, RegionVid}; use region::is_subregion_of; use syntax::codemap; use to_str::to_str; @@ -429,14 +429,6 @@ fn CombineMap() -> CombineMap { return HashMap(); } -pure fn hash_constraint(rc: &Constraint) -> uint { - match *rc { - ConstrainVarSubVar(a, b) => *a ^ *b, - ConstrainRegSubVar(ref r, b) => ty::hash_region(r) ^ *b, - ConstrainVarSubReg(a, ref r) => *a ^ ty::hash_region(r) - } -} - impl RegionVarBindings { fn in_snapshot() -> bool { self.undo_log.len() > 0