From 0cffa32c21b08cec443dd2d0388e39cf381b6bfc Mon Sep 17 00:00:00 2001 From: Corey Richardson Date: Wed, 9 Jul 2014 06:11:47 -0700 Subject: [PATCH] Add detailed note about Substs to ty_enum --- src/librustc/middle/ty.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/librustc/middle/ty.rs b/src/librustc/middle/ty.rs index 83eb84a326a..5f4cc84fb61 100644 --- a/src/librustc/middle/ty.rs +++ b/src/librustc/middle/ty.rs @@ -790,6 +790,13 @@ pub enum sty { ty_int(ast::IntTy), ty_uint(ast::UintTy), ty_float(ast::FloatTy), + /// Substs here, possibly against intuition, *may* contain `ty_param`s. + /// That is, even after substitution it is possible that there are type + /// variables. This happens when the `ty_enum` corresponds to an enum + /// definition and not a concerete use of it. To get the correct `ty_enum` + /// from the tcx, use the `NodeId` from the `ast::Ty` and look it up in + /// the `ast_ty_to_ty_cache`. This is probably true for `ty_struct` as + /// well.` ty_enum(DefId, Substs), ty_box(t), ty_uniq(t),