minor: align code to code style
(mutually recursive) data type definitions shall be at the start of the file.
This commit is contained in:
parent
079e9fe496
commit
d28a6c36e1
1 changed files with 71 additions and 74 deletions
|
@ -62,19 +62,88 @@ enum HirFileIdRepr {
|
||||||
FileId(FileId),
|
FileId(FileId),
|
||||||
MacroFile(MacroFile),
|
MacroFile(MacroFile),
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<FileId> for HirFileId {
|
impl From<FileId> for HirFileId {
|
||||||
fn from(id: FileId) -> Self {
|
fn from(id: FileId) -> Self {
|
||||||
HirFileId(HirFileIdRepr::FileId(id))
|
HirFileId(HirFileIdRepr::FileId(id))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<MacroFile> for HirFileId {
|
impl From<MacroFile> for HirFileId {
|
||||||
fn from(id: MacroFile) -> Self {
|
fn from(id: MacroFile) -> Self {
|
||||||
HirFileId(HirFileIdRepr::MacroFile(id))
|
HirFileId(HirFileIdRepr::MacroFile(id))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
||||||
|
pub struct MacroFile {
|
||||||
|
pub macro_call_id: MacroCallId,
|
||||||
|
}
|
||||||
|
|
||||||
|
/// `MacroCallId` identifies a particular macro invocation, like
|
||||||
|
/// `println!("Hello, {}", world)`.
|
||||||
|
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
||||||
|
pub struct MacroCallId(salsa::InternId);
|
||||||
|
impl_intern_key!(MacroCallId);
|
||||||
|
|
||||||
|
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
|
||||||
|
pub struct MacroCallLoc {
|
||||||
|
pub def: MacroDefId,
|
||||||
|
pub(crate) krate: CrateId,
|
||||||
|
eager: Option<EagerCallInfo>,
|
||||||
|
pub kind: MacroCallKind,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
||||||
|
pub struct MacroDefId {
|
||||||
|
pub krate: CrateId,
|
||||||
|
pub kind: MacroDefKind,
|
||||||
|
pub local_inner: bool,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
||||||
|
pub enum MacroDefKind {
|
||||||
|
Declarative(AstId<ast::Macro>),
|
||||||
|
BuiltIn(BuiltinFnLikeExpander, AstId<ast::Macro>),
|
||||||
|
// FIXME: maybe just Builtin and rename BuiltinFnLikeExpander to BuiltinExpander
|
||||||
|
BuiltInAttr(BuiltinAttrExpander, AstId<ast::Macro>),
|
||||||
|
BuiltInDerive(BuiltinDeriveExpander, AstId<ast::Macro>),
|
||||||
|
BuiltInEager(EagerExpander, AstId<ast::Macro>),
|
||||||
|
ProcMacro(ProcMacroExpander, ProcMacroKind, AstId<ast::Fn>),
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
|
||||||
|
struct EagerCallInfo {
|
||||||
|
/// NOTE: This can be *either* the expansion result, *or* the argument to the eager macro!
|
||||||
|
arg_or_expansion: Arc<tt::Subtree>,
|
||||||
|
included_file: Option<FileId>,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
|
||||||
|
pub enum MacroCallKind {
|
||||||
|
FnLike {
|
||||||
|
ast_id: AstId<ast::MacroCall>,
|
||||||
|
expand_to: ExpandTo,
|
||||||
|
},
|
||||||
|
Derive {
|
||||||
|
ast_id: AstId<ast::Item>,
|
||||||
|
derive_name: String,
|
||||||
|
/// Syntactical index of the invoking `#[derive]` attribute.
|
||||||
|
///
|
||||||
|
/// Outer attributes are counted first, then inner attributes. This does not support
|
||||||
|
/// out-of-line modules, which may have attributes spread across 2 files!
|
||||||
|
derive_attr_index: u32,
|
||||||
|
},
|
||||||
|
Attr {
|
||||||
|
ast_id: AstId<ast::Item>,
|
||||||
|
attr_name: String,
|
||||||
|
attr_args: (tt::Subtree, mbe::TokenMap),
|
||||||
|
/// Syntactical index of the invoking `#[attribute]`.
|
||||||
|
///
|
||||||
|
/// Outer attributes are counted first, then inner attributes. This does not support
|
||||||
|
/// out-of-line modules, which may have attributes spread across 2 files!
|
||||||
|
invoc_attr_index: u32,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
impl HirFileId {
|
impl HirFileId {
|
||||||
/// For macro-expansion files, returns the file original source file the
|
/// For macro-expansion files, returns the file original source file the
|
||||||
/// expansion originated from.
|
/// expansion originated from.
|
||||||
|
@ -215,25 +284,6 @@ impl HirFileId {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
|
||||||
pub struct MacroFile {
|
|
||||||
pub macro_call_id: MacroCallId,
|
|
||||||
}
|
|
||||||
|
|
||||||
/// `MacroCallId` identifies a particular macro invocation, like
|
|
||||||
/// `println!("Hello, {}", world)`.
|
|
||||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
|
||||||
pub struct MacroCallId(salsa::InternId);
|
|
||||||
impl_intern_key!(MacroCallId);
|
|
||||||
|
|
||||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
|
||||||
pub struct MacroDefId {
|
|
||||||
pub krate: CrateId,
|
|
||||||
pub kind: MacroDefKind,
|
|
||||||
|
|
||||||
pub local_inner: bool,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl MacroDefId {
|
impl MacroDefId {
|
||||||
pub fn as_lazy_macro(
|
pub fn as_lazy_macro(
|
||||||
self,
|
self,
|
||||||
|
@ -261,59 +311,6 @@ impl MacroDefId {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
|
||||||
pub enum MacroDefKind {
|
|
||||||
Declarative(AstId<ast::Macro>),
|
|
||||||
BuiltIn(BuiltinFnLikeExpander, AstId<ast::Macro>),
|
|
||||||
// FIXME: maybe just Builtin and rename BuiltinFnLikeExpander to BuiltinExpander
|
|
||||||
BuiltInAttr(BuiltinAttrExpander, AstId<ast::Macro>),
|
|
||||||
BuiltInDerive(BuiltinDeriveExpander, AstId<ast::Macro>),
|
|
||||||
BuiltInEager(EagerExpander, AstId<ast::Macro>),
|
|
||||||
ProcMacro(ProcMacroExpander, ProcMacroKind, AstId<ast::Fn>),
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
|
|
||||||
struct EagerCallInfo {
|
|
||||||
/// NOTE: This can be *either* the expansion result, *or* the argument to the eager macro!
|
|
||||||
arg_or_expansion: Arc<tt::Subtree>,
|
|
||||||
included_file: Option<FileId>,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
|
|
||||||
pub struct MacroCallLoc {
|
|
||||||
pub def: MacroDefId,
|
|
||||||
pub(crate) krate: CrateId,
|
|
||||||
eager: Option<EagerCallInfo>,
|
|
||||||
pub kind: MacroCallKind,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
|
|
||||||
pub enum MacroCallKind {
|
|
||||||
FnLike {
|
|
||||||
ast_id: AstId<ast::MacroCall>,
|
|
||||||
expand_to: ExpandTo,
|
|
||||||
},
|
|
||||||
Derive {
|
|
||||||
ast_id: AstId<ast::Item>,
|
|
||||||
derive_name: String,
|
|
||||||
/// Syntactical index of the invoking `#[derive]` attribute.
|
|
||||||
///
|
|
||||||
/// Outer attributes are counted first, then inner attributes. This does not support
|
|
||||||
/// out-of-line modules, which may have attributes spread across 2 files!
|
|
||||||
derive_attr_index: u32,
|
|
||||||
},
|
|
||||||
Attr {
|
|
||||||
ast_id: AstId<ast::Item>,
|
|
||||||
attr_name: String,
|
|
||||||
attr_args: (tt::Subtree, mbe::TokenMap),
|
|
||||||
/// Syntactical index of the invoking `#[attribute]`.
|
|
||||||
///
|
|
||||||
/// Outer attributes are counted first, then inner attributes. This does not support
|
|
||||||
/// out-of-line modules, which may have attributes spread across 2 files!
|
|
||||||
invoc_attr_index: u32,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
// FIXME: attribute indices do not account for `cfg_attr`, which means that we'll strip the whole
|
// FIXME: attribute indices do not account for `cfg_attr`, which means that we'll strip the whole
|
||||||
// `cfg_attr` instead of just one of the attributes it expands to
|
// `cfg_attr` instead of just one of the attributes it expands to
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue