Adapt codegen-unit tests to new CGU naming scheme.
This commit is contained in:
parent
f6894ebe66
commit
94b32adb71
8 changed files with 58 additions and 35 deletions
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
#![feature(start)]
|
#![feature(start)]
|
||||||
|
|
||||||
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<drop_in_place_intrinsic::StructWithDtor[0]> @@ drop_in_place_intrinsic0[Internal]
|
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<drop_in_place_intrinsic::StructWithDtor[0]> @@ drop_in_place_intrinsic-cgu.0[Internal]
|
||||||
struct StructWithDtor(u32);
|
struct StructWithDtor(u32);
|
||||||
|
|
||||||
impl Drop for StructWithDtor {
|
impl Drop for StructWithDtor {
|
||||||
|
@ -26,7 +26,7 @@ impl Drop for StructWithDtor {
|
||||||
#[start]
|
#[start]
|
||||||
fn start(_: isize, _: *const *const u8) -> isize {
|
fn start(_: isize, _: *const *const u8) -> isize {
|
||||||
|
|
||||||
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<[drop_in_place_intrinsic::StructWithDtor[0]; 2]> @@ drop_in_place_intrinsic0[Internal]
|
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<[drop_in_place_intrinsic::StructWithDtor[0]; 2]> @@ drop_in_place_intrinsic-cgu.0[Internal]
|
||||||
let x = [StructWithDtor(0), StructWithDtor(1)];
|
let x = [StructWithDtor(0), StructWithDtor(1)];
|
||||||
|
|
||||||
drop_slice_in_place(&x);
|
drop_slice_in_place(&x);
|
||||||
|
@ -40,7 +40,7 @@ fn drop_slice_in_place(x: &[StructWithDtor]) {
|
||||||
// This is the interesting thing in this test case: Normally we would
|
// This is the interesting thing in this test case: Normally we would
|
||||||
// not have drop-glue for the unsized [StructWithDtor]. This has to be
|
// not have drop-glue for the unsized [StructWithDtor]. This has to be
|
||||||
// generated though when the drop_in_place() intrinsic is used.
|
// generated though when the drop_in_place() intrinsic is used.
|
||||||
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<[drop_in_place_intrinsic::StructWithDtor[0]]> @@ drop_in_place_intrinsic0[Internal]
|
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<[drop_in_place_intrinsic::StructWithDtor[0]]> @@ drop_in_place_intrinsic-cgu.0[Internal]
|
||||||
::std::ptr::drop_in_place(x as *const _ as *mut [StructWithDtor]);
|
::std::ptr::drop_in_place(x as *const _ as *mut [StructWithDtor]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,7 +47,7 @@ enum EnumNoDrop<T1, T2> {
|
||||||
struct NonGenericNoDrop(i32);
|
struct NonGenericNoDrop(i32);
|
||||||
|
|
||||||
struct NonGenericWithDrop(i32);
|
struct NonGenericWithDrop(i32);
|
||||||
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<generic_drop_glue::NonGenericWithDrop[0]> @@ generic_drop_glue0[Internal]
|
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<generic_drop_glue::NonGenericWithDrop[0]> @@ generic_drop_glue-cgu.0[Internal]
|
||||||
|
|
||||||
impl Drop for NonGenericWithDrop {
|
impl Drop for NonGenericWithDrop {
|
||||||
//~ MONO_ITEM fn generic_drop_glue::{{impl}}[2]::drop[0]
|
//~ MONO_ITEM fn generic_drop_glue::{{impl}}[2]::drop[0]
|
||||||
|
@ -57,11 +57,11 @@ impl Drop for NonGenericWithDrop {
|
||||||
//~ MONO_ITEM fn generic_drop_glue::start[0]
|
//~ MONO_ITEM fn generic_drop_glue::start[0]
|
||||||
#[start]
|
#[start]
|
||||||
fn start(_: isize, _: *const *const u8) -> isize {
|
fn start(_: isize, _: *const *const u8) -> isize {
|
||||||
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<generic_drop_glue::StructWithDrop[0]<i8, char>> @@ generic_drop_glue0[Internal]
|
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<generic_drop_glue::StructWithDrop[0]<i8, char>> @@ generic_drop_glue-cgu.0[Internal]
|
||||||
//~ MONO_ITEM fn generic_drop_glue::{{impl}}[0]::drop[0]<i8, char>
|
//~ MONO_ITEM fn generic_drop_glue::{{impl}}[0]::drop[0]<i8, char>
|
||||||
let _ = StructWithDrop { x: 0i8, y: 'a' }.x;
|
let _ = StructWithDrop { x: 0i8, y: 'a' }.x;
|
||||||
|
|
||||||
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<generic_drop_glue::StructWithDrop[0]<&str, generic_drop_glue::NonGenericNoDrop[0]>> @@ generic_drop_glue0[Internal]
|
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<generic_drop_glue::StructWithDrop[0]<&str, generic_drop_glue::NonGenericNoDrop[0]>> @@ generic_drop_glue-cgu.0[Internal]
|
||||||
//~ MONO_ITEM fn generic_drop_glue::{{impl}}[0]::drop[0]<&str, generic_drop_glue::NonGenericNoDrop[0]>
|
//~ MONO_ITEM fn generic_drop_glue::{{impl}}[0]::drop[0]<&str, generic_drop_glue::NonGenericNoDrop[0]>
|
||||||
let _ = StructWithDrop { x: "&str", y: NonGenericNoDrop(0) }.y;
|
let _ = StructWithDrop { x: "&str", y: NonGenericNoDrop(0) }.y;
|
||||||
|
|
||||||
|
@ -70,17 +70,17 @@ fn start(_: isize, _: *const *const u8) -> isize {
|
||||||
|
|
||||||
// This is supposed to generate drop-glue because it contains a field that
|
// This is supposed to generate drop-glue because it contains a field that
|
||||||
// needs to be dropped.
|
// needs to be dropped.
|
||||||
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<generic_drop_glue::StructNoDrop[0]<generic_drop_glue::NonGenericWithDrop[0], f64>> @@ generic_drop_glue0[Internal]
|
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<generic_drop_glue::StructNoDrop[0]<generic_drop_glue::NonGenericWithDrop[0], f64>> @@ generic_drop_glue-cgu.0[Internal]
|
||||||
let _ = StructNoDrop { x: NonGenericWithDrop(0), y: 0f64 }.y;
|
let _ = StructNoDrop { x: NonGenericWithDrop(0), y: 0f64 }.y;
|
||||||
|
|
||||||
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<generic_drop_glue::EnumWithDrop[0]<i32, i64>> @@ generic_drop_glue0[Internal]
|
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<generic_drop_glue::EnumWithDrop[0]<i32, i64>> @@ generic_drop_glue-cgu.0[Internal]
|
||||||
//~ MONO_ITEM fn generic_drop_glue::{{impl}}[1]::drop[0]<i32, i64>
|
//~ MONO_ITEM fn generic_drop_glue::{{impl}}[1]::drop[0]<i32, i64>
|
||||||
let _ = match EnumWithDrop::A::<i32, i64>(0) {
|
let _ = match EnumWithDrop::A::<i32, i64>(0) {
|
||||||
EnumWithDrop::A(x) => x,
|
EnumWithDrop::A(x) => x,
|
||||||
EnumWithDrop::B(x) => x as i32
|
EnumWithDrop::B(x) => x as i32
|
||||||
};
|
};
|
||||||
|
|
||||||
//~MONO_ITEM fn core::ptr[0]::drop_in_place[0]<generic_drop_glue::EnumWithDrop[0]<f64, f32>> @@ generic_drop_glue0[Internal]
|
//~MONO_ITEM fn core::ptr[0]::drop_in_place[0]<generic_drop_glue::EnumWithDrop[0]<f64, f32>> @@ generic_drop_glue-cgu.0[Internal]
|
||||||
//~ MONO_ITEM fn generic_drop_glue::{{impl}}[1]::drop[0]<f64, f32>
|
//~ MONO_ITEM fn generic_drop_glue::{{impl}}[1]::drop[0]<f64, f32>
|
||||||
let _ = match EnumWithDrop::B::<f64, f32>(1.0) {
|
let _ = match EnumWithDrop::B::<f64, f32>(1.0) {
|
||||||
EnumWithDrop::A(x) => x,
|
EnumWithDrop::A(x) => x,
|
||||||
|
|
|
@ -34,13 +34,13 @@ impl<T> Trait for Struct<T> {
|
||||||
fn start(_: isize, _: *const *const u8) -> isize {
|
fn start(_: isize, _: *const *const u8) -> isize {
|
||||||
let s1 = Struct { _a: 0u32 };
|
let s1 = Struct { _a: 0u32 };
|
||||||
|
|
||||||
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<instantiation_through_vtable::Struct[0]<u32>> @@ instantiation_through_vtable0[Internal]
|
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<instantiation_through_vtable::Struct[0]<u32>> @@ instantiation_through_vtable-cgu.0[Internal]
|
||||||
//~ MONO_ITEM fn instantiation_through_vtable::{{impl}}[0]::foo[0]<u32>
|
//~ MONO_ITEM fn instantiation_through_vtable::{{impl}}[0]::foo[0]<u32>
|
||||||
//~ MONO_ITEM fn instantiation_through_vtable::{{impl}}[0]::bar[0]<u32>
|
//~ MONO_ITEM fn instantiation_through_vtable::{{impl}}[0]::bar[0]<u32>
|
||||||
let _ = &s1 as &Trait;
|
let _ = &s1 as &Trait;
|
||||||
|
|
||||||
let s1 = Struct { _a: 0u64 };
|
let s1 = Struct { _a: 0u64 };
|
||||||
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<instantiation_through_vtable::Struct[0]<u64>> @@ instantiation_through_vtable0[Internal]
|
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<instantiation_through_vtable::Struct[0]<u64>> @@ instantiation_through_vtable-cgu.0[Internal]
|
||||||
//~ MONO_ITEM fn instantiation_through_vtable::{{impl}}[0]::foo[0]<u64>
|
//~ MONO_ITEM fn instantiation_through_vtable::{{impl}}[0]::foo[0]<u64>
|
||||||
//~ MONO_ITEM fn instantiation_through_vtable::{{impl}}[0]::bar[0]<u64>
|
//~ MONO_ITEM fn instantiation_through_vtable::{{impl}}[0]::bar[0]<u64>
|
||||||
let _ = &s1 as &Trait;
|
let _ = &s1 as &Trait;
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
#![deny(dead_code)]
|
#![deny(dead_code)]
|
||||||
#![feature(start)]
|
#![feature(start)]
|
||||||
|
|
||||||
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<non_generic_drop_glue::StructWithDrop[0]> @@ non_generic_drop_glue0[Internal]
|
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<non_generic_drop_glue::StructWithDrop[0]> @@ non_generic_drop_glue-cgu.0[Internal]
|
||||||
struct StructWithDrop {
|
struct StructWithDrop {
|
||||||
x: i32
|
x: i32
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,7 @@ struct StructNoDrop {
|
||||||
x: i32
|
x: i32
|
||||||
}
|
}
|
||||||
|
|
||||||
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<non_generic_drop_glue::EnumWithDrop[0]> @@ non_generic_drop_glue0[Internal]
|
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<non_generic_drop_glue::EnumWithDrop[0]> @@ non_generic_drop_glue-cgu.0[Internal]
|
||||||
enum EnumWithDrop {
|
enum EnumWithDrop {
|
||||||
A(i32)
|
A(i32)
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,11 +15,11 @@
|
||||||
#![deny(dead_code)]
|
#![deny(dead_code)]
|
||||||
#![feature(start)]
|
#![feature(start)]
|
||||||
|
|
||||||
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<transitive_drop_glue::Root[0]> @@ transitive_drop_glue0[Internal]
|
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<transitive_drop_glue::Root[0]> @@ transitive_drop_glue-cgu.0[Internal]
|
||||||
struct Root(Intermediate);
|
struct Root(Intermediate);
|
||||||
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<transitive_drop_glue::Intermediate[0]> @@ transitive_drop_glue0[Internal]
|
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<transitive_drop_glue::Intermediate[0]> @@ transitive_drop_glue-cgu.0[Internal]
|
||||||
struct Intermediate(Leaf);
|
struct Intermediate(Leaf);
|
||||||
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<transitive_drop_glue::Leaf[0]> @@ transitive_drop_glue0[Internal]
|
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<transitive_drop_glue::Leaf[0]> @@ transitive_drop_glue-cgu.0[Internal]
|
||||||
struct Leaf;
|
struct Leaf;
|
||||||
|
|
||||||
impl Drop for Leaf {
|
impl Drop for Leaf {
|
||||||
|
@ -40,15 +40,15 @@ impl<T> Drop for LeafGen<T> {
|
||||||
fn start(_: isize, _: *const *const u8) -> isize {
|
fn start(_: isize, _: *const *const u8) -> isize {
|
||||||
let _ = Root(Intermediate(Leaf));
|
let _ = Root(Intermediate(Leaf));
|
||||||
|
|
||||||
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<transitive_drop_glue::RootGen[0]<u32>> @@ transitive_drop_glue0[Internal]
|
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<transitive_drop_glue::RootGen[0]<u32>> @@ transitive_drop_glue-cgu.0[Internal]
|
||||||
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<transitive_drop_glue::IntermediateGen[0]<u32>> @@ transitive_drop_glue0[Internal]
|
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<transitive_drop_glue::IntermediateGen[0]<u32>> @@ transitive_drop_glue-cgu.0[Internal]
|
||||||
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<transitive_drop_glue::LeafGen[0]<u32>> @@ transitive_drop_glue0[Internal]
|
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<transitive_drop_glue::LeafGen[0]<u32>> @@ transitive_drop_glue-cgu.0[Internal]
|
||||||
//~ MONO_ITEM fn transitive_drop_glue::{{impl}}[1]::drop[0]<u32>
|
//~ MONO_ITEM fn transitive_drop_glue::{{impl}}[1]::drop[0]<u32>
|
||||||
let _ = RootGen(IntermediateGen(LeafGen(0u32)));
|
let _ = RootGen(IntermediateGen(LeafGen(0u32)));
|
||||||
|
|
||||||
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<transitive_drop_glue::RootGen[0]<i16>> @@ transitive_drop_glue0[Internal]
|
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<transitive_drop_glue::RootGen[0]<i16>> @@ transitive_drop_glue-cgu.0[Internal]
|
||||||
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<transitive_drop_glue::IntermediateGen[0]<i16>> @@ transitive_drop_glue0[Internal]
|
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<transitive_drop_glue::IntermediateGen[0]<i16>> @@ transitive_drop_glue-cgu.0[Internal]
|
||||||
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<transitive_drop_glue::LeafGen[0]<i16>> @@ transitive_drop_glue0[Internal]
|
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<transitive_drop_glue::LeafGen[0]<i16>> @@ transitive_drop_glue-cgu.0[Internal]
|
||||||
//~ MONO_ITEM fn transitive_drop_glue::{{impl}}[1]::drop[0]<i16>
|
//~ MONO_ITEM fn transitive_drop_glue::{{impl}}[1]::drop[0]<i16>
|
||||||
let _ = RootGen(IntermediateGen(LeafGen(0i16)));
|
let _ = RootGen(IntermediateGen(LeafGen(0i16)));
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
#![deny(dead_code)]
|
#![deny(dead_code)]
|
||||||
#![feature(start)]
|
#![feature(start)]
|
||||||
|
|
||||||
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<tuple_drop_glue::Dropped[0]> @@ tuple_drop_glue0[Internal]
|
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<tuple_drop_glue::Dropped[0]> @@ tuple_drop_glue-cgu.0[Internal]
|
||||||
struct Dropped;
|
struct Dropped;
|
||||||
|
|
||||||
impl Drop for Dropped {
|
impl Drop for Dropped {
|
||||||
|
@ -26,11 +26,11 @@ impl Drop for Dropped {
|
||||||
//~ MONO_ITEM fn tuple_drop_glue::start[0]
|
//~ MONO_ITEM fn tuple_drop_glue::start[0]
|
||||||
#[start]
|
#[start]
|
||||||
fn start(_: isize, _: *const *const u8) -> isize {
|
fn start(_: isize, _: *const *const u8) -> isize {
|
||||||
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<(u32, tuple_drop_glue::Dropped[0])> @@ tuple_drop_glue0[Internal]
|
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<(u32, tuple_drop_glue::Dropped[0])> @@ tuple_drop_glue-cgu.0[Internal]
|
||||||
let x = (0u32, Dropped);
|
let x = (0u32, Dropped);
|
||||||
|
|
||||||
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<(i16, (tuple_drop_glue::Dropped[0], bool))> @@ tuple_drop_glue0[Internal]
|
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<(i16, (tuple_drop_glue::Dropped[0], bool))> @@ tuple_drop_glue-cgu.0[Internal]
|
||||||
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<(tuple_drop_glue::Dropped[0], bool)> @@ tuple_drop_glue0[Internal]
|
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<(tuple_drop_glue::Dropped[0], bool)> @@ tuple_drop_glue-cgu.0[Internal]
|
||||||
let x = (0i16, (Dropped, true));
|
let x = (0i16, (Dropped, true));
|
||||||
|
|
||||||
0
|
0
|
||||||
|
|
|
@ -59,13 +59,13 @@ impl<T: ?Sized + Unsize<U>, U: ?Sized> CoerceUnsized<Wrapper<U>> for Wrapper<T>
|
||||||
fn start(_: isize, _: *const *const u8) -> isize {
|
fn start(_: isize, _: *const *const u8) -> isize {
|
||||||
// simple case
|
// simple case
|
||||||
let bool_sized = &true;
|
let bool_sized = &true;
|
||||||
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<bool> @@ unsizing0[Internal]
|
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<bool> @@ unsizing-cgu.0[Internal]
|
||||||
//~ MONO_ITEM fn unsizing::{{impl}}[0]::foo[0]
|
//~ MONO_ITEM fn unsizing::{{impl}}[0]::foo[0]
|
||||||
let _bool_unsized = bool_sized as &Trait;
|
let _bool_unsized = bool_sized as &Trait;
|
||||||
|
|
||||||
let char_sized = &'a';
|
let char_sized = &'a';
|
||||||
|
|
||||||
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<char> @@ unsizing0[Internal]
|
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<char> @@ unsizing-cgu.0[Internal]
|
||||||
//~ MONO_ITEM fn unsizing::{{impl}}[1]::foo[0]
|
//~ MONO_ITEM fn unsizing::{{impl}}[1]::foo[0]
|
||||||
let _char_unsized = char_sized as &Trait;
|
let _char_unsized = char_sized as &Trait;
|
||||||
|
|
||||||
|
@ -75,13 +75,13 @@ fn start(_: isize, _: *const *const u8) -> isize {
|
||||||
_b: 2,
|
_b: 2,
|
||||||
_c: 3.0f64
|
_c: 3.0f64
|
||||||
};
|
};
|
||||||
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<f64> @@ unsizing0[Internal]
|
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<f64> @@ unsizing-cgu.0[Internal]
|
||||||
//~ MONO_ITEM fn unsizing::{{impl}}[2]::foo[0]
|
//~ MONO_ITEM fn unsizing::{{impl}}[2]::foo[0]
|
||||||
let _struct_unsized = struct_sized as &Struct<Trait>;
|
let _struct_unsized = struct_sized as &Struct<Trait>;
|
||||||
|
|
||||||
// custom coercion
|
// custom coercion
|
||||||
let wrapper_sized = Wrapper(&0u32);
|
let wrapper_sized = Wrapper(&0u32);
|
||||||
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<u32> @@ unsizing0[Internal]
|
//~ MONO_ITEM fn core::ptr[0]::drop_in_place[0]<u32> @@ unsizing-cgu.0[Internal]
|
||||||
//~ MONO_ITEM fn unsizing::{{impl}}[3]::foo[0]
|
//~ MONO_ITEM fn unsizing::{{impl}}[3]::foo[0]
|
||||||
let _wrapper_sized = wrapper_sized as Wrapper<Trait>;
|
let _wrapper_sized = wrapper_sized as Wrapper<Trait>;
|
||||||
|
|
||||||
|
|
|
@ -2210,12 +2210,12 @@ impl<'test> TestCx<'test> {
|
||||||
.stdout
|
.stdout
|
||||||
.lines()
|
.lines()
|
||||||
.filter(|line| line.starts_with(PREFIX))
|
.filter(|line| line.starts_with(PREFIX))
|
||||||
.map(str_to_mono_item)
|
.map(|line| str_to_mono_item(line, true))
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
let expected: Vec<MonoItem> = errors::load_errors(&self.testpaths.file, None)
|
let expected: Vec<MonoItem> = errors::load_errors(&self.testpaths.file, None)
|
||||||
.iter()
|
.iter()
|
||||||
.map(|e| str_to_mono_item(&e.msg[..]))
|
.map(|e| str_to_mono_item(&e.msg[..], false))
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
let mut missing = Vec::new();
|
let mut missing = Vec::new();
|
||||||
|
@ -2300,14 +2300,14 @@ impl<'test> TestCx<'test> {
|
||||||
}
|
}
|
||||||
|
|
||||||
// [MONO_ITEM] name [@@ (cgu)+]
|
// [MONO_ITEM] name [@@ (cgu)+]
|
||||||
fn str_to_mono_item(s: &str) -> MonoItem {
|
fn str_to_mono_item(s: &str, cgu_has_crate_disambiguator: bool) -> MonoItem {
|
||||||
let s = if s.starts_with(PREFIX) {
|
let s = if s.starts_with(PREFIX) {
|
||||||
(&s[PREFIX.len()..]).trim()
|
(&s[PREFIX.len()..]).trim()
|
||||||
} else {
|
} else {
|
||||||
s.trim()
|
s.trim()
|
||||||
};
|
};
|
||||||
|
|
||||||
let full_string = format!("{}{}", PREFIX, s.trim().to_owned());
|
let full_string = format!("{}{}", PREFIX, s);
|
||||||
|
|
||||||
let parts: Vec<&str> = s
|
let parts: Vec<&str> = s
|
||||||
.split(CGU_MARKER)
|
.split(CGU_MARKER)
|
||||||
|
@ -2324,7 +2324,13 @@ impl<'test> TestCx<'test> {
|
||||||
.split(' ')
|
.split(' ')
|
||||||
.map(str::trim)
|
.map(str::trim)
|
||||||
.filter(|s| !s.is_empty())
|
.filter(|s| !s.is_empty())
|
||||||
.map(str::to_owned)
|
.map(|s| {
|
||||||
|
if cgu_has_crate_disambiguator {
|
||||||
|
remove_crate_disambiguator_from_cgu(s)
|
||||||
|
} else {
|
||||||
|
s.to_string()
|
||||||
|
}
|
||||||
|
})
|
||||||
.collect()
|
.collect()
|
||||||
} else {
|
} else {
|
||||||
HashSet::new()
|
HashSet::new()
|
||||||
|
@ -2349,6 +2355,23 @@ impl<'test> TestCx<'test> {
|
||||||
|
|
||||||
string
|
string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn remove_crate_disambiguator_from_cgu(cgu: &str) -> String {
|
||||||
|
// The first '.' is the start of the crate disambiguator
|
||||||
|
let disambiguator_start = cgu.find('.')
|
||||||
|
.expect("Could not find start of crate disambiguator in CGU spec");
|
||||||
|
|
||||||
|
// The first non-alphanumeric character is the end of the disambiguator
|
||||||
|
let disambiguator_end = cgu[disambiguator_start + 1 ..]
|
||||||
|
.find(|c| !char::is_alphanumeric(c))
|
||||||
|
.expect("Could not find end of crate disambiguator in CGU spec")
|
||||||
|
+ disambiguator_start + 1;
|
||||||
|
|
||||||
|
let mut result = cgu[0 .. disambiguator_start].to_string();
|
||||||
|
result.push_str(&cgu[disambiguator_end ..]);
|
||||||
|
|
||||||
|
result
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn init_incremental_test(&self) {
|
fn init_incremental_test(&self) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue