Skip to content

Commit 3d7fdb5

Browse files
committed
Remove def_obj
Since obj constructors and types have different def_ids now, their def can simply be a def_fn and a def_ty.
1 parent b4c0893 commit 3d7fdb5

File tree

7 files changed

+7
-28
lines changed

7 files changed

+7
-28
lines changed

src/comp/front/ast.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ type ty_param = ident;
2828

2929
tag def {
3030
def_fn(def_id, purity);
31-
def_obj(def_id);
3231
def_obj_field(def_id);
3332
def_mod(def_id);
3433
def_native_mod(def_id);
@@ -55,7 +54,6 @@ fn variant_def_ids(&def d) -> tup(def_id, def_id) {
5554
fn def_id_of_def(def d) -> def_id {
5655
alt (d) {
5756
case (def_fn(?id,_)) { ret id; }
58-
case (def_obj(?id)) { ret id; }
5957
case (def_obj_field(?id)) { ret id; }
6058
case (def_mod(?id)) { ret id; }
6159
case (def_native_mod(?id)) { ret id; }

src/comp/front/creader.rs

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -701,7 +701,6 @@ fn kind_has_type_params(u8 kind_ch) -> bool {
701701
case ('p') { true }
702702
case ('F') { true }
703703
case ('y') { true }
704-
case ('o') { true }
705704
case ('t') { true }
706705
case ('T') { false }
707706
case ('m') { false }
@@ -731,13 +730,9 @@ fn lookup_def(int cnum, vec[u8] data, &ast::def_id did_) -> ast::def {
731730
case ('p') { ast::def_fn(did, ast::pure_fn) }
732731
case ('F') { ast::def_native_fn(did) }
733732
case ('y') { ast::def_ty(did) }
734-
case ('o') { ast::def_obj(did) }
735733
case ('T') { ast::def_native_ty(did) }
736-
case (
737-
// We treat references to tags as references to types.
738-
't') {
739-
ast::def_ty(did)
740-
}
734+
// We treat references to tags as references to types.
735+
case ('t') { ast::def_ty(did) }
741736
case ('m') { ast::def_mod(did) }
742737
case ('n') { ast::def_native_mod(did) }
743738
case ('v') {
@@ -843,7 +838,6 @@ fn item_kind_to_str(u8 kind) -> str {
843838
case ('p') { ret "pred"; }
844839
case ('F') { ret "native fn"; }
845840
case ('y') { ret "type"; }
846-
case ('o') { ret "obj"; }
847841
case ('T') { ret "native type"; }
848842
case ('t') { ret "type"; }
849843
case ('m') { ret "mod"; }

src/comp/middle/metadata.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -556,7 +556,7 @@ fn encode_info_for_item(@trans::crate_ctxt cx, &ebml::writer ebml_w,
556556
case (item_obj(_, ?tps, ?ctor_id)) {
557557
ebml::start_tag(ebml_w, tag_items_data_item);
558558
encode_def_id(ebml_w, local_def(ctor_id));
559-
encode_kind(ebml_w, 'o' as u8);
559+
encode_kind(ebml_w, 'f' as u8);
560560
encode_type_param_count(ebml_w, tps);
561561
auto fn_ty = trans::node_id_type(cx, item.id);
562562
encode_type(cx, ebml_w, fn_ty);

src/comp/middle/resolve.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -412,7 +412,7 @@ fn resolve_constr(@env e, node_id id, &@ast::constr c, &scopes sc,
412412
lookup_path_strict(*e, sc, c.span, c.node.path.node.idents, ns_value);
413413
if (option::is_some(new_def)) {
414414
alt (option::get(new_def)) {
415-
case (ast::def_fn(?pred_id, _)) {
415+
case (ast::def_fn(?pred_id, ast::pure_fn)) {
416416
let ty::constr_general[uint] c_ =
417417
rec(path=c.node.path, args=c.node.args, id=pred_id);
418418
let ty::constr_def new_constr = respan(c.span, c_);
@@ -826,8 +826,9 @@ fn found_def_item(&@ast::item i, namespace ns) -> option::t[def] {
826826
}
827827
case (ast::item_obj(_, _, ?ctor_id)) {
828828
alt (ns) {
829-
case (ns_value) { ret some(ast::def_obj(local_def(ctor_id)));}
830-
case (ns_type) { ret some(ast::def_obj(local_def(i.id))); }
829+
case (ns_value) { ret some(ast::def_fn(local_def(ctor_id),
830+
ast::impure_fn)); }
831+
case (ns_type) { ret some(ast::def_ty(local_def(i.id))); }
831832
case (_) { }
832833
}
833834
}
@@ -1123,7 +1124,6 @@ fn index_nmod(&ast::native_mod md) -> mod_index {
11231124
fn ns_for_def(def d) -> namespace {
11241125
ret alt (d) {
11251126
case (ast::def_fn(?id, _)) { ns_value }
1126-
case (ast::def_obj(?id)) { ns_value }
11271127
case (ast::def_obj_field(?id)) { ns_value }
11281128
case (ast::def_mod(?id)) { ns_module }
11291129
case (ast::def_native_mod(?id)) { ns_module }

src/comp/middle/trans.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4718,10 +4718,6 @@ fn trans_path(&@block_ctxt cx, &ast::path p, ast::node_id id) -> lval_result {
47184718
auto tyt = ty::lookup_item_type(cx.fcx.lcx.ccx.tcx, did);
47194719
ret lval_generic_fn(cx, tyt, did, id);
47204720
}
4721-
case (ast::def_obj(?did)) {
4722-
auto tyt = ty::lookup_item_type(cx.fcx.lcx.ccx.tcx, did);
4723-
ret lval_generic_fn(cx, tyt, did, id);
4724-
}
47254721
case (ast::def_variant(?tid, ?vid)) {
47264722
auto v_tyt = ty::lookup_item_type(cx.fcx.lcx.ccx.tcx, vid);
47274723
alt (ty::struct(cx.fcx.lcx.ccx.tcx, v_tyt._1)) {

src/comp/middle/ty.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2658,7 +2658,6 @@ fn substitute_type_params(&ctxt cx, vec[ty::t] substs, t typ) -> t {
26582658
fn def_has_ty_params(&ast::def def) -> bool {
26592659
alt (def) {
26602660
case (ast::def_fn(_,_)) { ret true; }
2661-
case (ast::def_obj(_)) { ret true; }
26622661
case (ast::def_obj_field(_)) { ret false; }
26632662
case (ast::def_mod(_)) { ret false; }
26642663
case (ast::def_const(_)) { ret false; }

src/comp/middle/typeck.rs

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -105,9 +105,6 @@ fn ty_param_count_and_ty_for_def(&@fn_ctxt fcx, &span sp, &ast::def defn) ->
105105
auto typ = ty::mk_var(fcx.ccx.tcx, fcx.locals.get(id._1));
106106
ret tup(0u, typ);
107107
}
108-
case (ast::def_obj(?id)) {
109-
ret ty::lookup_item_type(fcx.ccx.tcx, id);
110-
}
111108
case (ast::def_mod(_)) {
112109
// Hopefully part of a path.
113110
// TODO: return a type that's more poisonous, perhaps?
@@ -327,11 +324,6 @@ fn ast_ty_to_ty(&ty::ctxt tcx, &ty_getter getter, &@ast::ty ast_ty) -> ty::t {
327324
path.node.types);
328325
}
329326
case (ast::def_native_ty(?id)) { typ = getter(id)._1; }
330-
case (ast::def_obj(?id)) {
331-
typ =
332-
instantiate(tcx, ast_ty.span, getter, id,
333-
path.node.types);
334-
}
335327
case (ast::def_ty_arg(?id)) { typ = ty::mk_param(tcx, id); }
336328
case (_) {
337329
tcx.sess.span_fatal(ast_ty.span,

0 commit comments

Comments
 (0)