aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLindsey Kuper <[email protected]>2011-05-11 16:41:25 -0700
committerGraydon Hoare <[email protected]>2011-05-13 17:35:13 -0700
commitb6f35c6a4b7b91399e9338fa29d91781f3bf2797 (patch)
tree8279b7cee2ae9518bdb485f2e6279223d9f11a46 /src
parentBug fixes. (diff)
downloadrust-b6f35c6a4b7b91399e9338fa29d91781f3bf2797.tar.xz
rust-b6f35c6a4b7b91399e9338fa29d91781f3bf2797.zip
More work toward anonymous objects.
Diffstat (limited to 'src')
-rw-r--r--src/comp/middle/ty.rs1
-rw-r--r--src/comp/middle/typeck.rs15
-rw-r--r--src/comp/middle/walk.rs2
-rw-r--r--src/comp/pretty/pprust.rs5
4 files changed, 15 insertions, 8 deletions
diff --git a/src/comp/middle/ty.rs b/src/comp/middle/ty.rs
index fcde5e2c..75d8f08c 100644
--- a/src/comp/middle/ty.rs
+++ b/src/comp/middle/ty.rs
@@ -1659,7 +1659,6 @@ fn pat_ty(&ctxt cx, &node_type_table ntt, &@ast::pat pat) -> t {
fail; // not reached
}
-<<<<<<< HEAD
fn expr_ann(&@ast::expr e) -> ast::ann {
alt (e.node) {
case (ast::expr_vec(_,_,?a)) { ret a; }
diff --git a/src/comp/middle/typeck.rs b/src/comp/middle/typeck.rs
index 1966cfb2..3ad30848 100644
--- a/src/comp/middle/typeck.rs
+++ b/src/comp/middle/typeck.rs
@@ -2592,20 +2592,23 @@ fn check_expr(&@fn_ctxt fcx, &@ast::expr expr) -> @ast::expr {
auto t = ty::mk_nil(fcx.ccx.tcx);
let ty::t this_obj_ty;
- // Grab the type of the current object
auto this_obj_id = fcx.ccx.this_obj;
alt (this_obj_id) {
+ // If we're inside a current object, grab its type.
case (some[ast::def_id](?def_id)) {
this_obj_ty = ty::lookup_item_type(fcx.ccx.sess,
fcx.ccx.tcx, fcx.ccx.type_cache, def_id)._1;
}
- case (_) { fail; }
+ // Otherwise, we should be able to look up the object we're
+ // "with".
+ case (_) {
+ // TODO.
+
+ fail;
+ }
}
-
- // Grab this method's type out of the current object type
-
- // this_obj_ty is an ty::t
+ // Grab this method's type out of the current object type.
alt (struct(fcx.ccx.tcx, this_obj_ty)) {
case (ty::ty_obj(?methods)) {
for (ty::method method in methods) {
diff --git a/src/comp/middle/walk.rs b/src/comp/middle/walk.rs
index 8dbcca07..fbf3060e 100644
--- a/src/comp/middle/walk.rs
+++ b/src/comp/middle/walk.rs
@@ -434,7 +434,7 @@ fn walk_expr(&ast_visitor v, @ast::expr e) {
walk_expr(v, x);
}
- case (ast.expr_anon_obj(_,_,_,_)) { }
+ case (ast::expr_anon_obj(_,_,_,_)) { }
}
v.visit_expr_post(e);
}
diff --git a/src/comp/pretty/pprust.rs b/src/comp/pretty/pprust.rs
index 0bdd5c83..c7c4fba3 100644
--- a/src/comp/pretty/pprust.rs
+++ b/src/comp/pretty/pprust.rs
@@ -690,6 +690,11 @@ fn print_expr(ps s, &@ast::expr expr) {
print_expr(s, expr);
pclose(s);
}
+
+ case (ast::expr_anon_obj(_,_,_,_)) {
+ wrd(s.s, "obj");
+ // TODO
+ }
}
end(s.s);
}