From 3a3b40a55430756436cb9a0602d4449a5177be69 Mon Sep 17 00:00:00 2001 From: BGluth Date: Wed, 10 Jun 2020 11:11:47 -0600 Subject: Created goto Self enum variant test --- crates/ra_ide/src/goto_definition.rs | 80 ++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/crates/ra_ide/src/goto_definition.rs b/crates/ra_ide/src/goto_definition.rs index 0798d2c36..450ce0ba7 100644 --- a/crates/ra_ide/src/goto_definition.rs +++ b/crates/ra_ide/src/goto_definition.rs @@ -908,4 +908,84 @@ mod tests { "x: i32|x", ); } + + #[test] + fn goto_def_for_enum_variant_self_pattern_const() { + check_goto( + " + //- /lib.rs + enum Foo { + Bar, + } + impl Foo { + fn baz(self) { + match self { + Self::Bar<|> => {} + } + } + } + ", + "Bar ENUM_VARIANT FileId(1) 15..18 15..18", + "Bar|Bar", + ); + } + + #[test] + fn goto_def_for_enum_variant_self_pattern_record() { + check_goto( + " + //- /lib.rs + enum Foo { + Bar { val: i32 }, + } + impl Foo { + fn baz(self) -> i32 { + match self { + Self::Bar<|> { val } => {} + } + } + } + ", + "Bar ENUM_VARIANT FileId(1) 15..31 15..18", + "Bar { val: i32 }|Bar", + ); + } + + #[test] + fn goto_def_for_enum_variant_self_expr_const() { + check_goto( + " + //- /lib.rs + enum Foo { + Bar, + } + impl Foo { + fn baz(self) { + Self::Bar<|>; + } + } + ", + "Bar ENUM_VARIANT FileId(1) 15..18 15..18", + "Bar|Bar", + ); + } + + #[test] + fn goto_def_for_enum_variant_self_expr_record() { + check_goto( + " + //- /lib.rs + enum Foo { + Bar { val: i32 }, + } + impl Foo { + fn baz(self) { + Self::Bar<|> {val: 4}; + } + } + ", + "Bar ENUM_VARIANT FileId(1) 15..31 15..18", + "Bar { val: i32 }|Bar", + ); + } } -- cgit v1.2.3