From 4a199026d1ad7cc5d0e759107c36ac286baff1f8 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Thu, 19 Sep 2024 12:35:46 +0200 Subject: [PATCH] try to fix windows failure --- rust/extractor/src/main.rs | 17 +++++++---------- rust/extractor/src/translate.rs | 4 ++-- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/rust/extractor/src/main.rs b/rust/extractor/src/main.rs index e13ac378cf499..1604214566267 100644 --- a/rust/extractor/src/main.rs +++ b/rust/extractor/src/main.rs @@ -1,7 +1,5 @@ use anyhow::Context; use ra_ap_ide_db::line_index::LineIndex; -use std::path::PathBuf; - mod archive; mod config; pub mod generated; @@ -20,16 +18,15 @@ fn main() -> anyhow::Result<()> { root: cfg.source_archive_dir, }; for file in cfg.inputs { - let mut trap = traps.create("source", &PathBuf::from(format!("/{}", &file.display()))); - let canonical = std::path::absolute(&file).unwrap_or(file); - - let canonical = std::fs::canonicalize(&canonical).unwrap_or(canonical); - archiver.archive(&canonical); - let label = trap.emit_file(&canonical); - let input = std::fs::read(&canonical)?; + let file = std::path::absolute(&file).unwrap_or(file); + let file = std::fs::canonicalize(&file).unwrap_or(file); + archiver.archive(&file); + let input = std::fs::read(&file)?; let input = String::from_utf8(input)?; let line_index = LineIndex::new(&input); - let display_path = canonical.to_string_lossy(); + let display_path = file.to_string_lossy(); + let mut trap = traps.create("source", &file); + let label = trap.emit_file(&file); translate::SourceFileTranslator::new(trap, label, line_index) .extract(&display_path, &input) .context("writing trap file")?; diff --git a/rust/extractor/src/translate.rs b/rust/extractor/src/translate.rs index c4d8223142575..3e415db0e7ccf 100644 --- a/rust/extractor/src/translate.rs +++ b/rust/extractor/src/translate.rs @@ -72,7 +72,7 @@ impl SourceFileTranslator { line_index, } } - pub fn extract(&mut self, path: &str, input: &str) -> Option<()> { + pub fn extract(&mut self, path: &str, input: &str) -> Result<(), std::io::Error> { let parse = ra_ap_syntax::ast::SourceFile::parse(input, Edition::CURRENT); for err in parse.errors() { let start = self.line_index.line_col(err.range().start()); @@ -83,7 +83,7 @@ impl SourceFileTranslator { } else { log::warn!("Skipped {}", path); } - self.trap.commit().ok() + self.trap.commit() } fn emit_else_branch(&mut self, node: ast::ElseBranch) -> Label { match node {