From 8cbbbaae6c1956d2c070e7f7447a9478adbf0dcd Mon Sep 17 00:00:00 2001 From: varkor Date: Wed, 20 Feb 2019 01:10:11 +0000 Subject: [PATCH] Add InferConst Co-Authored-By: Gabriel Smith --- src/librustc/ty/sty.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/librustc/ty/sty.rs b/src/librustc/ty/sty.rs index afe3dc2300a8..3b58cca38dd1 100644 --- a/src/librustc/ty/sty.rs +++ b/src/librustc/ty/sty.rs @@ -2228,3 +2228,14 @@ impl<'tcx> Const<'tcx> { } impl<'tcx> serialize::UseSpecializedDecodable for &'tcx LazyConst<'tcx> {} + +/// An inference variable for a const, for use in const generics. +#[derive(Copy, Clone, Debug, Eq, PartialEq, PartialOrd, Ord, RustcEncodable, RustcDecodable, Hash)] +pub enum InferConst<'tcx> { + /// Infer the value of the const. + Var(ConstVid<'tcx>), + /// A fresh const variable. See `infer::freshen` for more details. + Fresh(u32), + /// Canonicalized const variable, used only when preparing a trait query. + Canonical(DebruijnIndex, BoundVar), +}