@@ -98,24 +98,23 @@ impl ProjectJson {
98
98
/// * `data` - The parsed contents of `rust-project.json`, or project json that's passed via
99
99
/// configuration.
100
100
pub fn new ( base : & AbsPath , data : ProjectJsonData ) -> ProjectJson {
101
- let absolutize =
102
- |p| AbsPathBuf :: try_from ( p) . unwrap_or_else ( |path| base. join ( & path) ) . normalize ( ) ;
101
+ let absolutize_on_base = |p| base. absolutize ( p) ;
103
102
ProjectJson {
104
- sysroot : data. sysroot . map ( absolutize ) ,
105
- sysroot_src : data. sysroot_src . map ( absolutize ) ,
103
+ sysroot : data. sysroot . map ( absolutize_on_base ) ,
104
+ sysroot_src : data. sysroot_src . map ( absolutize_on_base ) ,
106
105
project_root : base. to_path_buf ( ) ,
107
106
crates : data
108
107
. crates
109
108
. into_iter ( )
110
109
. map ( |crate_data| {
111
- let root_module = absolutize ( crate_data. root_module ) ;
110
+ let root_module = absolutize_on_base ( crate_data. root_module ) ;
112
111
let is_workspace_member = crate_data
113
112
. is_workspace_member
114
113
. unwrap_or_else ( || root_module. starts_with ( base) ) ;
115
114
let ( include, exclude) = match crate_data. source {
116
115
Some ( src) => {
117
116
let absolutize = |dirs : Vec < PathBuf > | {
118
- dirs. into_iter ( ) . map ( absolutize ) . collect :: < Vec < _ > > ( )
117
+ dirs. into_iter ( ) . map ( absolutize_on_base ) . collect :: < Vec < _ > > ( )
119
118
} ;
120
119
( absolutize ( src. include_dirs ) , absolutize ( src. exclude_dirs ) )
121
120
}
@@ -142,7 +141,9 @@ impl ProjectJson {
142
141
cfg : crate_data. cfg ,
143
142
target : crate_data. target ,
144
143
env : crate_data. env ,
145
- proc_macro_dylib_path : crate_data. proc_macro_dylib_path . map ( absolutize) ,
144
+ proc_macro_dylib_path : crate_data
145
+ . proc_macro_dylib_path
146
+ . map ( absolutize_on_base) ,
146
147
is_workspace_member,
147
148
include,
148
149
exclude,
0 commit comments