Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/proc-macro-srv/src/proc_macros.rs')
-rw-r--r--crates/proc-macro-srv/src/proc_macros.rs33
1 files changed, 11 insertions, 22 deletions
diff --git a/crates/proc-macro-srv/src/proc_macros.rs b/crates/proc-macro-srv/src/proc_macros.rs
index 631fd84aa2..d48c5b30de 100644
--- a/crates/proc-macro-srv/src/proc_macros.rs
+++ b/crates/proc-macro-srv/src/proc_macros.rs
@@ -1,8 +1,9 @@
//! Proc macro ABI
-use libloading::Library;
use proc_macro::bridge;
-use proc_macro_api::{ProcMacroKind, RustCInfo};
+use proc_macro_api::ProcMacroKind;
+
+use libloading::Library;
use crate::{dylib::LoadProcMacroDylibError, ProcMacroSrvSpan};
@@ -29,15 +30,15 @@ impl ProcMacros {
pub(crate) fn from_lib(
lib: &Library,
symbol_name: String,
- info: RustCInfo,
+ version_string: &str,
) -> Result<ProcMacros, LoadProcMacroDylibError> {
- if info.version_string == crate::RUSTC_VERSION_STRING {
+ if version_string == crate::RUSTC_VERSION_STRING {
let macros =
unsafe { lib.get::<&&[bridge::client::ProcMacro]>(symbol_name.as_bytes()) }?;
return Ok(Self { exported_macros: macros.to_vec() });
}
- Err(LoadProcMacroDylibError::AbiMismatch(info.version_string))
+ Err(LoadProcMacroDylibError::AbiMismatch(version_string.to_owned()))
}
pub(crate) fn expand<S: ProcMacroSrvSpan>(
@@ -49,11 +50,12 @@ impl ProcMacros {
call_site: S,
mixed_site: S,
) -> Result<tt::Subtree<S>, crate::PanicMessage> {
- let parsed_body = crate::server::TokenStream::with_subtree(macro_body);
+ let parsed_body = crate::server_impl::TokenStream::with_subtree(macro_body);
- let parsed_attributes = attributes.map_or_else(crate::server::TokenStream::new, |attr| {
- crate::server::TokenStream::with_subtree(attr)
- });
+ let parsed_attributes = attributes
+ .map_or_else(crate::server_impl::TokenStream::new, |attr| {
+ crate::server_impl::TokenStream::with_subtree(attr)
+ });
for proc_macro in &self.exported_macros {
match proc_macro {
@@ -117,16 +119,3 @@ impl ProcMacros {
.collect()
}
}
-
-#[test]
-fn test_version_check() {
- let path = paths::AbsPathBuf::assert(crate::proc_macro_test_dylib_path());
- let info = proc_macro_api::read_dylib_info(&path).unwrap();
- assert_eq!(
- info.version_string,
- crate::RUSTC_VERSION_STRING,
- "sysroot ABI mismatch: dylib rustc version (read from .rustc section): {:?} != proc-macro-srv version (read from 'rustc --version'): {:?}",
- info.version_string,
- crate::RUSTC_VERSION_STRING,
- );
-}