Skip to content

Commit 93eb433

Browse files
committed
Move typeck into its own crate.
1 parent e135fa5 commit 93eb433

File tree

26 files changed

+100
-68
lines changed

26 files changed

+100
-68
lines changed

mk/crates.mk

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ TARGET_CRATES := libc std flate arena term \
5353
serialize getopts collections test time rand \
5454
log regex graphviz core rbml alloc rustrt \
5555
unicode
56-
HOST_CRATES := syntax rustc rustc_trans rustdoc regex_macros fmt_macros \
56+
HOST_CRATES := syntax rustc rustc_typeck rustc_trans rustdoc regex_macros fmt_macros \
5757
rustc_llvm rustc_back
5858
CRATES := $(TARGET_CRATES) $(HOST_CRATES)
5959
TOOLS := compiletest rustdoc rustc
@@ -67,7 +67,9 @@ DEPS_std := core libc rand alloc collections rustrt unicode \
6767
native:rust_builtin native:backtrace
6868
DEPS_graphviz := std
6969
DEPS_syntax := std term serialize log fmt_macros arena libc
70-
DEPS_rustc_trans := rustc rustc_back rustc_llvm libc
70+
DEPS_rustc_trans := arena flate getopts graphviz libc rustc rustc_back \
71+
rustc_typeck log syntax serialize rustc_llvm
72+
DEPS_rustc_typeck := rustc syntax
7173
DEPS_rustc := syntax flate arena serialize getopts rbml \
7274
time log graphviz rustc_llvm rustc_back
7375
DEPS_rustc_llvm := native:rustllvm libc std
@@ -110,8 +112,11 @@ ONLY_RLIB_unicode := 1
110112
# You should not need to edit below this line
111113
################################################################################
112114

113-
DOC_CRATES := $(filter-out rustc, $(filter-out rustc_trans, $(filter-out syntax, $(CRATES))))
114-
COMPILER_DOC_CRATES := rustc rustc_trans syntax
115+
DOC_CRATES := $(filter-out rustc, \
116+
$(filter-out rustc_trans, \
117+
$(filter-out rustc_typeck, \
118+
$(filter-out syntax, $(CRATES)))))
119+
COMPILER_DOC_CRATES := rustc rustc_trans rustc_typeck syntax
115120

116121
# This macro creates some simple definitions for each crate being built, just
117122
# some munging of all of the parameters above.

src/librustc/lib.rs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,9 +98,6 @@ pub mod middle {
9898
pub mod weak_lang_items;
9999
}
100100

101-
#[path="middle/typeck/mod.rs"]
102-
pub mod typeck;
103-
104101
pub mod metadata;
105102

106103
pub mod session;

src/librustc_trans/driver/driver.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ use middle;
2020
use plugin::load::Plugins;
2121
use plugin::registry::Registry;
2222
use plugin;
23-
use rustc::typeck;
23+
use rustc_typeck as typeck;
2424
use trans;
2525

2626
use util::common::time;

src/librustc_trans/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ extern crate getopts;
3232
extern crate graphviz;
3333
extern crate libc;
3434
extern crate rustc;
35+
extern crate rustc_typeck;
3536
extern crate rustc_back;
3637
#[phase(plugin, link)] extern crate log;
3738
#[phase(plugin, link)] extern crate syntax;

src/librustc/middle/typeck/astconv.rs renamed to src/librustc_typeck/astconv.rs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,9 @@ use middle::resolve_lifetime as rl;
5454
use middle::subst::{FnSpace, TypeSpace, AssocSpace, SelfSpace, Subst, Substs};
5555
use middle::subst::{VecPerParamSpace};
5656
use middle::ty::{mod, Ty};
57-
use typeck::lookup_def_tcx;
58-
use typeck::rscope::{mod, UnelidableRscope, RegionScope, SpecificRscope,
59-
ShiftedRscope, BindingRscope};
60-
use typeck::TypeAndSubsts;
57+
use rscope::{mod, UnelidableRscope, RegionScope, SpecificRscope,
58+
ShiftedRscope, BindingRscope};
59+
use TypeAndSubsts;
6160
use util::common::ErrorReported;
6261
use util::nodemap::DefIdMap;
6362
use util::ppaux::{mod, Repr, UserString};
@@ -429,9 +428,9 @@ pub fn instantiate_trait_ref<'tcx,AC,RS>(this: &AC,
429428
where AC: AstConv<'tcx>,
430429
RS: RegionScope
431430
{
432-
match lookup_def_tcx(this.tcx(),
433-
ast_trait_ref.path.span,
434-
ast_trait_ref.ref_id) {
431+
match ::lookup_def_tcx(this.tcx(),
432+
ast_trait_ref.path.span,
433+
ast_trait_ref.ref_id) {
435434
def::DefTrait(trait_def_id) => {
436435
let trait_ref = Rc::new(ast_path_to_trait_ref(this, rscope, trait_def_id,
437436
self_ty, &ast_trait_ref.path));
@@ -1477,7 +1476,7 @@ pub fn partition_bounds<'a>(tcx: &ty::ctxt,
14771476
for &ast_bound in ast_bounds.iter() {
14781477
match *ast_bound {
14791478
ast::TraitTyParamBound(ref b) => {
1480-
match lookup_def_tcx(tcx, b.trait_ref.path.span, b.trait_ref.ref_id) {
1479+
match ::lookup_def_tcx(tcx, b.trait_ref.path.span, b.trait_ref.ref_id) {
14811480
def::DefTrait(trait_did) => {
14821481
match trait_def_ids.get(&trait_did) {
14831482
// Already seen this trait. We forbid

src/librustc/middle/typeck/check/_match.rs renamed to src/librustc_typeck/check/_match.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@
99
// except according to those terms.
1010

1111
use middle::def;
12+
use middle::infer::{mod, resolve};
1213
use middle::pat_util::{PatIdMap, pat_id_map, pat_is_binding, pat_is_const};
1314
use middle::subst::{Subst, Substs};
1415
use middle::ty::{mod, Ty};
15-
use typeck::check::{check_expr, check_expr_has_type, demand, FnCtxt};
16-
use typeck::check::{instantiate_path, structurally_resolved_type, valid_range_bounds};
17-
use middle::infer::{mod, resolve};
18-
use typeck::require_same_types;
16+
use check::{check_expr, check_expr_has_type, demand, FnCtxt};
17+
use check::{instantiate_path, structurally_resolved_type, valid_range_bounds};
18+
use require_same_types;
1919
use util::nodemap::FnvHashMap;
2020

2121
use std::cmp;

src/librustc/middle/typeck/check/closure.rs renamed to src/librustc_typeck/check/closure.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ use super::check_fn;
1414
use super::{Expectation, ExpectCastableToType, ExpectHasType, NoExpectation};
1515
use super::FnCtxt;
1616

17+
use astconv;
1718
use middle::infer;
1819
use middle::subst;
1920
use middle::ty::{mod, Ty};
20-
use typeck::astconv;
21-
use typeck::rscope::RegionScope;
21+
use rscope::RegionScope;
2222
use syntax::abi;
2323
use syntax::ast;
2424
use syntax::ast_util;

src/librustc/middle/typeck/check/demand.rs renamed to src/librustc_typeck/check/demand.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
// except according to those terms.
1010

1111

12+
use check::FnCtxt;
1213
use middle::ty::{mod, Ty};
13-
use typeck::check::FnCtxt;
1414
use middle::infer;
1515
use middle::infer::resolve_type;
1616
use middle::infer::resolve::try_resolve_tvar_shallow;

src/librustc/middle/typeck/check/method/confirm.rs renamed to src/librustc_typeck/check/method/confirm.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@
1010

1111
use super::probe;
1212

13+
use check::{mod, FnCtxt, NoPreference, PreferMutLvalue};
1314
use middle::subst::{mod, Subst};
1415
use middle::traits;
1516
use middle::ty::{mod, Ty};
1617
use middle::ty::{MethodCall, MethodCallee, MethodObject, MethodOrigin,
1718
MethodParam, MethodStatic, MethodTraitObject, MethodTypeParam};
18-
use typeck::check::{mod, FnCtxt, NoPreference, PreferMutLvalue};
1919
use middle::infer;
2020
use middle::infer::InferCtxt;
2121
use middle::ty_fold::HigherRankedFoldable;

src/librustc/middle/typeck/check/method/mod.rs renamed to src/librustc_typeck/check/method/mod.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,16 @@
1010

1111
//! Method lookup: the secret sauce of Rust. See `doc.rs`.
1212
13+
use astconv::AstConv;
14+
use check::{FnCtxt};
15+
use check::{impl_self_ty};
16+
use check::vtable;
17+
use check::vtable::select_new_fcx_obligations;
1318
use middle::subst;
1419
use middle::subst::{Subst};
1520
use middle::traits;
1621
use middle::ty::*;
1722
use middle::ty;
18-
use typeck::astconv::AstConv;
19-
use typeck::check::{FnCtxt};
20-
use typeck::check::{impl_self_ty};
21-
use typeck::check::vtable;
22-
use typeck::check::vtable::select_new_fcx_obligations;
2323
use middle::infer;
2424
use util::ppaux::{Repr, UserString};
2525

src/librustc/middle/typeck/check/method/probe.rs renamed to src/librustc_typeck/check/method/probe.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,15 @@ use super::{MethodError,Ambiguity,NoMatch};
1212
use super::MethodIndex;
1313
use super::{CandidateSource,ImplSource,TraitSource};
1414

15+
use check;
16+
use check::{FnCtxt, NoPreference};
1517
use middle::fast_reject;
1618
use middle::subst;
1719
use middle::subst::Subst;
1820
use middle::traits;
1921
use middle::ty::{mod, Ty};
2022
use middle::ty::{MethodObject};
2123
use middle::ty_fold::HigherRankedFoldable;
22-
use typeck::check;
23-
use typeck::check::{FnCtxt, NoPreference};
2424
use middle::infer;
2525
use middle::infer::InferCtxt;
2626
use syntax::ast;

src/librustc/middle/typeck/check/mod.rs renamed to src/librustc_typeck/check/mod.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ can be broken down into several distinct phases:
3131
3232
In the process of checking, various constraints will be placed on
3333
these type variables through the subtyping relationships requested
34-
through the `demand` module. The `typeck::infer` module is in charge
34+
through the `demand` module. The `infer` module is in charge
3535
of resolving those constraints.
3636
3737
- regionck: after main is complete, the regionck pass goes over all
@@ -82,7 +82,8 @@ pub use self::Expectation::*;
8282
use self::IsBinopAssignment::*;
8383
use self::TupleArgumentsFlag::*;
8484

85-
use session::Session;
85+
use astconv::{mod, ast_region_to_region, ast_ty_to_ty, AstConv};
86+
use check::_match::pat_ctxt;
8687
use middle::{const_eval, def, traits};
8788
use middle::infer;
8889
use middle::lang_items::IteratorItem;
@@ -96,11 +97,10 @@ use middle::ty::{mod, Ty};
9697
use middle::ty::liberate_late_bound_regions;
9798
use middle::ty::{MethodCall, MethodCallee, MethodMap, ObjectCastMap};
9899
use middle::ty_fold::TypeFolder;
99-
use typeck::astconv::{mod, ast_region_to_region, ast_ty_to_ty, AstConv};
100-
use typeck::check::_match::pat_ctxt;
101-
use typeck::rscope::RegionScope;
102-
use typeck::{CrateCtxt, lookup_def_ccx, no_params, require_same_types};
103-
use typeck::TypeAndSubsts;
100+
use rscope::RegionScope;
101+
use session::Session;
102+
use {CrateCtxt, lookup_def_ccx, no_params, require_same_types};
103+
use TypeAndSubsts;
104104
use middle::lang_items::TypeIdLangItem;
105105
use lint;
106106
use util::common::{block_query, indenter, loop_query};

src/librustc/middle/typeck/check/regionck.rs renamed to src/librustc_typeck/check/regionck.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -114,16 +114,16 @@
114114
//! then mean that all later passes would have to check for these figments
115115
//! and report an error, and it just seems like more mess in the end.)
116116
117+
use astconv::AstConv;
118+
use check::FnCtxt;
119+
use check::regionmanip;
120+
use check::vtable;
117121
use middle::def;
118122
use middle::mem_categorization as mc;
119123
use middle::region::CodeExtent;
120124
use middle::traits;
121125
use middle::ty::{ReScope};
122126
use middle::ty::{mod, Ty, MethodCall};
123-
use typeck::astconv::AstConv;
124-
use typeck::check::FnCtxt;
125-
use typeck::check::regionmanip;
126-
use typeck::check::vtable;
127127
use middle::infer::resolve_and_force_all_but_regions;
128128
use middle::infer::resolve_type;
129129
use middle::infer;

src/librustc/middle/typeck/check/vtable.rs renamed to src/librustc_typeck/check/vtable.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,14 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11+
use check::{FnCtxt, structurally_resolved_type};
1112
use middle::subst::{SelfSpace, FnSpace};
1213
use middle::traits;
1314
use middle::traits::{SelectionError, OutputTypeParameterMismatch, Overflow, Unimplemented};
1415
use middle::traits::{Obligation, obligation_for_builtin_bound};
1516
use middle::traits::{FulfillmentError, CodeSelectionError, CodeAmbiguity};
1617
use middle::traits::{ObligationCause};
1718
use middle::ty::{mod, Ty};
18-
use typeck::check::{FnCtxt,
19-
structurally_resolved_type};
2019
use middle::infer;
2120
use std::rc::Rc;
2221
use syntax::ast;

src/librustc/middle/typeck/check/wf.rs renamed to src/librustc_typeck/check/wf.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,16 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11+
use astconv::AstConv;
12+
use check::{FnCtxt, Inherited, blank_fn_ctxt, vtable, regionck};
13+
use CrateCtxt;
1114
use middle::region;
1215
use middle::subst;
1316
use middle::subst::{Subst};
1417
use middle::traits;
1518
use middle::ty::{mod, Ty};
1619
use middle::ty::liberate_late_bound_regions;
1720
use middle::ty_fold::{TypeFolder, TypeFoldable};
18-
use typeck::astconv::AstConv;
19-
use typeck::check::{FnCtxt, Inherited, blank_fn_ctxt, vtable, regionck};
20-
use typeck::CrateCtxt;
2121
use util::ppaux::Repr;
2222

2323
use std::collections::HashSet;

src/librustc/middle/typeck/check/writeback.rs renamed to src/librustc_typeck/check/writeback.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,17 @@
1313
// substitutions.
1414
use self::ResolveReason::*;
1515

16+
use astconv::AstConv;
17+
use check::FnCtxt;
1618
use middle::def;
1719
use middle::pat_util;
1820
use middle::ty::{mod, Ty, MethodCall, MethodCallee};
1921
use middle::ty_fold::{TypeFolder,TypeFoldable};
20-
use typeck::astconv::AstConv;
21-
use typeck::check::FnCtxt;
2222
use middle::infer::{force_all, resolve_all, resolve_region};
2323
use middle::infer::resolve_type;
2424
use middle::infer;
25-
use typeck::write_substs_to_tcx;
26-
use typeck::write_ty_to_tcx;
25+
use write_substs_to_tcx;
26+
use write_ty_to_tcx;
2727
use util::ppaux::Repr;
2828

2929
use std::cell::Cell;

src/librustc/middle/typeck/coherence/mod.rs renamed to src/librustc_typeck/coherence/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ use middle::ty::{ty_closure};
3030
use middle::ty::type_is_ty_var;
3131
use middle::subst::Subst;
3232
use middle::ty;
33-
use typeck::CrateCtxt;
33+
use CrateCtxt;
3434
use middle::infer::combine::Combine;
3535
use middle::infer::InferCtxt;
3636
use middle::infer::{new_infer_ctxt, resolve_ivar, resolve_type};

src/librustc/middle/typeck/collect.rs renamed to src/librustc_typeck/collect.rs

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ as `ty_param()` instances.
3232
use self::ConvertMethodContext::*;
3333
use self::CreateTypeParametersForAssociatedTypesFlag::*;
3434

35+
use astconv::{AstConv, ty_of_arg};
36+
use astconv::{ast_ty_to_ty, ast_region_to_region};
37+
use astconv;
3538
use metadata::csearch;
3639
use middle::def;
3740
use middle::lang_items::SizedTraitLangItem;
@@ -43,13 +46,9 @@ use middle::ty::{ImplContainer, ImplOrTraitItemContainer, TraitContainer};
4346
use middle::ty::{Polytype};
4447
use middle::ty::{mod, Ty};
4548
use middle::ty_fold::TypeFolder;
46-
use typeck::astconv::{AstConv, ty_of_arg};
47-
use typeck::astconv::{ast_ty_to_ty, ast_region_to_region};
48-
use typeck::astconv;
4949
use middle::infer;
50-
use typeck::rscope::*;
51-
use typeck::{CrateCtxt, lookup_def_tcx, no_params, write_ty_to_tcx};
52-
use typeck;
50+
use rscope::*;
51+
use {CrateCtxt, lookup_def_tcx, no_params, write_ty_to_tcx};
5352
use util::nodemap::{FnvHashMap, FnvHashSet};
5453
use util::ppaux;
5554
use util::ppaux::{Repr,UserString};
@@ -2159,13 +2158,13 @@ fn check_method_self_type<'a, 'tcx, RS:RegionScope>(
21592158
base_type.repr(crate_context.tcx),
21602159
base_type_free.repr(crate_context.tcx));
21612160
let infcx = infer::new_infer_ctxt(crate_context.tcx);
2162-
drop(typeck::require_same_types(crate_context.tcx,
2163-
Some(&infcx),
2164-
false,
2165-
explicit_self.span,
2166-
base_type_free,
2167-
required_type_free,
2168-
|| {
2161+
drop(::require_same_types(crate_context.tcx,
2162+
Some(&infcx),
2163+
false,
2164+
explicit_self.span,
2165+
base_type_free,
2166+
required_type_free,
2167+
|| {
21692168
format!("mismatched self type: expected `{}`",
21702169
ppaux::ty_to_string(crate_context.tcx, required_type))
21712170
}));

src/librustc_typeck/diagnostics.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,5 +145,7 @@ register_diagnostics!(
145145
E0166,
146146
E0167,
147147
E0168,
148-
E0169
148+
E0169,
149+
E0171,
150+
E0172
149151
)

0 commit comments

Comments
 (0)