diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/loading/fs.rs | 6 | ||||
| -rw-r--r-- | src/parse/mod.rs | 20 |
2 files changed, 14 insertions, 12 deletions
diff --git a/src/loading/fs.rs b/src/loading/fs.rs index e2654a2e..a37d9630 100644 --- a/src/loading/fs.rs +++ b/src/loading/fs.rs @@ -194,9 +194,9 @@ fn load(cache: &mut FileCache, path: &Path) -> Option<Buffer> { /// Create a hash that is the same for all paths pointing to the same file. fn hash(path: &Path) -> Option<FileHash> { - Handle::from_path(path) - .map(|handle| FileHash(fxhash::hash64(&handle))) - .ok() + let file = File::open(path).ok()?; + let handle = Handle::from_file(file).ok()?; + Some(FileHash(fxhash::hash64(&handle))) } #[cfg(test)] diff --git a/src/parse/mod.rs b/src/parse/mod.rs index 9104b924..5bda818f 100644 --- a/src/parse/mod.rs +++ b/src/parse/mod.rs @@ -563,8 +563,8 @@ fn expr_import(p: &mut Parser) -> Option<Expr> { let mut expr_import = None; if let Some(path) = expr(p) { - if p.expect(Token::Using) { - let imports = if p.eat_if(Token::Star) { + let imports = if p.expect(Token::Using) { + if p.eat_if(Token::Star) { // This is the wildcard scenario. Imports::Wildcard } else { @@ -578,14 +578,16 @@ fn expr_import(p: &mut Parser) -> Option<Expr> { let idents = idents(p, items); p.end_group(); Imports::Idents(idents) - }; + } + } else { + Imports::Idents(vec![]) + }; - expr_import = Some(Expr::Import(ImportExpr { - span: p.span(start), - imports, - path: Box::new(path), - })); - } + expr_import = Some(Expr::Import(ImportExpr { + span: p.span(start), + imports, + path: Box::new(path), + })); } expr_import |
