Add test for #9560

This commit is contained in:
Florian Diebold 2021-07-11 16:14:22 +02:00
parent b7bd45574a
commit 44d3c32922

View file

@ -500,7 +500,7 @@ fn main() {
} }
#[test] #[test]
fn coerce_unsize_expected_type() { fn coerce_unsize_expected_type_1() {
check_no_mismatches( check_no_mismatches(
r#" r#"
//- minicore: coerce_unsized //- minicore: coerce_unsized
@ -520,6 +520,32 @@ fn main() {
); );
} }
#[test]
fn coerce_unsize_expected_type_2() {
// FIXME: this is wrong, #9560
check(
r#"
//- minicore: coerce_unsized
struct InFile<T>;
impl<T> InFile<T> {
fn with_value<U>(self, value: U) -> InFile<U> { InFile }
}
struct RecordField;
trait AstNode {}
impl AstNode for RecordField {}
fn takes_dyn(it: InFile<&dyn AstNode>) {}
fn test() {
let x: InFile<()> = InFile;
let n = &RecordField;
takes_dyn(x.with_value(n));
// ^^^^^^^^^^^^^^^ expected InFile<&dyn AstNode>, got InFile<&RecordField>
}
"#,
);
}
#[test] #[test]
fn coerce_array_elems_lub() { fn coerce_array_elems_lub() {
check_no_mismatches( check_no_mismatches(