diff --git a/lalrpop/src/build/mod.rs b/lalrpop/src/build/mod.rs index 4f8735c..6e11d2d 100644 --- a/lalrpop/src/build/mod.rs +++ b/lalrpop/src/build/mod.rs @@ -101,10 +101,14 @@ fn needs_rebuild(lalrpop_file: &Path, } fn make_read_only(rs_file: &Path, ro: bool) -> io::Result<()> { - let rs_metadata = try!(fs::metadata(&rs_file)); - let mut rs_permissions = rs_metadata.permissions(); - rs_permissions.set_readonly(ro); - fs::set_permissions(&rs_file, rs_permissions) + if (rs_file.is_file()) { + let rs_metadata = try!(fs::metadata(&rs_file)); + let mut rs_permissions = rs_metadata.permissions(); + rs_permissions.set_readonly(ro); + fs::set_permissions(&rs_file, rs_permissions) + } else { + Ok(()) + } } fn lalrpop_files>(root_dir: P) -> io::Result> {