From 3d63aa14e0db38afa06467db8e17722c4f744eac Mon Sep 17 00:00:00 2001 From: Graydon Hoare Date: Thu, 10 Feb 2011 11:30:29 -0800 Subject: Handle instantiations where some type parameters remain parameters (eg. derived typedefs). --- src/comp/middle/typeck.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src') 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; -- cgit v1.2.3