summaryrefslogtreecommitdiffstats
path: root/src/tools/rustfmt/tests/target/imports/imports.rs
blob: 87584d89f6637f3dfd6046e99cb12e9c7bfbe3bf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
// rustfmt-normalize_comments: true

// Imports.

// Long import.
use exceedingly::loooooooooooooooooooooooooooooooooooooooooooooooooooooooong::import::path::{
    ItemA, ItemB,
};
use exceedingly::looooooooooooooooooooooooooooooooooooooooooooooooooooooooooong::import::path::{
    ItemA, ItemB,
};
use rustc_ast::ast::{ItemDefaultImpl, ItemForeignMod, ItemImpl, ItemMac, ItemMod, ItemStatic};

use list::{
    // Another item
    AnotherItem, // Another Comment
    // Last Item
    LastItem,
    // Some item
    SomeItem, // Comment
};

use test::{/* A */ self /* B */, Other /* C */};

pub use rustc_ast::ast::{Expr, ExprAssign, ExprCall, ExprMethodCall, ExprPath, Expr_};
use rustc_ast::{self};
use Foo::{Bar, Baz};
use {Bar /* comment */, /* Pre-comment! */ Foo};

use std::io;
use std::io::{self};

mod Foo {
    pub use rustc_ast::ast::{
        ItemDefaultImpl, ItemForeignMod, ItemImpl, ItemMac, ItemMod, ItemStatic,
    };

    mod Foo2 {
        pub use rustc_ast::ast::{
            self, ItemDefaultImpl, ItemForeignMod, ItemImpl, ItemMac, ItemMod, ItemStatic,
        };
    }
}

fn test() {
    use Baz::*;
    use Qux;
}

// Simple imports
use bar::quux as kaas;
use foo;
use foo::bar::baz;

// With aliases.
use foo::qux as bar;
use foo::{self as bar};
use foo::{self as bar, baz};
use foo::{baz, qux as bar};

// With absolute paths
use foo;
use foo::Bar;
use foo::{Bar, Baz};
use Foo;
use {Bar, Baz};

// Root globs
use *;
use *;

// spaces used to cause glob imports to disappear (#1356)
use super::*;
use foo::issue_1356::*;

// We shouldn't remove imports which have attributes attached (#1858)
#[cfg(unix)]
use self::unix::{};

// nested imports
use foo::{
    a, b,
    bar::{
        baz,
        foo::{a, b, cxxxxxxxxxxxxx, yyyyyyyyyyyyyy, zzzzzzzzzzzzzzzz},
        qux, xxxxxxxxxxx, yyyyyyyyyyyyy, zzzzzzzzzzzzzzzz,
    },
    boo, c,
};

use fooo::{
    baar::foobar::{
        xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx, yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy,
        zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz,
    },
    bar,
    bar::*,
    x, y, z,
};

use exonum::{
    api::{Api, ApiError},
    blockchain::{self, BlockProof, Blockchain, Transaction, TransactionSet},
    crypto::{Hash, PublicKey},
    helpers::Height,
    node::TransactionSend,
    storage::{ListProof, MapProof},
};

// nested imports with a single sub-tree.
use a::b::c::d;
use a::b::c::*;
use a::b::c::{xxx, yyy, zzz};

// #2645
/// This line is not affected.
// This line is deleted.
use c;

// #2670
#[macro_use]
use imports_with_attr;

// #2888
use std::f64::consts::{E, PI, SQRT_2};

// #3273
#[rustfmt::skip]
use std::fmt::{self, {Display, Formatter}};