diff --git a/crates/hir_ty/src/diagnostics/match_check.rs b/crates/hir_ty/src/diagnostics/match_check.rs index fbe760c39eb..1c1423fbfef 100644 --- a/crates/hir_ty/src/diagnostics/match_check.rs +++ b/crates/hir_ty/src/diagnostics/match_check.rs @@ -1495,6 +1495,20 @@ fn main(f: Foo) { ); } + #[test] + fn internal_or() { + check_diagnostics( + r#" +fn main() { + enum Either { A(bool), B } + match Either::B { + //^^^^^^^^^ Missing match arm + Either::A(true | false) => (), + } +} +"#, + ); + } mod false_negatives { //! The implementation of match checking here is a work in progress. As we roll this out, we //! prefer false negatives to false positives (ideally there would be no false positives). This @@ -1518,21 +1532,6 @@ fn main() { 11..20 => (), } } -"#, - ); - } - - #[test] - fn internal_or() { - // We do not currently handle patterns with internal `or`s. - check_diagnostics( - r#" -fn main() { - enum Either { A(bool), B } - match Either::B { - Either::A(true | false) => (), - } -} "#, ); } diff --git a/crates/hir_ty/src/tests/simple.rs b/crates/hir_ty/src/tests/simple.rs index ab21332fbb1..b364c2e5802 100644 --- a/crates/hir_ty/src/tests/simple.rs +++ b/crates/hir_ty/src/tests/simple.rs @@ -2418,13 +2418,15 @@ fn foo() { #[test] fn infer_inner_type() { - check_infer(r#" + check_infer( + r#" fn foo() { struct S { field: u32 } let s = S { field: 0 }; let f = s.field; } - "#, expect![[r#" + "#, + expect![[r#" 9..89 '{ ...eld; }': () 47..48 's': S 51..65 'S { field: 0 }': S @@ -2432,5 +2434,6 @@ struct S { field: u32 } 75..76 'f': u32 79..80 's': S 79..86 's.field': u32 - "#]]); + "#]], + ); } diff --git a/crates/ide/src/inlay_hints.rs b/crates/ide/src/inlay_hints.rs index 2f37c8040c3..42d0a38e8d5 100644 --- a/crates/ide/src/inlay_hints.rs +++ b/crates/ide/src/inlay_hints.rs @@ -654,6 +654,7 @@ struct InnerStruct {} let test = "test"; //^^^^ &str let test = InnerStruct {}; + //^^^^ InnerStruct let test = unresolved();