+#[derive(Copy, Clone, Debug)]
+pub struct PatternTypeAnnotation<'tcx>(UserTypeAnnotation<'tcx>);
+
+impl<'tcx> PatternTypeAnnotation<'tcx> {
+ pub(crate) fn from_c_ty(c_ty: ty::CanonicalTy<'tcx>) -> Self {
+ Self::from_u_ty(UserTypeAnnotation::Ty(c_ty))
+ }
+ pub(crate) fn from_u_ty(u_ty: UserTypeAnnotation<'tcx>) -> Self {
+ PatternTypeAnnotation(u_ty)
+ }
+
+ pub(crate) fn user_ty(self) -> UserTypeAnnotation<'tcx> { self.0 }
+}
+