use crate::quote;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
-pub enum BuiltinExpander {
+pub enum BuiltinFnLikeExpander {
Column,
File,
Line,
struct BuiltInMacroInfo {
name: name::Name,
- kind: BuiltinExpander,
+ kind: BuiltinFnLikeExpander,
expand: fn(
db: &dyn AstDatabase,
id: MacroCallId,
macro_rules! register_builtin {
( $(($name:ident, $kind: ident) => $expand:ident),* ) => {
const BUILTIN_MACROS: &[BuiltInMacroInfo] = &[
- $(BuiltInMacroInfo { name: name::$name, kind: BuiltinExpander::$kind, expand: $expand }),*
+ $(BuiltInMacroInfo { name: name::$name, kind: BuiltinFnLikeExpander::$kind, expand: $expand }),*
];
};
}
(STRINGIFY_MACRO, Stringify) => stringify_expand
}
-impl BuiltinExpander {
+impl BuiltinFnLikeExpander {
pub fn expand(
&self,
db: &dyn AstDatabase,
use crate::{test_db::TestDB, MacroCallLoc};
use ra_db::{fixture::WithFixture, SourceDatabase};
- fn expand_builtin_macro(s: &str, expander: BuiltinExpander) -> String {
+ fn expand_builtin_macro(s: &str, expander: BuiltinFnLikeExpander) -> String {
let (db, file_id) = TestDB::with_single_file(&s);
let parsed = db.parse(file_id);
let macro_calls: Vec<_> =
macro_rules! column {() => {}}
column!()
"#,
- BuiltinExpander::Column,
+ BuiltinFnLikeExpander::Column,
);
assert_eq!(expanded, "9");
macro_rules! line {() => {}}
line!()
"#,
- BuiltinExpander::Line,
+ BuiltinFnLikeExpander::Line,
);
assert_eq!(expanded, "4");
macro_rules! stringify {() => {}}
stringify!(a b c)
"#,
- BuiltinExpander::Stringify,
+ BuiltinFnLikeExpander::Stringify,
);
assert_eq!(expanded, "\"a b c\"");
macro_rules! file {() => {}}
file!()
"#,
- BuiltinExpander::File,
+ BuiltinFnLikeExpander::File,
);
assert_eq!(expanded, "\"\"");
use ra_syntax::{AstNode, Parse, SyntaxNode};
use crate::{
- ast_id_map::AstIdMap, BuiltinExpander, HirFileId, HirFileIdRepr, MacroCallId, MacroCallLoc,
- MacroDefId, MacroDefKind, MacroFile, MacroFileKind,
+ ast_id_map::AstIdMap, BuiltinFnLikeExpander, HirFileId, HirFileIdRepr, MacroCallId,
+ MacroCallLoc, MacroDefId, MacroDefKind, MacroFile, MacroFileKind,
};
#[derive(Debug, Clone, Eq, PartialEq)]
pub enum TokenExpander {
MacroRules(mbe::MacroRules),
- Builtin(BuiltinExpander),
+ Builtin(BuiltinFnLikeExpander),
}
impl TokenExpander {
};
use crate::ast_id_map::FileAstId;
-use crate::builtin_macro::BuiltinExpander;
+use crate::builtin_macro::BuiltinFnLikeExpander;
#[cfg(test)]
mod test_db;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum MacroDefKind {
Declarative,
- BuiltIn(BuiltinExpander),
+ BuiltIn(BuiltinFnLikeExpander),
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]