Skip to content

Commit 622c26f

Browse files
committed
Update rustc.
1 parent 3e70a15 commit 622c26f

30 files changed

Lines changed: 712 additions & 425 deletions

File tree

Cargo.lock

Lines changed: 47 additions & 28 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

co2_crate_sig/src/ty.rs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1038,7 +1038,10 @@ impl LocalResolverBase {
10381038
.ok_or_else(|| spanned_error(*span, "integer overflow in const eval")),
10391039
BinOp::Div => {
10401040
if rhs == 0 {
1041-
Err(spanned_error(*span, "division by zero happened in const eval"))
1041+
Err(spanned_error(
1042+
*span,
1043+
"division by zero happened in const eval",
1044+
))
10421045
} else {
10431046
lhs.checked_div(rhs).ok_or_else(|| {
10441047
spanned_error(*span, "integer overflow in const eval")
@@ -1047,7 +1050,10 @@ impl LocalResolverBase {
10471050
}
10481051
BinOp::Rem => {
10491052
if rhs == 0 {
1050-
Err(spanned_error(*span, "division by zero happened in const eval"))
1053+
Err(spanned_error(
1054+
*span,
1055+
"division by zero happened in const eval",
1056+
))
10511057
} else {
10521058
lhs.checked_rem(rhs).ok_or_else(|| {
10531059
spanned_error(*span, "integer overflow in const eval")
@@ -1178,9 +1184,7 @@ impl LocalResolverBase {
11781184
.iter()
11791185
.find(|e| e.def_id == def_id)
11801186
.map(|e| &e.mir_info)
1181-
.ok_or_else(|| {
1182-
spanned_error(span, format!("unsupported const value {def_id:?}"))
1183-
})?;
1187+
.ok_or_else(|| spanned_error(span, format!("unsupported const value {def_id:?}")))?;
11841188

11851189
let value = match &mir_info {
11861190
crate::MirOwnerInfo::EnumConstZeroed => 0,

co2_driver_lib/src/lib.rs

Lines changed: 23 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ use rustc_public_generative::rustc_public::ty::IntTy;
2626
use rustc_public_generative::rustc_public::{
2727
CrateDefType, CrateItem, DefId,
2828
mir::{
29-
BasicBlock, Body, ConstOperand, LocalDecl, Mutability, Operand, Rvalue, Statement,
30-
StatementKind, Terminator, TerminatorKind, WithRetag,
29+
BasicBlock, Body, ConstOperand, LocalDecl, Mutability, Operand, Rvalue, SourceInfo,
30+
Statement, StatementKind, Terminator, TerminatorKind, WithRetag,
3131
},
3232
ty::{
3333
AdtDef, FnDef, GenericArgKind, GenericArgs, MirConst, Region, RegionKind, RigidTy, Ty,
@@ -159,57 +159,54 @@ impl rustc_gen::CrateGeneratorState for Co2GeneratorState {
159159
(state, result)
160160
}
161161

162-
fn emit_mir(&mut self, ctx: rustc_gen::HirStructureCtx, def: DefId) -> (Body, Vec<u32>) {
162+
fn emit_mir(&mut self, ctx: rustc_gen::HirStructureCtx, def: DefId) -> Body {
163163
let pending_mir = self.pending_mirs.remove(&def).unwrap();
164164

165-
let wrap = |body: Body| (body, Vec::new());
166-
167165
match pending_mir {
168-
MirOwnerInfo::CloneMethod(adt) => wrap(build_clone_method_body(
169-
adt,
170-
ctx.span_in_file(self.file_id, 0, 0),
171-
)),
172-
MirOwnerInfo::Const => wrap(build_zeroed_static_initializer_body(
166+
MirOwnerInfo::CloneMethod(adt) => {
167+
build_clone_method_body(adt, ctx.span_in_file(self.file_id, 0, 0))
168+
}
169+
MirOwnerInfo::Const => build_zeroed_static_initializer_body(
173170
&self.wellknown_defs,
174171
CrateItem(def).ty(),
175172
ctx.span_in_file(self.file_id, 0, 0),
176-
)),
173+
),
177174
MirOwnerInfo::EnumConstPrevPlus(prev, span) => {
178-
wrap(self.build_enum_prev_plus_body(prev, span, &ctx))
175+
self.build_enum_prev_plus_body(prev, span, &ctx)
179176
}
180177
MirOwnerInfo::EnumConstExplicit {
181178
initializer,
182179
resolver,
183180
} => {
184181
let span = initializer.1;
185-
wrap(self.lower_explicit_static_mir(
182+
self.lower_explicit_static_mir(
186183
&ctx,
187184
def,
188185
resolver,
189186
(Initializer::Expr(initializer), span),
190-
))
187+
)
191188
}
192189
MirOwnerInfo::Static {
193190
resolver,
194191
initializer,
195-
} => wrap(self.lower_explicit_static_mir(&ctx, def, resolver, initializer)),
192+
} => self.lower_explicit_static_mir(&ctx, def, resolver, initializer),
196193
MirOwnerInfo::StaticWithArrayLen {
197194
resolver,
198195
initializer,
199196
array_len,
200-
} => wrap(self.lower_explicit_static_mir_with_array_len(
197+
} => self.lower_explicit_static_mir_with_array_len(
201198
&ctx,
202199
def,
203200
resolver,
204201
initializer,
205202
array_len,
206-
)),
203+
),
207204
MirOwnerInfo::StaticZeroed | MirOwnerInfo::EnumConstZeroed => {
208-
wrap(build_zeroed_static_initializer_body(
205+
build_zeroed_static_initializer_body(
209206
&self.wellknown_defs,
210207
CrateItem(def).ty(),
211208
ctx.span_in_file(self.file_id, 0, 0),
212-
))
209+
)
213210
}
214211
MirOwnerInfo::Fn {
215212
def,
@@ -265,7 +262,7 @@ impl rustc_gen::CrateGeneratorState for Co2GeneratorState {
265262
);
266263
dump_mir_body(&mir_result.body, &name);
267264
}
268-
return (mir_result.body, mir_result.block_scopes);
265+
return mir_result.body;
269266
}
270267
std::panic::resume_unwind(payload);
271268
}
@@ -289,7 +286,7 @@ impl rustc_gen::CrateGeneratorState for Co2GeneratorState {
289286
);
290287
dump_mir_body(&mir_result.body, &name);
291288
}
292-
(mir_result.body, mir_result.block_scopes)
289+
mir_result.body
293290
}
294291
MirOwnerInfo::FnBodyError { def, body_span } => {
295292
let hir = build_error_fn_body(
@@ -315,7 +312,7 @@ impl rustc_gen::CrateGeneratorState for Co2GeneratorState {
315312
);
316313
dump_mir_body(&mir_result.body, &name);
317314
}
318-
(mir_result.body, mir_result.block_scopes)
315+
mir_result.body
319316
}
320317
}
321318
}
@@ -615,14 +612,14 @@ fn build_zeroed_static_initializer_body(
615612
target: Some(1),
616613
unwind: rustc_public_generative::rustc_public::mir::UnwindAction::Continue,
617614
},
618-
span,
615+
source_info: SourceInfo { span, scope: 0 },
619616
},
620617
};
621618
let return_block = BasicBlock {
622619
statements: vec![],
623620
terminator: Terminator {
624621
kind: TerminatorKind::Return,
625-
span,
622+
source_info: SourceInfo { span, scope: 0 },
626623
},
627624
};
628625
Body::new(
@@ -736,14 +733,14 @@ fn build_clone_method_body(
736733
return_place.clone(),
737734
Rvalue::Use(Operand::Copy(deref_place), WithRetag::Yes),
738735
),
739-
span,
736+
source_info: SourceInfo { span, scope: 0 },
740737
}];
741738

742739
let return_block = BasicBlock {
743740
statements,
744741
terminator: Terminator {
745742
kind: TerminatorKind::Return,
746-
span,
743+
source_info: SourceInfo { span, scope: 0 },
747744
},
748745
};
749746
Body::new(vec![return_block], locals, 1, vec![], None, span)

co2_hir/src/decl.rs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1090,7 +1090,10 @@ impl HirCtx<'_> {
10901090
.ok_or_else(|| spanned_error(*span, "integer overflow in const eval")),
10911091
co2_ast::BinOp::Div => {
10921092
if rhs == 0 {
1093-
Err(spanned_error(*span, "division by zero happened in const eval"))
1093+
Err(spanned_error(
1094+
*span,
1095+
"division by zero happened in const eval",
1096+
))
10941097
} else {
10951098
lhs.checked_div(rhs).ok_or_else(|| {
10961099
spanned_error(*span, "integer overflow in const eval")
@@ -1099,7 +1102,10 @@ impl HirCtx<'_> {
10991102
}
11001103
co2_ast::BinOp::Rem => {
11011104
if rhs == 0 {
1102-
Err(spanned_error(*span, "division by zero happened in const eval"))
1105+
Err(spanned_error(
1106+
*span,
1107+
"division by zero happened in const eval",
1108+
))
11031109
} else {
11041110
lhs.checked_rem(rhs).ok_or_else(|| {
11051111
spanned_error(*span, "integer overflow in const eval")

co2_hir/src/initializer_tree.rs

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -663,13 +663,7 @@ impl HirCtx<'_> {
663663
}
664664
cursor.stack.push((end_idx, elem_ty));
665665
} else {
666-
cursor.insert_to_tree(
667-
self,
668-
&mut result,
669-
node,
670-
item_span,
671-
grow,
672-
);
666+
cursor.insert_to_tree(self, &mut result, node, item_span, grow);
673667
}
674668
cursor.go_next(self, span)?;
675669
}

0 commit comments

Comments
 (0)