aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGraydon Hoare <[email protected]>2011-04-01 17:04:51 -0700
committerGraydon Hoare <[email protected]>2011-04-01 17:04:51 -0700
commit0397c05f429937e07d4cd39e97e8a9413336cd98 (patch)
treeeb71d956d50b2275748eb9013e2c45414d0eda77 /src
parentComment out import for not-yet-compiling typestate_check. (diff)
downloadrust-0397c05f429937e07d4cd39e97e8a9413336cd98.tar.xz
rust-0397c05f429937e07d4cd39e97e8a9413336cd98.zip
Support for passing native types through metadata/creader.
Diffstat (limited to 'src')
-rw-r--r--src/comp/front/creader.rs2
-rw-r--r--src/comp/middle/trans.rs4
2 files changed, 5 insertions, 1 deletions
diff --git a/src/comp/front/creader.rs b/src/comp/front/creader.rs
index 151411c6..0faceb6e 100644
--- a/src/comp/front/creader.rs
+++ b/src/comp/front/creader.rs
@@ -524,6 +524,7 @@ fn kind_has_type_params(u8 kind_ch) -> bool {
else if (kind_ch == ('y' as u8)) { ret true; }
else if (kind_ch == ('o' as u8)) { ret true; }
else if (kind_ch == ('t' as u8)) { ret true; }
+ else if (kind_ch == ('T' as u8)) { ret false; }
else if (kind_ch == ('m' as u8)) { ret false; }
else if (kind_ch == ('n' as u8)) { ret false; }
else if (kind_ch == ('v' as u8)) { ret true; }
@@ -561,6 +562,7 @@ fn lookup_def(session.session sess, int cnum, vec[ast.ident] path)
else if (kind_ch == ('F' as u8)) { def = ast.def_native_fn(did); }
else if (kind_ch == ('y' as u8)) { def = ast.def_ty(did); }
else if (kind_ch == ('o' as u8)) { def = ast.def_obj(did); }
+ else if (kind_ch == ('T' as u8)) { def = ast.def_native_ty(did); }
else if (kind_ch == ('t' as u8)) {
// We treat references to tags as references to types.
def = ast.def_ty(did);
diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs
index e9695b35..b9ebc167 100644
--- a/src/comp/middle/trans.rs
+++ b/src/comp/middle/trans.rs
@@ -6211,7 +6211,9 @@ fn collect_native_item(&@crate_ctxt cx, @ast.native_item i) -> @crate_ctxt {
decl_native_fn_and_pair(cx, name, ann, fid);
}
}
- case (_) { /* fall through */ }
+ case (ast.native_item_ty(_, ?tid)) {
+ cx.native_items.insert(tid, i);
+ }
}
ret cx;
}