@@ -303,9 +303,11 @@ pub struct CrateData<Id> {
303
303
pub dependencies : Vec < Dependency < Id > > ,
304
304
pub origin : CrateOrigin ,
305
305
pub is_proc_macro : bool ,
306
- /// The working directory to run proc-macros in. This is the workspace root of the cargo workspace
307
- /// for workspace members, the crate manifest dir otherwise.
308
- pub proc_macro_cwd : Option < AbsPathBuf > ,
306
+ /// The working directory to run proc-macros in invoked in the context of this crate.
307
+ /// This is the workspace root of the cargo workspace for workspace members, the crate manifest
308
+ /// dir otherwise.
309
+ // FIXME: This ought to be a `VfsPath` or something opaque.
310
+ pub proc_macro_cwd : Arc < AbsPathBuf > ,
309
311
}
310
312
311
313
pub type CrateDataBuilder = CrateData < CrateBuilderId > ;
@@ -425,7 +427,7 @@ impl CrateGraphBuilder {
425
427
mut env : Env ,
426
428
origin : CrateOrigin ,
427
429
is_proc_macro : bool ,
428
- proc_macro_cwd : Option < AbsPathBuf > ,
430
+ proc_macro_cwd : Arc < AbsPathBuf > ,
429
431
ws_data : Arc < CrateWorkspaceData > ,
430
432
) -> CrateBuilderId {
431
433
env. entries . shrink_to_fit ( ) ;
@@ -861,6 +863,7 @@ impl fmt::Display for CyclicDependenciesError {
861
863
#[ cfg( test) ]
862
864
mod tests {
863
865
use triomphe:: Arc ;
866
+ use vfs:: AbsPathBuf ;
864
867
865
868
use crate :: { CrateWorkspaceData , DependencyBuilder } ;
866
869
@@ -883,7 +886,7 @@ mod tests {
883
886
Env :: default ( ) ,
884
887
CrateOrigin :: Local { repo : None , name : None } ,
885
888
false ,
886
- None ,
889
+ Arc :: new ( AbsPathBuf :: assert_utf8 ( std :: env :: current_dir ( ) . unwrap ( ) ) ) ,
887
890
empty_ws_data ( ) ,
888
891
) ;
889
892
let crate2 = graph. add_crate_root (
@@ -896,7 +899,7 @@ mod tests {
896
899
Env :: default ( ) ,
897
900
CrateOrigin :: Local { repo : None , name : None } ,
898
901
false ,
899
- None ,
902
+ Arc :: new ( AbsPathBuf :: assert_utf8 ( std :: env :: current_dir ( ) . unwrap ( ) ) ) ,
900
903
empty_ws_data ( ) ,
901
904
) ;
902
905
let crate3 = graph. add_crate_root (
@@ -909,7 +912,7 @@ mod tests {
909
912
Env :: default ( ) ,
910
913
CrateOrigin :: Local { repo : None , name : None } ,
911
914
false ,
912
- None ,
915
+ Arc :: new ( AbsPathBuf :: assert_utf8 ( std :: env :: current_dir ( ) . unwrap ( ) ) ) ,
913
916
empty_ws_data ( ) ,
914
917
) ;
915
918
assert ! (
@@ -942,7 +945,7 @@ mod tests {
942
945
Env :: default ( ) ,
943
946
CrateOrigin :: Local { repo : None , name : None } ,
944
947
false ,
945
- None ,
948
+ Arc :: new ( AbsPathBuf :: assert_utf8 ( std :: env :: current_dir ( ) . unwrap ( ) ) ) ,
946
949
empty_ws_data ( ) ,
947
950
) ;
948
951
let crate2 = graph. add_crate_root (
@@ -955,7 +958,7 @@ mod tests {
955
958
Env :: default ( ) ,
956
959
CrateOrigin :: Local { repo : None , name : None } ,
957
960
false ,
958
- None ,
961
+ Arc :: new ( AbsPathBuf :: assert_utf8 ( std :: env :: current_dir ( ) . unwrap ( ) ) ) ,
959
962
empty_ws_data ( ) ,
960
963
) ;
961
964
assert ! (
@@ -983,7 +986,7 @@ mod tests {
983
986
Env :: default ( ) ,
984
987
CrateOrigin :: Local { repo : None , name : None } ,
985
988
false ,
986
- None ,
989
+ Arc :: new ( AbsPathBuf :: assert_utf8 ( std :: env :: current_dir ( ) . unwrap ( ) ) ) ,
987
990
empty_ws_data ( ) ,
988
991
) ;
989
992
let crate2 = graph. add_crate_root (
@@ -996,7 +999,7 @@ mod tests {
996
999
Env :: default ( ) ,
997
1000
CrateOrigin :: Local { repo : None , name : None } ,
998
1001
false ,
999
- None ,
1002
+ Arc :: new ( AbsPathBuf :: assert_utf8 ( std :: env :: current_dir ( ) . unwrap ( ) ) ) ,
1000
1003
empty_ws_data ( ) ,
1001
1004
) ;
1002
1005
let crate3 = graph. add_crate_root (
@@ -1009,7 +1012,7 @@ mod tests {
1009
1012
Env :: default ( ) ,
1010
1013
CrateOrigin :: Local { repo : None , name : None } ,
1011
1014
false ,
1012
- None ,
1015
+ Arc :: new ( AbsPathBuf :: assert_utf8 ( std :: env :: current_dir ( ) . unwrap ( ) ) ) ,
1013
1016
empty_ws_data ( ) ,
1014
1017
) ;
1015
1018
assert ! (
@@ -1037,7 +1040,7 @@ mod tests {
1037
1040
Env :: default ( ) ,
1038
1041
CrateOrigin :: Local { repo : None , name : None } ,
1039
1042
false ,
1040
- None ,
1043
+ Arc :: new ( AbsPathBuf :: assert_utf8 ( std :: env :: current_dir ( ) . unwrap ( ) ) ) ,
1041
1044
empty_ws_data ( ) ,
1042
1045
) ;
1043
1046
let crate2 = graph. add_crate_root (
@@ -1050,7 +1053,7 @@ mod tests {
1050
1053
Env :: default ( ) ,
1051
1054
CrateOrigin :: Local { repo : None , name : None } ,
1052
1055
false ,
1053
- None ,
1056
+ Arc :: new ( AbsPathBuf :: assert_utf8 ( std :: env :: current_dir ( ) . unwrap ( ) ) ) ,
1054
1057
empty_ws_data ( ) ,
1055
1058
) ;
1056
1059
assert ! (
0 commit comments