1 //! Completion tests for use trees.
2 use expect_test::{expect, Expect};
4 use crate::tests::completion_list;
6 fn check(ra_fixture: &str, expect: Expect) {
7 let actual = completion_list(ra_fixture);
8 expect.assert_eq(&actual)
13 cov_mark::check!(unqualified_path_only_modules_in_import);
16 //- /lib.rs crate:main deps:other_crate
21 //- /other_crate/lib.rs crate:other_crate
35 fn dont_complete_current_use() {
36 cov_mark::check!(dont_complete_current_use);
37 check(r#"use self::foo$0;"#, expect![[r#""#]]);
40 mod foo { pub struct S; }
41 use self::{foo::*, bar$0};
51 fn nested_use_tree() {
82 fn deeply_nested_use_tree() {
92 use foo::{bar::{baz::$0}}
103 pub struct FooBarBaz;
117 fn plain_qualified_use_tree() {
125 macro_rules! foo_ { {} => {} }
132 ma foo macro_rules! foo_
138 fn self_qualified_use_tree() {
154 fn super_qualified_use_tree() {
174 fn super_super_qualified_use_tree() {
181 mod c { use super::super::$0 }
194 fn crate_qualified_use_tree() {
210 fn extern_crate_qualified_use_tree() {
213 //- /lib.rs crate:main deps:other_crate
215 //- /other_crate/lib.rs crate:other_crate
244 fn use_tree_braces_at_start() {
261 fn impl_prefix_does_not_add_fn_snippet() {
262 // regression test for 7222
266 pub fn bar(x: u32) {}
268 use self::foo::impl$0