From b9070cc64e0767d2a8bde5084a61f46e2e804f5b Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 14 Jul 2020 16:43:39 +0200 Subject: Refactor the test of diagnostic tests --- crates/ra_hir_ty/src/tests.rs | 408 ------------------------------------------ 1 file changed, 408 deletions(-) (limited to 'crates/ra_hir_ty/src/tests.rs') diff --git a/crates/ra_hir_ty/src/tests.rs b/crates/ra_hir_ty/src/tests.rs index 27f5a60bf..d57b3f288 100644 --- a/crates/ra_hir_ty/src/tests.rs +++ b/crates/ra_hir_ty/src/tests.rs @@ -20,7 +20,6 @@ use hir_def::{ AssocItemId, DefWithBodyId, LocalModuleId, Lookup, ModuleDefId, }; use hir_expand::{db::AstDatabase, InFile}; -use insta::assert_snapshot; use ra_db::{fixture::WithFixture, FileRange, SourceDatabase, SourceDatabaseExt}; use ra_syntax::{ algo, @@ -341,410 +340,3 @@ fn typing_whitespace_inside_a_function_should_not_invalidate_types() { assert!(!format!("{:?}", events).contains("infer"), "{:#?}", events) } } - -#[test] -fn no_such_field_diagnostics() { - let diagnostics = TestDB::with_files( - r" - //- /lib.rs - struct S { foo: i32, bar: () } - impl S { - fn new() -> S { - S { - foo: 92, - baz: 62, - } - } - } - ", - ) - .diagnostics() - .0; - - assert_snapshot!(diagnostics, @r###" - "baz: 62": no such field - "{\n foo: 92,\n baz: 62,\n }": Missing structure fields: - - bar - "### - ); -} - -#[test] -fn no_such_field_with_feature_flag_diagnostics() { - let diagnostics = TestDB::with_files( - r#" - //- /lib.rs crate:foo cfg:feature=foo - struct MyStruct { - my_val: usize, - #[cfg(feature = "foo")] - bar: bool, - } - - impl MyStruct { - #[cfg(feature = "foo")] - pub(crate) fn new(my_val: usize, bar: bool) -> Self { - Self { my_val, bar } - } - - #[cfg(not(feature = "foo"))] - pub(crate) fn new(my_val: usize, _bar: bool) -> Self { - Self { my_val } - } - } - "#, - ) - .diagnostics() - .0; - - assert_snapshot!(diagnostics, @r###""###); -} - -#[test] -fn no_such_field_enum_with_feature_flag_diagnostics() { - let diagnostics = TestDB::with_files( - r#" - //- /lib.rs crate:foo cfg:feature=foo - enum Foo { - #[cfg(not(feature = "foo"))] - Buz, - #[cfg(feature = "foo")] - Bar, - Baz - } - - fn test_fn(f: Foo) { - match f { - Foo::Bar => {}, - Foo::Baz => {}, - } - } - "#, - ) - .diagnostics() - .0; - - assert_snapshot!(diagnostics, @r###""###); -} - -#[test] -fn no_such_field_with_feature_flag_diagnostics_on_struct_lit() { - let diagnostics = TestDB::with_files( - r#" - //- /lib.rs crate:foo cfg:feature=foo - struct S { - #[cfg(feature = "foo")] - foo: u32, - #[cfg(not(feature = "foo"))] - bar: u32, - } - - impl S { - #[cfg(feature = "foo")] - fn new(foo: u32) -> Self { - Self { foo } - } - #[cfg(not(feature = "foo"))] - fn new(bar: u32) -> Self { - Self { bar } - } - } - "#, - ) - .diagnostics() - .0; - - assert_snapshot!(diagnostics, @r###""###); -} - -#[test] -fn no_such_field_with_feature_flag_diagnostics_on_block_expr() { - let diagnostics = TestDB::with_files( - r#" - //- /lib.rs crate:foo cfg:feature=foo - struct S { - #[cfg(feature = "foo")] - foo: u32, - #[cfg(not(feature = "foo"))] - bar: u32, - } - - impl S { - fn new(bar: u32) -> Self { - #[cfg(feature = "foo")] - { - Self { foo: bar } - } - #[cfg(not(feature = "foo"))] - { - Self { bar } - } - } - } - "#, - ) - .diagnostics() - .0; - - assert_snapshot!(diagnostics, @r###""###); -} - -#[test] -fn no_such_field_with_feature_flag_diagnostics_on_struct_fields() { - let diagnostics = TestDB::with_files( - r#" - //- /lib.rs crate:foo cfg:feature=foo - struct S { - #[cfg(feature = "foo")] - foo: u32, - #[cfg(not(feature = "foo"))] - bar: u32, - } - - impl S { - fn new(val: u32) -> Self { - Self { - #[cfg(feature = "foo")] - foo: val, - #[cfg(not(feature = "foo"))] - bar: val, - } - } - } - "#, - ) - .diagnostics() - .0; - - assert_snapshot!(diagnostics, @r###""###); -} - -#[test] -fn no_such_field_with_type_macro() { - let diagnostics = TestDB::with_files( - r" - macro_rules! Type { - () => { u32 }; - } - - struct Foo { - bar: Type![], - } - impl Foo { - fn new() -> Self { - Foo { bar: 0 } - } - } - ", - ) - .diagnostics() - .0; - - assert_snapshot!(diagnostics, @r###""###); -} - -#[test] -fn missing_record_pat_field_diagnostic() { - let diagnostics = TestDB::with_files( - r" - //- /lib.rs - struct S { foo: i32, bar: () } - fn baz(s: S) { - let S { foo: _ } = s; - } - ", - ) - .diagnostics() - .0; - - assert_snapshot!(diagnostics, @r###" - "{ foo: _ }": Missing structure fields: - - bar - "### - ); -} - -#[test] -fn missing_record_pat_field_no_diagnostic_if_not_exhaustive() { - let diagnostics = TestDB::with_files( - r" - //- /lib.rs - struct S { foo: i32, bar: () } - fn baz(s: S) -> i32 { - match s { - S { foo, .. } => foo, - } - } - ", - ) - .diagnostics() - .0; - - assert_snapshot!(diagnostics, @""); -} - -#[test] -fn missing_unsafe_diagnostic_with_raw_ptr() { - let diagnostics = TestDB::with_files( - r" -//- /lib.rs -fn missing_unsafe() { - let x = &5 as *const usize; - let y = *x; -} -", - ) - .diagnostics() - .0; - - assert_snapshot!(diagnostics, @r#""*x": This operation is unsafe and requires an unsafe function or block"#); -} - -#[test] -fn missing_unsafe_diagnostic_with_unsafe_call() { - let diagnostics = TestDB::with_files( - r" -//- /lib.rs -unsafe fn unsafe_fn() { - let x = &5 as *const usize; - let y = *x; -} - -fn missing_unsafe() { - unsafe_fn(); -} -", - ) - .diagnostics() - .0; - - assert_snapshot!(diagnostics, @r#""unsafe_fn()": This operation is unsafe and requires an unsafe function or block"#); -} - -#[test] -fn missing_unsafe_diagnostic_with_unsafe_method_call() { - let diagnostics = TestDB::with_files( - r" -struct HasUnsafe; - -impl HasUnsafe { - unsafe fn unsafe_fn(&self) { - let x = &5 as *const usize; - let y = *x; - } -} - -fn missing_unsafe() { - HasUnsafe.unsafe_fn(); -} - -", - ) - .diagnostics() - .0; - - assert_snapshot!(diagnostics, @r#""HasUnsafe.unsafe_fn()": This operation is unsafe and requires an unsafe function or block"#); -} - -#[test] -fn no_missing_unsafe_diagnostic_with_raw_ptr_in_unsafe_block() { - let diagnostics = TestDB::with_files( - r" -fn nothing_to_see_move_along() { - let x = &5 as *const usize; - unsafe { - let y = *x; - } -} -", - ) - .diagnostics() - .0; - - assert_snapshot!(diagnostics, @""); -} - -#[test] -fn missing_unsafe_diagnostic_with_raw_ptr_outside_unsafe_block() { - let diagnostics = TestDB::with_files( - r" -fn nothing_to_see_move_along() { - let x = &5 as *const usize; - unsafe { - let y = *x; - } - let z = *x; -} -", - ) - .diagnostics() - .0; - - assert_snapshot!(diagnostics, @r#""*x": This operation is unsafe and requires an unsafe function or block"#); -} - -#[test] -fn no_missing_unsafe_diagnostic_with_unsafe_call_in_unsafe_block() { - let diagnostics = TestDB::with_files( - r" -unsafe fn unsafe_fn() { - let x = &5 as *const usize; - let y = *x; -} - -fn nothing_to_see_move_along() { - unsafe { - unsafe_fn(); - } -} -", - ) - .diagnostics() - .0; - - assert_snapshot!(diagnostics, @""); -} - -#[test] -fn no_missing_unsafe_diagnostic_with_unsafe_method_call_in_unsafe_block() { - let diagnostics = TestDB::with_files( - r" -struct HasUnsafe; - -impl HasUnsafe { - unsafe fn unsafe_fn() { - let x = &5 as *const usize; - let y = *x; - } -} - -fn nothing_to_see_move_along() { - unsafe { - HasUnsafe.unsafe_fn(); - } -} - -", - ) - .diagnostics() - .0; - - assert_snapshot!(diagnostics, @""); -} - -#[test] -fn break_outside_of_loop() { - let diagnostics = TestDB::with_files( - r" - //- /lib.rs - fn foo() { - break; - } - ", - ) - .diagnostics() - .0; - - assert_snapshot!(diagnostics, @r###""break": break outside of loop - "### - ); -} -- cgit v1.2.3