diff options
| author | Graydon Hoare <[email protected]> | 2011-03-29 13:21:16 -0700 |
|---|---|---|
| committer | Graydon Hoare <[email protected]> | 2011-03-29 13:23:51 -0700 |
| commit | 734abe593dc09edaea0f24978acf4f4270337361 (patch) | |
| tree | eaac6bb58a955617ec1ac47e031002a97931ac40 /src/comp/front/ast.rs | |
| parent | XFAIL nbody on darwin, quiet tinderbox for now. (diff) | |
| download | rust-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.rs | 22 |
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); |