diff options
| author | Graydon Hoare <graydon@mozilla.com> | 2010-11-19 20:08:57 -0800 |
|---|---|---|
| committer | Graydon Hoare <graydon@mozilla.com> | 2010-11-19 20:08:57 -0800 |
| commit | 6d92ca64a70e625fdb274390451c8ed911e02e79 (patch) | |
| tree | 4b4bd04925f55df84c2dfe17729df6b96b5f07cf /src/comp | |
| parent | c00bda539d79e4411e086d505c697662942ee00b (diff) | |
| download | rust-6d92ca64a70e625fdb274390451c8ed911e02e79.tar.gz rust-6d92ca64a70e625fdb274390451c8ed911e02e79.zip | |
Translate typeck.ty_fn to a TypeRef. Can compile int.rs test now.
Diffstat (limited to 'src/comp')
| -rw-r--r-- | src/comp/middle/trans.rs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs index d2199faed21..091896fa302 100644 --- a/src/comp/middle/trans.rs +++ b/src/comp/middle/trans.rs @@ -273,6 +273,19 @@ fn type_of(@trans_ctxt cx, @typeck.ty t) -> TypeRef { } ret T_struct(tys); } + case (typeck.ty_fn(?args, ?out)) { + let vec[TypeRef] atys = vec(); + for (typeck.arg arg in args) { + let TypeRef t = type_of(cx, arg.ty); + alt (arg.mode) { + case (ast.alias) { + t = T_ptr(t); + } + } + atys += t; + } + ret T_fn(atys, type_of(cx, out)); + } case (typeck.ty_var(_)) { // FIXME: implement. log "ty_var in trans.type_of"; |
