@@ -7,9 +7,10 @@ use rustc_middle::mir::interpret::Scalar;
7
7
use rustc_middle:: mir:: visit:: NonUseContext :: VarDebugInfo ;
8
8
use rustc_middle:: mir:: visit:: { PlaceContext , Visitor } ;
9
9
use 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 ,
13
14
} ;
14
15
use rustc_middle:: ty:: fold:: BottomUpFolder ;
15
16
use rustc_middle:: ty:: subst:: Subst ;
@@ -636,7 +637,7 @@ impl<'a, 'tcx> Visitor<'tcx> for TypeChecker<'a, 'tcx> {
636
637
) ;
637
638
}
638
639
}
639
- StatementKind :: Assume ( box ref op ) => {
640
+ StatementKind :: Intrinsic ( box NonDivergingIntrinsic :: Assume ( op ) ) => {
640
641
let ty = op. ty ( & self . body . local_decls , self . tcx ) ;
641
642
if !ty. is_bool ( ) {
642
643
self . fail (
@@ -645,11 +646,9 @@ impl<'a, 'tcx> Visitor<'tcx> for TypeChecker<'a, 'tcx> {
645
646
) ;
646
647
}
647
648
}
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
+ ) ) => {
653
652
let src_ty = src. ty ( & self . body . local_decls , self . tcx ) ;
654
653
let op_src_ty = if let Some ( src_deref) = src_ty. builtin_deref ( true ) {
655
654
src_deref. ty
0 commit comments