@@ -5,7 +5,7 @@ import std::str;
5
5
import std:: uint;
6
6
import std:: vec;
7
7
import std:: box;
8
- import std:: ufind ;
8
+ import std:: ufindivec ;
9
9
import std:: map;
10
10
import std:: map:: hashmap;
11
11
import std:: option;
@@ -1989,31 +1989,31 @@ mod unify {
1989
1989
1990
1990
}
1991
1991
type var_bindings =
1992
- rec( ufind :: ufind sets, smallintmap:: smallintmap[ t] types) ;
1992
+ rec( ufindivec :: ufind sets, smallintmap:: smallintmap[ t] types) ;
1993
1993
1994
1994
type ctxt = rec( @var_bindings vb, ty_ctxt tcx) ;
1995
1995
1996
1996
fn mk_var_bindings( ) -> @var_bindings {
1997
- ret @rec( sets=ufind :: make( ) , types=smallintmap:: mk[ t] ( ) ) ;
1997
+ ret @rec( sets=ufindivec :: make( ) , types=smallintmap:: mk[ t] ( ) ) ;
1998
1998
}
1999
1999
2000
2000
// Unifies two sets.
2001
2001
fn union ( & @ctxt cx, uint set_a, uint set_b) -> union_result {
2002
- ufind :: grow( cx. vb. sets, uint:: max( set_a, set_b) + 1 u) ;
2003
- auto root_a = ufind :: find( cx. vb. sets, set_a) ;
2004
- auto root_b = ufind :: find( cx. vb. sets, set_b) ;
2002
+ ufindivec :: grow( cx. vb. sets, uint:: max( set_a, set_b) + 1 u) ;
2003
+ auto root_a = ufindivec :: find( cx. vb. sets, set_a) ;
2004
+ auto root_b = ufindivec :: find( cx. vb. sets, set_b) ;
2005
2005
2006
2006
auto replace_type = bind fn ( & @ctxt cx, t t, uint set_a, uint set_b) {
2007
- ufind :: union ( cx. vb. sets, set_a, set_b) ;
2008
- let uint root_c = ufind :: find( cx. vb. sets, set_a) ;
2007
+ ufindivec :: union ( cx. vb. sets, set_a, set_b) ;
2008
+ let uint root_c = ufindivec :: find( cx. vb. sets, set_a) ;
2009
2009
smallintmap:: insert[ t] ( cx. vb. types, root_c, t) ;
2010
2010
} ( _, _, set_a, set_b) ;
2011
2011
2012
2012
alt ( smallintmap:: find( cx. vb. types, root_a) ) {
2013
2013
case ( none) {
2014
2014
alt ( smallintmap:: find( cx. vb. types, root_b) ) {
2015
2015
case ( none) {
2016
- ufind :: union ( cx. vb. sets, set_a, set_b) ;
2016
+ ufindivec :: union ( cx. vb. sets, set_a, set_b) ;
2017
2017
ret unres_ok; }
2018
2018
case ( some( ?t_b) ) {
2019
2019
replace_type( cx, t_b) ;
@@ -2043,8 +2043,8 @@ mod unify {
2043
2043
}
2044
2044
}
2045
2045
fn record_var_binding( & @ctxt cx, int key, t typ) -> result {
2046
- ufind :: grow( cx. vb. sets, ( key as uint) + 1 u) ;
2047
- auto root = ufind :: find( cx. vb. sets, key as uint) ;
2046
+ ufindivec :: grow( cx. vb. sets, ( key as uint) + 1 u) ;
2047
+ auto root = ufindivec :: find( cx. vb. sets, key as uint) ;
2048
2048
auto result_type = typ;
2049
2049
alt ( smallintmap:: find[ t] ( cx. vb. types, root) ) {
2050
2050
case ( some( ?old_type) ) {
@@ -2229,10 +2229,10 @@ mod unify {
2229
2229
fixup_result {
2230
2230
alt ( struct ( tcx, typ) ) {
2231
2231
case ( ty_var( ?vid) ) {
2232
- if ( vid as uint >= ufind :: set_count( vb. sets) ) {
2232
+ if ( vid as uint >= ufindivec :: set_count( vb. sets) ) {
2233
2233
ret fix_err( vid) ;
2234
2234
}
2235
- auto root_id = ufind :: find( vb. sets, vid as uint) ;
2235
+ auto root_id = ufindivec :: find( vb. sets, vid as uint) ;
2236
2236
alt ( smallintmap:: find[ t] ( vb. types, root_id) ) {
2237
2237
case ( none[ t] ) { ret fix_err( vid) ; }
2238
2238
case ( some[ t] ( ?rt) ) { ret fix_ok( rt) ; }
@@ -2644,11 +2644,13 @@ mod unify {
2644
2644
}
2645
2645
fn dump_var_bindings( ty_ctxt tcx, @var_bindings vb) {
2646
2646
auto i = 0 u;
2647
- while ( i < vec :: len[ ufind :: node] ( vb. sets. nodes) ) {
2647
+ while ( i < ivec :: len[ ufindivec :: node] ( vb. sets. nodes) ) {
2648
2648
auto sets = "";
2649
2649
auto j = 0 u;
2650
- while ( j < vec:: len[ option:: t[ uint] ] ( vb. sets. nodes) ) {
2651
- if ( ufind:: find( vb. sets, j) == i) { sets += #fmt( " %u", j) ; }
2650
+ while ( j < ivec:: len[ option:: t[ uint] ] ( vb. sets. nodes) ) {
2651
+ if ( ufindivec:: find( vb. sets, j) == i) {
2652
+ sets += #fmt( " %u", j) ;
2653
+ }
2652
2654
j += 1 u;
2653
2655
}
2654
2656
auto typespec;
@@ -2667,11 +2669,11 @@ mod unify {
2667
2669
fn fixup_vars( ty_ctxt tcx, @var_bindings vb, t typ) -> fixup_result {
2668
2670
fn subst_vars( ty_ctxt tcx, @var_bindings vb,
2669
2671
@mutable option:: t[ int] unresolved, int vid) -> t {
2670
- if ( vid as uint >= ufind :: set_count( vb. sets) ) {
2672
+ if ( vid as uint >= ufindivec :: set_count( vb. sets) ) {
2671
2673
* unresolved = some[ int] ( vid) ;
2672
2674
ret ty:: mk_var( tcx, vid) ;
2673
2675
}
2674
- auto root_id = ufind :: find( vb. sets, vid as uint) ;
2676
+ auto root_id = ufindivec :: find( vb. sets, vid as uint) ;
2675
2677
alt ( smallintmap:: find[ t] ( vb. types, root_id) ) {
2676
2678
case ( none[ t] ) {
2677
2679
* unresolved = some[ int] ( vid) ;
@@ -2696,8 +2698,10 @@ mod unify {
2696
2698
}
2697
2699
fn resolve_type_var( & ty_ctxt tcx, & @var_bindings vb, int vid) ->
2698
2700
fixup_result {
2699
- if ( vid as uint >= ufind:: set_count( vb. sets) ) { ret fix_err( vid) ; }
2700
- auto root_id = ufind:: find( vb. sets, vid as uint) ;
2701
+ if ( vid as uint >= ufindivec:: set_count( vb. sets) ) {
2702
+ ret fix_err( vid) ;
2703
+ }
2704
+ auto root_id = ufindivec:: find( vb. sets, vid as uint) ;
2701
2705
alt ( smallintmap:: find[ t] ( vb. types, root_id) ) {
2702
2706
case ( none[ t] ) { ret fix_err( vid) ; }
2703
2707
case ( some[ t] ( ?rt) ) { ret fixup_vars( tcx, vb, rt) ; }
0 commit comments