aboutsummaryrefslogtreecommitdiff
path: root/src/comp/front/ast.rs
diff options
context:
space:
mode:
authorGraydon Hoare <[email protected]>2011-03-29 13:21:16 -0700
committerGraydon Hoare <[email protected]>2011-03-29 13:23:51 -0700
commit734abe593dc09edaea0f24978acf4f4270337361 (patch)
treeeaac6bb58a955617ec1ac47e031002a97931ac40 /src/comp/front/ast.rs
parentXFAIL nbody on darwin, quiet tinderbox for now. (diff)
downloadrust-734abe593dc09edaea0f24978acf4f4270337361.tar.xz
rust-734abe593dc09edaea0f24978acf4f4270337361.zip
Teach trans to emit undefined references to 'use'd symbols. Can compile and run a simple 'use std;' example now.
Diffstat (limited to 'src/comp/front/ast.rs')
-rw-r--r--src/comp/front/ast.rs22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/comp/front/ast.rs b/src/comp/front/ast.rs
index 8458a749..4493bea8 100644
--- a/src/comp/front/ast.rs
+++ b/src/comp/front/ast.rs
@@ -43,6 +43,28 @@ tag def {
def_native_fn(def_id);
}
+fn def_id_of_def(def d) -> def_id {
+ alt (d) {
+ case (def_fn(?id)) { ret id; }
+ case (def_obj(?id)) { ret id; }
+ case (def_obj_field(?id)) { ret id; }
+ case (def_mod(?id)) { ret id; }
+ case (def_native_mod(?id)) { ret id; }
+ case (def_const(?id)) { ret id; }
+ case (def_arg(?id)) { ret id; }
+ case (def_local(?id)) { ret id; }
+ case (def_upvar(?id)) { ret id; }
+ case (def_variant(_, ?id)) { ret id; }
+ case (def_ty(?id)) { ret id; }
+ case (def_ty_arg(?id)) { ret id; }
+ case (def_binding(?id)) { ret id; }
+ case (def_use(?id)) { ret id; }
+ case (def_native_ty(?id)) { ret id; }
+ case (def_native_fn(?id)) { ret id; }
+ }
+ fail;
+}
+
type crate = spanned[crate_];
type crate_ = rec(vec[@crate_directive] directives,
_mod module);