Skip to content

Commit eeadb78

Browse files
committed
fix smir test
1 parent 556e0bf commit eeadb78

File tree

2 files changed

+51
-67
lines changed

2 files changed

+51
-67
lines changed

compiler/rustc_smir/src/rustc_smir/mod.rs

Lines changed: 31 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -231,75 +231,71 @@ impl<'tcx> Stable<'tcx> for mir::Statement<'tcx> {
231231
type T = stable_mir::mir::Statement;
232232
fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T {
233233
use rustc_middle::mir::StatementKind::*;
234+
let span = self.source_info.span.stable(tables);
234235
match &self.kind {
235236
Assign(assign) => Statement {
236237
kind: stable_mir::mir::StatementKind::Assign(
237238
assign.0.stable(tables),
238239
assign.1.stable(tables),
239240
),
240-
span: self.source_info.span.stable(tables),
241+
span,
241242
},
242243
FakeRead(fake_read_place) => Statement {
243244
kind: stable_mir::mir::StatementKind::FakeRead(
244245
fake_read_place.0.stable(tables),
245246
fake_read_place.1.stable(tables),
246247
),
247-
span: self.source_info.span.stable(tables),
248+
span,
248249
},
249250
SetDiscriminant { place: plc, variant_index: idx } => Statement {
250251
kind: stable_mir::mir::StatementKind::SetDiscriminant {
251252
place: plc.as_ref().stable(tables),
252253
variant_index: idx.stable(tables),
253254
},
254-
span: self.source_info.span.stable(tables),
255+
span,
255256
},
256257
Deinit(place) => Statement {
257258
kind: stable_mir::mir::StatementKind::Deinit(place.stable(tables)),
258-
span: self.source_info.span.stable(tables),
259+
span,
259260
},
260261
StorageLive(place) => Statement {
261262
kind: stable_mir::mir::StatementKind::StorageLive(place.stable(tables)),
262-
span: self.source_info.span.stable(tables),
263+
span,
263264
},
264265
StorageDead(place) => Statement {
265266
kind: stable_mir::mir::StatementKind::StorageDead(place.stable(tables)),
266-
span: self.source_info.span.stable(tables),
267+
span,
267268
},
268269
Retag(retag, place) => Statement {
269270
kind: stable_mir::mir::StatementKind::Retag(
270271
retag.stable(tables),
271272
place.stable(tables),
272273
),
273-
span: self.source_info.span.stable(tables),
274+
span,
274275
},
275276
PlaceMention(place) => Statement {
276277
kind: stable_mir::mir::StatementKind::PlaceMention(place.stable(tables)),
277-
span: self.source_info.span.stable(tables),
278+
span,
278279
},
279280
AscribeUserType(place_projection, variance) => Statement {
280281
kind: stable_mir::mir::StatementKind::AscribeUserType {
281282
place: place_projection.as_ref().0.stable(tables),
282283
projections: place_projection.as_ref().1.stable(tables),
283284
variance: variance.stable(tables),
284285
},
285-
span: self.source_info.span.stable(tables),
286-
},
287-
Coverage(coverage) => Statement {
288-
kind: stable_mir::mir::StatementKind::Coverage(opaque(coverage)),
289-
span: self.source_info.span.stable(tables),
286+
span,
290287
},
288+
Coverage(coverage) => {
289+
Statement { kind: stable_mir::mir::StatementKind::Coverage(opaque(coverage)), span }
290+
}
291291
Intrinsic(intrinstic) => Statement {
292292
kind: stable_mir::mir::StatementKind::Intrinsic(intrinstic.stable(tables)),
293-
span: self.source_info.span.stable(tables),
294-
},
295-
ConstEvalCounter => Statement {
296-
kind: stable_mir::mir::StatementKind::ConstEvalCounter,
297-
span: self.source_info.span.stable(tables),
298-
},
299-
Nop => Statement {
300-
kind: stable_mir::mir::StatementKind::Nop,
301-
span: self.source_info.span.stable(tables),
293+
span,
302294
},
295+
ConstEvalCounter => {
296+
Statement { kind: stable_mir::mir::StatementKind::ConstEvalCounter, span }
297+
}
298+
Nop => Statement { kind: stable_mir::mir::StatementKind::Nop, span },
303299
}
304300
}
305301
}
@@ -851,11 +847,11 @@ impl<'tcx> Stable<'tcx> for mir::Terminator<'tcx> {
851847
use rustc_middle::mir::TerminatorKind::*;
852848
use stable_mir::mir::Terminator;
853849
use stable_mir::mir::TerminatorKind;
850+
let span = self.source_info.span.stable(tables);
854851
match &self.kind {
855-
Goto { target } => Terminator {
856-
kind: TerminatorKind::Goto { target: target.as_usize() },
857-
span: self.source_info.span.stable(tables),
858-
},
852+
Goto { target } => {
853+
Terminator { kind: TerminatorKind::Goto { target: target.as_usize() }, span }
854+
}
859855
SwitchInt { discr, targets } => Terminator {
860856
kind: TerminatorKind::SwitchInt {
861857
discr: discr.stable(tables),
@@ -868,31 +864,19 @@ impl<'tcx> Stable<'tcx> for mir::Terminator<'tcx> {
868864
.collect(),
869865
otherwise: targets.otherwise().as_usize(),
870866
},
871-
span: self.source_info.span.stable(tables),
872-
},
873-
UnwindResume => Terminator {
874-
kind: TerminatorKind::Resume,
875-
span: self.source_info.span.stable(tables),
876-
},
877-
UnwindTerminate(_) => Terminator {
878-
kind: TerminatorKind::Abort,
879-
span: self.source_info.span.stable(tables),
880-
},
881-
Return => Terminator {
882-
kind: TerminatorKind::Return,
883-
span: self.source_info.span.stable(tables),
884-
},
885-
Unreachable => Terminator {
886-
kind: TerminatorKind::Unreachable,
887-
span: self.source_info.span.stable(tables),
867+
span,
888868
},
869+
UnwindResume => Terminator { kind: TerminatorKind::Resume, span },
870+
UnwindTerminate(_) => Terminator { kind: TerminatorKind::Abort, span },
871+
Return => Terminator { kind: TerminatorKind::Return, span },
872+
Unreachable => Terminator { kind: TerminatorKind::Unreachable, span },
889873
Drop { place, target, unwind, replace: _ } => Terminator {
890874
kind: TerminatorKind::Drop {
891875
place: place.stable(tables),
892876
target: target.as_usize(),
893877
unwind: unwind.stable(tables),
894878
},
895-
span: self.source_info.span.stable(tables),
879+
span,
896880
},
897881
Call { func, args, destination, target, unwind, call_source: _, fn_span: _ } => {
898882
Terminator {
@@ -903,7 +887,7 @@ impl<'tcx> Stable<'tcx> for mir::Terminator<'tcx> {
903887
target: target.map(|t| t.as_usize()),
904888
unwind: unwind.stable(tables),
905889
},
906-
span: self.source_info.span.stable(tables),
890+
span,
907891
}
908892
}
909893
Assert { cond, expected, msg, target, unwind } => Terminator {
@@ -914,7 +898,7 @@ impl<'tcx> Stable<'tcx> for mir::Terminator<'tcx> {
914898
target: target.as_usize(),
915899
unwind: unwind.stable(tables),
916900
},
917-
span: self.source_info.span.stable(tables),
901+
span,
918902
},
919903
InlineAsm { template, operands, options, line_spans, destination, unwind } => {
920904
Terminator {
@@ -926,7 +910,7 @@ impl<'tcx> Stable<'tcx> for mir::Terminator<'tcx> {
926910
destination: destination.map(|d| d.as_usize()),
927911
unwind: unwind.stable(tables),
928912
},
929-
span: self.source_info.span.stable(tables),
913+
span,
930914
}
931915
}
932916
Yield { .. } | GeneratorDrop | FalseEdge { .. } | FalseUnwind { .. } => unreachable!(),

tests/ui-fulldeps/stable-mir/crate-info.rs

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,12 @@ fn test_stable_mir(_tcx: TyCtxt<'_>) -> ControlFlow<()> {
4747
assert_eq!(body.blocks.len(), 1);
4848
let block = &body.blocks[0];
4949
assert_eq!(block.statements.len(), 1);
50-
match &block.statements[0] {
51-
stable_mir::mir::Statement::Assign(..) => {}
50+
match &block.statements[0].kind {
51+
stable_mir::mir::StatementKind::Assign(..) => {}
5252
other => panic!("{other:?}"),
5353
}
54-
match &block.terminator {
55-
stable_mir::mir::Terminator::Return => {}
54+
match &block.terminator.kind {
55+
stable_mir::mir::TerminatorKind::Return => {}
5656
other => panic!("{other:?}"),
5757
}
5858

@@ -61,36 +61,36 @@ fn test_stable_mir(_tcx: TyCtxt<'_>) -> ControlFlow<()> {
6161
assert_eq!(body.locals.len(), 7);
6262
assert_eq!(body.blocks.len(), 4);
6363
let block = &body.blocks[0];
64-
match &block.terminator {
65-
stable_mir::mir::Terminator::Call { .. } => {}
64+
match &block.terminator.kind {
65+
stable_mir::mir::TerminatorKind::Call { .. } => {}
6666
other => panic!("{other:?}"),
6767
}
6868

6969
let types = get_item(&items, (DefKind::Fn, "types")).unwrap();
7070
let body = types.body();
7171
assert_eq!(body.locals.len(), 6);
7272
assert_matches!(
73-
body.locals[0].kind(),
73+
body.locals[0].ty.kind(),
7474
stable_mir::ty::TyKind::RigidTy(stable_mir::ty::RigidTy::Bool)
7575
);
7676
assert_matches!(
77-
body.locals[1].kind(),
77+
body.locals[1].ty.kind(),
7878
stable_mir::ty::TyKind::RigidTy(stable_mir::ty::RigidTy::Bool)
7979
);
8080
assert_matches!(
81-
body.locals[2].kind(),
81+
body.locals[2].ty.kind(),
8282
stable_mir::ty::TyKind::RigidTy(stable_mir::ty::RigidTy::Char)
8383
);
8484
assert_matches!(
85-
body.locals[3].kind(),
85+
body.locals[3].ty.kind(),
8686
stable_mir::ty::TyKind::RigidTy(stable_mir::ty::RigidTy::Int(stable_mir::ty::IntTy::I32))
8787
);
8888
assert_matches!(
89-
body.locals[4].kind(),
89+
body.locals[4].ty.kind(),
9090
stable_mir::ty::TyKind::RigidTy(stable_mir::ty::RigidTy::Uint(stable_mir::ty::UintTy::U64))
9191
);
9292
assert_matches!(
93-
body.locals[5].kind(),
93+
body.locals[5].ty.kind(),
9494
stable_mir::ty::TyKind::RigidTy(stable_mir::ty::RigidTy::Float(
9595
stable_mir::ty::FloatTy::F64
9696
))
@@ -100,24 +100,24 @@ fn test_stable_mir(_tcx: TyCtxt<'_>) -> ControlFlow<()> {
100100
let body = drop.body();
101101
assert_eq!(body.blocks.len(), 2);
102102
let block = &body.blocks[0];
103-
match &block.terminator {
104-
stable_mir::mir::Terminator::Drop { .. } => {}
103+
match &block.terminator.kind {
104+
stable_mir::mir::TerminatorKind::Drop { .. } => {}
105105
other => panic!("{other:?}"),
106106
}
107107

108108
let assert = get_item(&items, (DefKind::Fn, "assert")).unwrap();
109109
let body = assert.body();
110110
assert_eq!(body.blocks.len(), 2);
111111
let block = &body.blocks[0];
112-
match &block.terminator {
113-
stable_mir::mir::Terminator::Assert { .. } => {}
112+
match &block.terminator.kind {
113+
stable_mir::mir::TerminatorKind::Assert { .. } => {}
114114
other => panic!("{other:?}"),
115115
}
116116

117117
let monomorphic = get_item(&items, (DefKind::Fn, "monomorphic")).unwrap();
118118
for block in monomorphic.body().blocks {
119-
match &block.terminator {
120-
stable_mir::mir::Terminator::Call { func, .. } => match func {
119+
match &block.terminator.kind {
120+
stable_mir::mir::TerminatorKind::Call { func, .. } => match func {
121121
stable_mir::mir::Operand::Constant(c) => match &c.literal.literal {
122122
stable_mir::ty::ConstantKind::Allocated(alloc) => {
123123
assert!(alloc.bytes.is_empty());
@@ -127,7 +127,7 @@ fn test_stable_mir(_tcx: TyCtxt<'_>) -> ControlFlow<()> {
127127
mut args,
128128
)) => {
129129
let func = def.body();
130-
match func.locals[1]
130+
match func.locals[1].ty
131131
.fold(&mut args)
132132
.continue_value()
133133
.unwrap()
@@ -149,7 +149,7 @@ fn test_stable_mir(_tcx: TyCtxt<'_>) -> ControlFlow<()> {
149149
},
150150
other => panic!("{other:?}"),
151151
},
152-
stable_mir::mir::Terminator::Return => {}
152+
stable_mir::mir::TerminatorKind::Return => {}
153153
other => panic!("{other:?}"),
154154
}
155155
}

0 commit comments

Comments
 (0)