Addressed feedback
This commit is contained in:
parent
c131063988
commit
b4b0ef3e4b
3 changed files with 10 additions and 11 deletions
|
@ -34,7 +34,7 @@ use rustc_span::{CharPos, Pos, SourceFile, Span, Symbol};
|
||||||
|
|
||||||
/// A simple error message wrapper for `coverage::Error`s.
|
/// A simple error message wrapper for `coverage::Error`s.
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub(self) struct Error {
|
struct Error {
|
||||||
message: String,
|
message: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,5 @@ use proc_macro::TokenStream;
|
||||||
|
|
||||||
#[proc_macro]
|
#[proc_macro]
|
||||||
pub fn let_bcb(item: TokenStream) -> TokenStream {
|
pub fn let_bcb(item: TokenStream) -> TokenStream {
|
||||||
format!("let bcb{} = graph::BasicCoverageBlock::from_usize({}); let _ = {};", item, item, item)
|
format!("let bcb{} = graph::BasicCoverageBlock::from_usize({});", item, item).parse().unwrap()
|
||||||
.parse()
|
|
||||||
.unwrap()
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,6 +35,9 @@ use rustc_middle::mir::*;
|
||||||
use rustc_middle::ty::{self, DebruijnIndex, TyS, TypeFlags};
|
use rustc_middle::ty::{self, DebruijnIndex, TyS, TypeFlags};
|
||||||
use rustc_span::{self, BytePos, Pos, Span, DUMMY_SP};
|
use rustc_span::{self, BytePos, Pos, Span, DUMMY_SP};
|
||||||
|
|
||||||
|
// All `TEMP_BLOCK` targets should be replaced before calling `to_body() -> mir::Body`.
|
||||||
|
const TEMP_BLOCK: BasicBlock = BasicBlock::MAX;
|
||||||
|
|
||||||
fn dummy_ty() -> &'static TyS<'static> {
|
fn dummy_ty() -> &'static TyS<'static> {
|
||||||
thread_local! {
|
thread_local! {
|
||||||
static DUMMY_TYS: &'static TyS<'static> = Box::leak(box TyS::make_for_test(
|
static DUMMY_TYS: &'static TyS<'static> = Box::leak(box TyS::make_for_test(
|
||||||
|
@ -123,7 +126,7 @@ impl<'tcx> MockBlocks<'tcx> {
|
||||||
if branch_index > branches.len() {
|
if branch_index > branches.len() {
|
||||||
branches.push((branches.len() as u128, old_otherwise));
|
branches.push((branches.len() as u128, old_otherwise));
|
||||||
while branches.len() < branch_index {
|
while branches.len() < branch_index {
|
||||||
branches.push((branches.len() as u128, START_BLOCK));
|
branches.push((branches.len() as u128, TEMP_BLOCK));
|
||||||
}
|
}
|
||||||
to_block
|
to_block
|
||||||
} else {
|
} else {
|
||||||
|
@ -143,7 +146,7 @@ impl<'tcx> MockBlocks<'tcx> {
|
||||||
TerminatorKind::Call {
|
TerminatorKind::Call {
|
||||||
func: Operand::Copy(self.dummy_place.clone()),
|
func: Operand::Copy(self.dummy_place.clone()),
|
||||||
args: vec![],
|
args: vec![],
|
||||||
destination: Some((self.dummy_place.clone(), START_BLOCK)),
|
destination: Some((self.dummy_place.clone(), TEMP_BLOCK)),
|
||||||
cleanup: None,
|
cleanup: None,
|
||||||
from_hir_call: false,
|
from_hir_call: false,
|
||||||
fn_span: DUMMY_SP,
|
fn_span: DUMMY_SP,
|
||||||
|
@ -152,16 +155,14 @@ impl<'tcx> MockBlocks<'tcx> {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn goto(&mut self, some_from_block: Option<BasicBlock>) -> BasicBlock {
|
fn goto(&mut self, some_from_block: Option<BasicBlock>) -> BasicBlock {
|
||||||
self.add_block_from(some_from_block, TerminatorKind::Goto { target: START_BLOCK })
|
self.add_block_from(some_from_block, TerminatorKind::Goto { target: TEMP_BLOCK })
|
||||||
}
|
}
|
||||||
|
|
||||||
fn switchint(&mut self, some_from_block: Option<BasicBlock>) -> BasicBlock {
|
fn switchint(&mut self, some_from_block: Option<BasicBlock>) -> BasicBlock {
|
||||||
let move_ = |place: Place<'tcx>| Operand::Move(place);
|
|
||||||
let discriminant = Place::from(self.new_temp());
|
|
||||||
let switchint_kind = TerminatorKind::SwitchInt {
|
let switchint_kind = TerminatorKind::SwitchInt {
|
||||||
discr: move_(discriminant),
|
discr: Operand::Move(Place::from(self.new_temp())),
|
||||||
switch_ty: dummy_ty(),
|
switch_ty: dummy_ty(),
|
||||||
targets: SwitchTargets::static_if(0, START_BLOCK, START_BLOCK),
|
targets: SwitchTargets::static_if(0, TEMP_BLOCK, TEMP_BLOCK),
|
||||||
};
|
};
|
||||||
self.add_block_from(some_from_block, switchint_kind)
|
self.add_block_from(some_from_block, switchint_kind)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue