aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_proc_macro_srv/src/dylib.rs
diff options
context:
space:
mode:
authorVeetaha <[email protected]>2020-04-20 19:54:43 +0100
committerveetaha <[email protected]>2020-04-20 20:06:41 +0100
commit0f5b1fef5ea0a34e2760383182e9683cdbd7d49e (patch)
tree5479fd716faeec16cf9f3cc9239163b9dfa2c12e /crates/ra_proc_macro_srv/src/dylib.rs
parent982af2286a57667263f6cf0abb80b5e20b198047 (diff)
Display path not debug it
Co-Authored-By: LaurenČ›iu Nicola <[email protected]>
Diffstat (limited to 'crates/ra_proc_macro_srv/src/dylib.rs')
-rw-r--r--crates/ra_proc_macro_srv/src/dylib.rs14
1 files changed, 7 insertions, 7 deletions
diff --git a/crates/ra_proc_macro_srv/src/dylib.rs b/crates/ra_proc_macro_srv/src/dylib.rs
index f7a86a532..d202eb0fd 100644
--- a/crates/ra_proc_macro_srv/src/dylib.rs
+++ b/crates/ra_proc_macro_srv/src/dylib.rs
@@ -17,7 +17,7 @@ fn invalid_data_err(e: impl Into<Box<dyn std::error::Error + Send + Sync>>) -> i
17 io::Error::new(io::ErrorKind::InvalidData, e) 17 io::Error::new(io::ErrorKind::InvalidData, e)
18} 18}
19 19
20fn is_derive_registrar_symbol(symbol: &&str) -> bool { 20fn is_derive_registrar_symbol(symbol: &str) -> bool {
21 symbol.contains(NEW_REGISTRAR_SYMBOL) 21 symbol.contains(NEW_REGISTRAR_SYMBOL)
22} 22}
23 23
@@ -29,13 +29,13 @@ fn find_registrar_symbol(file: &Path) -> io::Result<Option<String>> {
29 let name = match object { 29 let name = match object {
30 Object::Elf(elf) => { 30 Object::Elf(elf) => {
31 let symbols = elf.dynstrtab.to_vec().map_err(invalid_data_err)?; 31 let symbols = elf.dynstrtab.to_vec().map_err(invalid_data_err)?;
32 symbols.into_iter().find(is_derive_registrar_symbol).map(&str::to_owned) 32 symbols.into_iter().find(|s| is_derive_registrar_symbol(s)).map(&str::to_owned)
33 } 33 }
34 Object::PE(pe) => pe 34 Object::PE(pe) => pe
35 .exports 35 .exports
36 .iter() 36 .iter()
37 .flat_map(|s| s.name) 37 .flat_map(|s| s.name)
38 .find(is_derive_registrar_symbol) 38 .find(|s| is_derive_registrar_symbol(s))
39 .map(&str::to_owned), 39 .map(&str::to_owned),
40 Object::Mach(Mach::Binary(binary)) => { 40 Object::Mach(Mach::Binary(binary)) => {
41 let exports = binary.exports().map_err(invalid_data_err)?; 41 let exports = binary.exports().map_err(invalid_data_err)?;
@@ -52,12 +52,12 @@ fn find_registrar_symbol(file: &Path) -> io::Result<Option<String>> {
52 &s.name 52 &s.name
53 } 53 }
54 }) 54 })
55 .find(is_derive_registrar_symbol) 55 .find(|s| is_derive_registrar_symbol(s))
56 .map(&str::to_owned) 56 .map(&str::to_owned)
57 } 57 }
58 _ => return Ok(None), 58 _ => return Ok(None),
59 }; 59 };
60 Ok(name) 60 return Ok(name);
61} 61}
62 62
63/// Loads dynamic library in platform dependent manner. 63/// Loads dynamic library in platform dependent manner.
@@ -95,7 +95,7 @@ struct ProcMacroLibraryLibloading {
95impl ProcMacroLibraryLibloading { 95impl ProcMacroLibraryLibloading {
96 fn open(file: &Path) -> io::Result<Self> { 96 fn open(file: &Path) -> io::Result<Self> {
97 let symbol_name = find_registrar_symbol(file)?.ok_or_else(|| { 97 let symbol_name = find_registrar_symbol(file)?.ok_or_else(|| {
98 invalid_data_err(format!("Cannot find registrar symbol in file {:?}", file)) 98 invalid_data_err(format!("Cannot find registrar symbol in file {}", file.display()))
99 })?; 99 })?;
100 100
101 let lib = load_library(file).map_err(invalid_data_err)?; 101 let lib = load_library(file).map_err(invalid_data_err)?;
@@ -121,7 +121,7 @@ impl Expander {
121 // already absolute 121 // already absolute
122 let lib = lib 122 let lib = lib
123 .canonicalize() 123 .canonicalize()
124 .unwrap_or_else(|err| panic!("Cannot canonicalize {:?}: {:?}", lib, err)); 124 .unwrap_or_else(|err| panic!("Cannot canonicalize {}: {:?}", lib.display(), err));
125 125
126 let library = ProcMacroLibraryImpl::open(&lib).map_err(|e| e.to_string())?; 126 let library = ProcMacroLibraryImpl::open(&lib).map_err(|e| e.to_string())?;
127 127