Add proc macro ABI for rustc 1.58

This commit is contained in:
Alex Good
2021-11-15 13:47:33 +00:00
parent 73668334f0
commit abdb2acbe5
14 changed files with 4185 additions and 1 deletions

View File

@@ -27,11 +27,13 @@
pub(crate) mod abi_1_47;
mod abi_1_55;
mod abi_1_56;
mod abi_1_58;
use super::dylib::LoadProcMacroDylibError;
pub(crate) use abi_1_47::Abi as Abi_1_47;
pub(crate) use abi_1_55::Abi as Abi_1_55;
pub(crate) use abi_1_56::Abi as Abi_1_56;
pub(crate) use abi_1_58::Abi as Abi_1_58;
use libloading::Library;
use proc_macro_api::{ProcMacroKind, RustCInfo};
@@ -49,6 +51,7 @@ pub(crate) enum Abi {
Abi1_47(Abi_1_47),
Abi1_55(Abi_1_55),
Abi1_56(Abi_1_56),
Abi1_58(Abi_1_58),
}
impl Abi {
@@ -76,9 +79,12 @@ impl Abi {
} else if info.version.1 < 56 {
let inner = unsafe { Abi_1_55::from_lib(lib, symbol_name) }?;
Ok(Abi::Abi1_55(inner))
} else {
} else if info.version.1 < 57 {
let inner = unsafe { Abi_1_56::from_lib(lib, symbol_name) }?;
Ok(Abi::Abi1_56(inner))
} else {
let inner = unsafe { Abi_1_58::from_lib(lib, symbol_name) }?;
Ok(Abi::Abi1_58(inner))
}
}
@@ -92,6 +98,7 @@ impl Abi {
Self::Abi1_55(abi) => abi.expand(macro_name, macro_body, attributes),
Self::Abi1_47(abi) => abi.expand(macro_name, macro_body, attributes),
Self::Abi1_56(abi) => abi.expand(macro_name, macro_body, attributes),
Self::Abi1_58(abi) => abi.expand(macro_name, macro_body, attributes),
}
}
@@ -100,6 +107,7 @@ impl Abi {
Self::Abi1_47(abi) => abi.list_macros(),
Self::Abi1_55(abi) => abi.list_macros(),
Self::Abi1_56(abi) => abi.list_macros(),
Self::Abi1_58(abi) => abi.list_macros(),
}
}
}