pub mod pattern;
pub use self::pattern::{BindingMode, Pattern, PatternKind, FieldPattern};
+pub(crate) use self::pattern::{PatternTypeProjection, PatternTypeProjections};
mod util;
Mirror(Box<Stmt<'tcx>>),
}
+#[derive(Clone, Debug)]
+pub struct StatementSpan(pub Span);
+
#[derive(Clone, Debug)]
pub struct Stmt<'tcx> {
pub kind: StmtKind<'tcx>,
pub opt_destruction_scope: Option<region::Scope>,
+ pub span: StatementSpan,
}
#[derive(Clone, Debug)]
PlaceTypeAscription {
source: ExprRef<'tcx>,
/// Type that the user gave to this expression
- user_ty: UserTypeAnnotation<'tcx>,
+ user_ty: Option<UserTypeAnnotation<'tcx>>,
},
ValueTypeAscription {
source: ExprRef<'tcx>,
/// Type that the user gave to this expression
- user_ty: UserTypeAnnotation<'tcx>,
+ user_ty: Option<UserTypeAnnotation<'tcx>>,
},
Closure {
closure_id: DefId,