diff options
| author | Graydon Hoare <[email protected]> | 2011-02-10 11:30:29 -0800 |
|---|---|---|
| committer | Graydon Hoare <[email protected]> | 2011-02-10 11:30:29 -0800 |
| commit | 3d63aa14e0db38afa06467db8e17722c4f744eac (patch) | |
| tree | 6f3b746c24cb08d6afbc15c151f1462217046369 | |
| parent | Commit the trap-failure hack to the runtime, since I keep using it in my work... (diff) | |
| download | rust-3d63aa14e0db38afa06467db8e17722c4f744eac.tar.xz rust-3d63aa14e0db38afa06467db8e17722c4f744eac.zip | |
Handle instantiations where some type parameters remain parameters (eg. derived typedefs).
| -rw-r--r-- | src/comp/middle/typeck.rs | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/comp/middle/typeck.rs b/src/comp/middle/typeck.rs index 5412f131..5b14eea4 100644 --- a/src/comp/middle/typeck.rs +++ b/src/comp/middle/typeck.rs @@ -86,7 +86,11 @@ fn ast_ty_to_ty(ty_getter getter, &@ast.ty ast_ty) -> @ty.t { fn fold_simple_ty(@ty.t t) -> @ty.t { alt (t.struct) { case (ty.ty_param(?param_def)) { - ret param_map.get(param_def); + if (param_map.contains_key(param_def)) { + ret param_map.get(param_def); + } else { + ret t; + } } case (_) { ret t; |