Skip to content

Commit 713f932

Browse files
committed
Eliminate glob imports
1 parent 6eb82a9 commit 713f932

25 files changed

+418
-110
lines changed

src/attr.rs

+21-10
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,21 @@
1-
use super::*;
1+
#[cfg(feature = "parsing")]
2+
use crate::error::Error;
3+
#[cfg(feature = "parsing")]
4+
use crate::error::Result;
5+
use crate::expr::Expr;
6+
use crate::mac::MacroDelimiter;
7+
#[cfg(feature = "parsing")]
8+
use crate::meta::{self, ParseNestedMeta};
9+
#[cfg(feature = "parsing")]
10+
use crate::parse::{Parse, ParseStream, Parser};
11+
use crate::path::Path;
12+
use crate::token;
213
use proc_macro2::TokenStream;
314
#[cfg(feature = "printing")]
415
use std::iter;
516
#[cfg(feature = "printing")]
617
use std::slice;
718

8-
#[cfg(feature = "parsing")]
9-
use crate::meta::{self, ParseNestedMeta};
10-
#[cfg(feature = "parsing")]
11-
use crate::parse::{Parse, ParseStream, Parser, Result};
12-
1319
ast_struct! {
1420
/// An attribute, like `#[repr(transparent)]`.
1521
///
@@ -621,14 +627,19 @@ impl<'a> FilterAttrs<'a> for &'a [Attribute] {
621627

622628
#[cfg(feature = "parsing")]
623629
pub(crate) mod parsing {
624-
use super::*;
630+
use crate::attr::{AttrStyle, Attribute, Meta, MetaList, MetaNameValue};
631+
use crate::error::Result;
632+
use crate::expr::{Expr, ExprLit};
633+
use crate::lit::Lit;
625634
use crate::parse::discouraged::Speculative as _;
626-
use crate::parse::{Parse, ParseStream, Result};
635+
use crate::parse::{Parse, ParseStream};
636+
use crate::path::Path;
637+
use crate::{mac, token};
627638
use std::fmt::{self, Display};
628639

629640
pub(crate) fn parse_inner(input: ParseStream, attrs: &mut Vec<Attribute>) -> Result<()> {
630641
while input.peek(Token![#]) && input.peek2(Token![!]) {
631-
attrs.push(input.call(parsing::single_parse_inner)?);
642+
attrs.push(input.call(single_parse_inner)?);
632643
}
633644
Ok(())
634645
}
@@ -746,7 +757,7 @@ pub(crate) mod parsing {
746757

747758
#[cfg(feature = "printing")]
748759
mod printing {
749-
use super::*;
760+
use crate::attr::{AttrStyle, Attribute, MetaList, MetaNameValue};
750761
use proc_macro2::TokenStream;
751762
use quote::ToTokens;
752763

src/data.rs

+24-5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
1-
use super::*;
2-
use crate::punctuated::Punctuated;
1+
use crate::attr::Attribute;
2+
use crate::expr::Expr;
3+
use crate::ident::Ident;
4+
use crate::punctuated::{self, Punctuated};
5+
use crate::restriction::{FieldMutability, Visibility};
6+
use crate::token;
7+
use crate::ty::Type;
38

49
ast_struct! {
510
/// An enum variant.
@@ -155,11 +160,19 @@ ast_struct! {
155160

156161
#[cfg(feature = "parsing")]
157162
pub(crate) mod parsing {
158-
use super::*;
163+
use crate::attr::Attribute;
164+
use crate::data::{Field, Fields, FieldsNamed, FieldsUnnamed, Variant};
165+
use crate::error::Result;
166+
use crate::expr::Expr;
159167
use crate::ext::IdentExt as _;
168+
use crate::ident::Ident;
160169
#[cfg(not(feature = "full"))]
161170
use crate::parse::discouraged::Speculative as _;
162-
use crate::parse::{Parse, ParseStream, Result};
171+
use crate::parse::{Parse, ParseStream};
172+
use crate::restriction::{FieldMutability, Visibility};
173+
use crate::token;
174+
use crate::ty::Type;
175+
use crate::verbatim;
163176

164177
#[cfg_attr(doc_cfg, doc(cfg(feature = "parsing")))]
165178
impl Parse for Variant {
@@ -205,6 +218,12 @@ pub(crate) mod parsing {
205218

206219
#[cfg(not(feature = "full"))]
207220
pub(crate) fn scan_lenient_discriminant(input: ParseStream) -> Result<()> {
221+
use crate::expr::Member;
222+
use crate::lifetime::Lifetime;
223+
use crate::lit::Lit;
224+
use crate::lit::LitFloat;
225+
use crate::op::{BinOp, UnOp};
226+
use crate::path::{self, AngleBracketedGenericArguments};
208227
use proc_macro2::Delimiter::{self, Brace, Bracket, Parenthesis};
209228

210229
let consume = |delimiter: Delimiter| {
@@ -353,7 +372,7 @@ pub(crate) mod parsing {
353372

354373
#[cfg(feature = "printing")]
355374
mod printing {
356-
use super::*;
375+
use crate::data::{Field, FieldsNamed, FieldsUnnamed, Variant};
357376
use crate::print::TokensOrDefault;
358377
use proc_macro2::TokenStream;
359378
use quote::{ToTokens, TokenStreamExt};

src/derive.rs

+18-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
1-
use super::*;
1+
use crate::attr::Attribute;
2+
use crate::data::{Fields, FieldsNamed, Variant};
3+
use crate::generics::Generics;
4+
use crate::ident::Ident;
25
use crate::punctuated::Punctuated;
6+
use crate::restriction::Visibility;
7+
use crate::token;
38

49
ast_struct! {
510
/// Data structure sent to a `proc_macro_derive` macro.
@@ -60,8 +65,16 @@ ast_struct! {
6065

6166
#[cfg(feature = "parsing")]
6267
pub(crate) mod parsing {
63-
use super::*;
64-
use crate::parse::{Parse, ParseStream, Result};
68+
use crate::attr::Attribute;
69+
use crate::data::{Fields, FieldsNamed, Variant};
70+
use crate::derive::{Data, DataEnum, DataStruct, DataUnion, DeriveInput};
71+
use crate::error::Result;
72+
use crate::generics::{Generics, WhereClause};
73+
use crate::ident::Ident;
74+
use crate::parse::{Parse, ParseStream};
75+
use crate::punctuated::Punctuated;
76+
use crate::restriction::Visibility;
77+
use crate::token;
6578

6679
#[cfg_attr(doc_cfg, doc(cfg(feature = "parsing")))]
6780
impl Parse for DeriveInput {
@@ -193,8 +206,9 @@ pub(crate) mod parsing {
193206

194207
#[cfg(feature = "printing")]
195208
mod printing {
196-
use super::*;
197209
use crate::attr::FilterAttrs;
210+
use crate::data::Fields;
211+
use crate::derive::{Data, DeriveInput};
198212
use crate::print::TokensOrDefault;
199213
use proc_macro2::TokenStream;
200214
use quote::ToTokens;

src/discouraged.rs

+7-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
11
//! Extensions to the parsing API with niche applicability.
22
3-
use super::*;
3+
use crate::buffer::Cursor;
4+
use crate::error::Result;
5+
use crate::parse::{inner_unexpected, ParseBuffer, Unexpected};
46
use proc_macro2::extra::DelimSpan;
7+
use proc_macro2::Delimiter;
8+
use std::cell::Cell;
9+
use std::mem;
10+
use std::rc::Rc;
511

612
/// Extensions to the `ParseStream` API to support speculative parsing.
713
pub trait Speculative {

src/expr.rs

+76-8
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,29 @@
1-
use super::*;
1+
use crate::attr::Attribute;
2+
#[cfg(feature = "full")]
3+
use crate::generics::BoundLifetimes;
4+
use crate::ident::Ident;
5+
#[cfg(feature = "full")]
6+
use crate::lifetime::Lifetime;
7+
use crate::lit::Lit;
8+
use crate::mac::Macro;
9+
use crate::op::{BinOp, UnOp};
10+
#[cfg(feature = "full")]
11+
use crate::pat::Pat;
12+
use crate::path::{AngleBracketedGenericArguments, Path, QSelf};
213
use crate::punctuated::Punctuated;
14+
#[cfg(feature = "full")]
15+
use crate::stmt::Block;
16+
use crate::token;
17+
#[cfg(feature = "full")]
18+
use crate::ty::ReturnType;
19+
use crate::ty::Type;
320
use proc_macro2::{Span, TokenStream};
421
#[cfg(feature = "printing")]
522
use quote::IdentFragment;
623
#[cfg(feature = "printing")]
724
use std::fmt::{self, Display};
825
use std::hash::{Hash, Hasher};
9-
#[cfg(feature = "parsing")]
26+
#[cfg(all(feature = "parsing", feature = "full"))]
1027
use std::mem;
1128

1229
ast_enum_of_structs! {
@@ -1011,16 +1028,52 @@ mod precedence {
10111028

10121029
#[cfg(feature = "parsing")]
10131030
pub(crate) mod parsing {
1014-
use super::precedence::Precedence;
1015-
use super::*;
1031+
#[cfg(feature = "full")]
1032+
use crate::attr;
1033+
use crate::attr::Attribute;
1034+
use crate::error::{Error, Result};
1035+
use crate::expr::precedence::Precedence;
1036+
#[cfg(feature = "full")]
1037+
use crate::expr::{
1038+
requires_terminator, Arm, ExprArray, ExprAssign, ExprAsync, ExprAwait, ExprBlock,
1039+
ExprBreak, ExprClosure, ExprConst, ExprContinue, ExprForLoop, ExprIf, ExprInfer, ExprLet,
1040+
ExprLoop, ExprMatch, ExprRange, ExprRepeat, ExprReturn, ExprTry, ExprTryBlock, ExprTuple,
1041+
ExprUnsafe, ExprWhile, ExprYield, Label, RangeLimits,
1042+
};
1043+
use crate::expr::{
1044+
Expr, ExprBinary, ExprCall, ExprCast, ExprField, ExprGroup, ExprIndex, ExprLit, ExprMacro,
1045+
ExprMethodCall, ExprParen, ExprPath, ExprReference, ExprStruct, ExprUnary, FieldValue,
1046+
Index, Member,
1047+
};
10161048
#[cfg(feature = "full")]
10171049
use crate::ext::IdentExt as _;
1050+
#[cfg(feature = "full")]
1051+
use crate::generics::BoundLifetimes;
1052+
use crate::ident::Ident;
1053+
#[cfg(feature = "full")]
1054+
use crate::lifetime::Lifetime;
1055+
use crate::lit::{Lit, LitFloat, LitInt};
1056+
use crate::mac::{self, Macro};
1057+
use crate::op::BinOp;
10181058
use crate::parse::discouraged::Speculative as _;
10191059
#[cfg(feature = "full")]
10201060
use crate::parse::ParseBuffer;
1021-
use crate::parse::{Parse, ParseStream, Result};
1022-
use crate::path;
1061+
use crate::parse::{Parse, ParseStream};
1062+
#[cfg(feature = "full")]
1063+
use crate::pat::{Pat, PatType};
1064+
use crate::path::{self, AngleBracketedGenericArguments, Path, QSelf};
1065+
use crate::punctuated::Punctuated;
1066+
#[cfg(feature = "full")]
1067+
use crate::stmt::Block;
1068+
use crate::token;
1069+
use crate::ty;
1070+
#[cfg(feature = "full")]
1071+
use crate::ty::{ReturnType, Type};
1072+
use crate::verbatim;
1073+
#[cfg(feature = "full")]
1074+
use proc_macro2::TokenStream;
10231075
use std::cmp::Ordering;
1076+
use std::mem;
10241077

10251078
mod kw {
10261079
crate::custom_keyword!(builtin);
@@ -2948,10 +3001,25 @@ pub(crate) mod parsing {
29483001

29493002
#[cfg(feature = "printing")]
29503003
pub(crate) mod printing {
2951-
use super::*;
3004+
use crate::attr::Attribute;
29523005
#[cfg(feature = "full")]
29533006
use crate::attr::FilterAttrs;
2954-
use proc_macro2::{Literal, TokenStream};
3007+
#[cfg(feature = "full")]
3008+
use crate::expr::{
3009+
requires_terminator, Arm, Expr, ExprArray, ExprAssign, ExprAsync, ExprAwait, ExprBlock,
3010+
ExprBreak, ExprClosure, ExprConst, ExprContinue, ExprForLoop, ExprIf, ExprInfer, ExprLet,
3011+
ExprLoop, ExprMatch, ExprRange, ExprRepeat, ExprReturn, ExprTry, ExprTryBlock, ExprTuple,
3012+
ExprUnsafe, ExprWhile, ExprYield, Label, RangeLimits,
3013+
};
3014+
use crate::expr::{
3015+
ExprBinary, ExprCall, ExprCast, ExprField, ExprGroup, ExprIndex, ExprLit, ExprMacro,
3016+
ExprMethodCall, ExprParen, ExprPath, ExprReference, ExprStruct, ExprUnary, FieldValue,
3017+
Index, Member,
3018+
};
3019+
use crate::path;
3020+
#[cfg(feature = "full")]
3021+
use crate::token;
3022+
use proc_macro2::{Literal, Span, TokenStream};
29553023
use quote::{ToTokens, TokenStreamExt};
29563024

29573025
// If the given expression is a bare `ExprStruct`, wraps it in parenthesis

src/ext.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
//! Extension traits to provide parsing methods on foreign types.
22
33
use crate::buffer::Cursor;
4+
use crate::error::Result;
5+
use crate::parse::ParseStream;
46
use crate::parse::Peek;
5-
use crate::parse::{ParseStream, Result};
67
use crate::sealed::lookahead;
78
use crate::token::CustomToken;
89
use proc_macro2::Ident;

src/file.rs

+7-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
use super::*;
1+
use crate::attr::Attribute;
2+
use crate::item::Item;
23

34
ast_struct! {
45
/// A complete file of Rust source code.
@@ -87,8 +88,10 @@ ast_struct! {
8788

8889
#[cfg(feature = "parsing")]
8990
pub(crate) mod parsing {
90-
use super::*;
91-
use crate::parse::{Parse, ParseStream, Result};
91+
use crate::attr::Attribute;
92+
use crate::error::Result;
93+
use crate::file::File;
94+
use crate::parse::{Parse, ParseStream};
9295

9396
#[cfg_attr(doc_cfg, doc(cfg(feature = "parsing")))]
9497
impl Parse for File {
@@ -110,8 +113,8 @@ pub(crate) mod parsing {
110113

111114
#[cfg(feature = "printing")]
112115
mod printing {
113-
use super::*;
114116
use crate::attr::FilterAttrs;
117+
use crate::file::File;
115118
use proc_macro2::TokenStream;
116119
use quote::{ToTokens, TokenStreamExt};
117120

src/generics.rs

+27-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
1-
use super::*;
1+
use crate::attr::Attribute;
2+
use crate::expr::Expr;
3+
use crate::ident::Ident;
4+
use crate::lifetime::Lifetime;
5+
use crate::path::Path;
26
use crate::punctuated::{Iter, IterMut, Punctuated};
7+
use crate::token;
8+
use crate::ty::Type;
39
use proc_macro2::TokenStream;
410
#[cfg(all(feature = "printing", feature = "extra-traits"))]
511
use std::fmt::{self, Debug};
@@ -531,9 +537,22 @@ ast_struct! {
531537

532538
#[cfg(feature = "parsing")]
533539
pub(crate) mod parsing {
534-
use super::*;
540+
use crate::attr::Attribute;
541+
use crate::error::Result;
535542
use crate::ext::IdentExt as _;
536-
use crate::parse::{Parse, ParseStream, Result};
543+
use crate::generics::{
544+
BoundLifetimes, ConstParam, GenericParam, Generics, LifetimeParam, PredicateLifetime,
545+
PredicateType, TraitBound, TraitBoundModifier, TypeParam, TypeParamBound, WhereClause,
546+
WherePredicate,
547+
};
548+
use crate::ident::Ident;
549+
use crate::lifetime::Lifetime;
550+
use crate::parse::{Parse, ParseStream};
551+
use crate::path::{self, ParenthesizedGenericArguments, Path, PathArguments};
552+
use crate::punctuated::Punctuated;
553+
use crate::token;
554+
use crate::ty::Type;
555+
use crate::verbatim;
537556

538557
#[cfg_attr(doc_cfg, doc(cfg(feature = "parsing")))]
539558
impl Parse for Generics {
@@ -971,8 +990,12 @@ pub(crate) mod parsing {
971990

972991
#[cfg(feature = "printing")]
973992
mod printing {
974-
use super::*;
975993
use crate::attr::FilterAttrs;
994+
use crate::generics::{
995+
BoundLifetimes, ConstParam, GenericParam, Generics, ImplGenerics, LifetimeParam,
996+
PredicateLifetime, PredicateType, TraitBound, TraitBoundModifier, Turbofish, TypeGenerics,
997+
TypeParam, WhereClause,
998+
};
976999
use crate::print::TokensOrDefault;
9771000
use proc_macro2::TokenStream;
9781001
use quote::{ToTokens, TokenStreamExt};

src/ident.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,8 @@ pub(crate) fn xid_ok(symbol: &str) -> bool {
5151
#[cfg(feature = "parsing")]
5252
mod parsing {
5353
use crate::buffer::Cursor;
54-
use crate::parse::{Parse, ParseStream, Result};
54+
use crate::error::Result;
55+
use crate::parse::{Parse, ParseStream};
5556
use crate::token::Token;
5657
use proc_macro2::Ident;
5758

0 commit comments

Comments
 (0)