@@ -7,9 +7,10 @@ use rustc_middle::mir::interpret::Scalar;
77use rustc_middle:: mir:: visit:: NonUseContext :: VarDebugInfo ;
88use rustc_middle:: mir:: visit:: { PlaceContext , Visitor } ;
99use rustc_middle:: mir:: {
10- traversal, AggregateKind , BasicBlock , BinOp , Body , BorrowKind , CastKind , Local , Location ,
11- MirPass , MirPhase , Operand , Place , PlaceElem , PlaceRef , ProjectionElem , RuntimePhase , Rvalue ,
12- SourceScope , Statement , StatementKind , Terminator , TerminatorKind , UnOp , START_BLOCK ,
10+ traversal, AggregateKind , BasicBlock , BinOp , Body , BorrowKind , CastKind , CopyNonOverlapping ,
11+ Local , Location , MirPass , MirPhase , NonDivergingIntrinsic , Operand , Place , PlaceElem , PlaceRef ,
12+ ProjectionElem , RuntimePhase , Rvalue , SourceScope , Statement , StatementKind , Terminator ,
13+ TerminatorKind , UnOp , START_BLOCK ,
1314} ;
1415use rustc_middle:: ty:: fold:: BottomUpFolder ;
1516use rustc_middle:: ty:: subst:: Subst ;
@@ -636,7 +637,7 @@ impl<'a, 'tcx> Visitor<'tcx> for TypeChecker<'a, 'tcx> {
636637 ) ;
637638 }
638639 }
639- StatementKind :: Assume ( box ref op ) => {
640+ StatementKind :: Intrinsic ( box NonDivergingIntrinsic :: Assume ( op ) ) => {
640641 let ty = op. ty ( & self . body . local_decls , self . tcx ) ;
641642 if !ty. is_bool ( ) {
642643 self . fail (
@@ -645,11 +646,9 @@ impl<'a, 'tcx> Visitor<'tcx> for TypeChecker<'a, 'tcx> {
645646 ) ;
646647 }
647648 }
648- StatementKind :: CopyNonOverlapping ( box rustc_middle:: mir:: CopyNonOverlapping {
649- ref src,
650- ref dst,
651- ref count,
652- } ) => {
649+ StatementKind :: Intrinsic ( box NonDivergingIntrinsic :: CopyNonOverlapping (
650+ CopyNonOverlapping { src, dst, count } ,
651+ ) ) => {
653652 let src_ty = src. ty ( & self . body . local_decls , self . tcx ) ;
654653 let op_src_ty = if let Some ( src_deref) = src_ty. builtin_deref ( true ) {
655654 src_deref. ty
0 commit comments