@@ -78,6 +78,7 @@ pub enum ProjectWorkspaceKind {
78
78
rustc : Result < Box < ( CargoWorkspace , WorkspaceBuildScripts ) > , Option < String > > ,
79
79
/// Environment variables set in the `.cargo/config` file.
80
80
cargo_config_extra_env : FxHashMap < String , String > ,
81
+ set_test : bool ,
81
82
} ,
82
83
/// Project workspace was specified using a `rust-project.json` file.
83
84
Json ( ProjectJson ) ,
@@ -98,6 +99,7 @@ pub enum ProjectWorkspaceKind {
98
99
cargo : Option < ( CargoWorkspace , WorkspaceBuildScripts , Option < Arc < anyhow:: Error > > ) > ,
99
100
/// Environment variables set in the `.cargo/config` file.
100
101
cargo_config_extra_env : FxHashMap < String , String > ,
102
+ set_test : bool ,
101
103
} ,
102
104
}
103
105
@@ -112,6 +114,7 @@ impl fmt::Debug for ProjectWorkspace {
112
114
build_scripts,
113
115
rustc,
114
116
cargo_config_extra_env,
117
+ set_test,
115
118
} => f
116
119
. debug_struct ( "Cargo" )
117
120
. field ( "root" , & cargo. workspace_root ( ) . file_name ( ) )
@@ -126,6 +129,7 @@ impl fmt::Debug for ProjectWorkspace {
126
129
. field ( "toolchain" , & toolchain)
127
130
. field ( "data_layout" , & target_layout)
128
131
. field ( "cargo_config_extra_env" , & cargo_config_extra_env)
132
+ . field ( "set_test" , set_test)
129
133
. field ( "build_scripts" , & build_scripts. error ( ) . unwrap_or ( "ok" ) )
130
134
. finish ( ) ,
131
135
ProjectWorkspaceKind :: Json ( project) => {
@@ -137,12 +141,14 @@ impl fmt::Debug for ProjectWorkspace {
137
141
. field ( "toolchain" , & toolchain)
138
142
. field ( "data_layout" , & target_layout)
139
143
. field ( "n_cfg_overrides" , & cfg_overrides. len ( ) ) ;
144
+
140
145
debug_struct. finish ( )
141
146
}
142
147
ProjectWorkspaceKind :: DetachedFile {
143
148
file,
144
149
cargo : cargo_script,
145
150
cargo_config_extra_env,
151
+ set_test,
146
152
} => f
147
153
. debug_struct ( "DetachedFiles" )
148
154
. field ( "file" , & file)
@@ -154,6 +160,7 @@ impl fmt::Debug for ProjectWorkspace {
154
160
. field ( "data_layout" , & target_layout)
155
161
. field ( "n_cfg_overrides" , & cfg_overrides. len ( ) )
156
162
. field ( "cargo_config_extra_env" , & cargo_config_extra_env)
163
+ . field ( "set_test" , set_test)
157
164
. finish ( ) ,
158
165
}
159
166
}
@@ -329,6 +336,7 @@ impl ProjectWorkspace {
329
336
rustc,
330
337
cargo_config_extra_env,
331
338
error : error. map ( Arc :: new) ,
339
+ set_test : config. set_test ,
332
340
} ,
333
341
sysroot,
334
342
rustc_cfg,
@@ -423,6 +431,7 @@ impl ProjectWorkspace {
423
431
file : detached_file. to_owned ( ) ,
424
432
cargo : cargo_script,
425
433
cargo_config_extra_env,
434
+ set_test : config. set_test ,
426
435
} ,
427
436
sysroot,
428
437
rustc_cfg,
@@ -609,6 +618,7 @@ impl ProjectWorkspace {
609
618
build_scripts,
610
619
cargo_config_extra_env : _,
611
620
error : _,
621
+ set_test : _,
612
622
} => {
613
623
cargo
614
624
. packages ( )
@@ -750,6 +760,7 @@ impl ProjectWorkspace {
750
760
build_scripts,
751
761
cargo_config_extra_env : _,
752
762
error : _,
763
+ set_test,
753
764
} => (
754
765
cargo_to_crate_graph (
755
766
load,
@@ -759,10 +770,11 @@ impl ProjectWorkspace {
759
770
rustc_cfg. clone ( ) ,
760
771
cfg_overrides,
761
772
build_scripts,
773
+ * set_test,
762
774
) ,
763
775
sysroot,
764
776
) ,
765
- ProjectWorkspaceKind :: DetachedFile { file, cargo : cargo_script, .. } => (
777
+ ProjectWorkspaceKind :: DetachedFile { file, cargo : cargo_script, set_test , .. } => (
766
778
if let Some ( ( cargo, build_scripts, _) ) = cargo_script {
767
779
cargo_to_crate_graph (
768
780
& mut |path| load ( path) ,
@@ -772,6 +784,7 @@ impl ProjectWorkspace {
772
784
rustc_cfg. clone ( ) ,
773
785
cfg_overrides,
774
786
build_scripts,
787
+ * set_test,
775
788
)
776
789
} else {
777
790
detached_file_to_crate_graph (
@@ -780,6 +793,7 @@ impl ProjectWorkspace {
780
793
file,
781
794
sysroot,
782
795
cfg_overrides,
796
+ * set_test,
783
797
)
784
798
} ,
785
799
sysroot,
@@ -813,13 +827,15 @@ impl ProjectWorkspace {
813
827
cargo_config_extra_env,
814
828
build_scripts : _,
815
829
error : _,
830
+ set_test : _,
816
831
} ,
817
832
ProjectWorkspaceKind :: Cargo {
818
833
cargo : o_cargo,
819
834
rustc : o_rustc,
820
835
cargo_config_extra_env : o_cargo_config_extra_env,
821
836
build_scripts : _,
822
837
error : _,
838
+ set_test : _,
823
839
} ,
824
840
) => {
825
841
cargo == o_cargo
@@ -834,11 +850,13 @@ impl ProjectWorkspace {
834
850
file,
835
851
cargo : Some ( ( cargo_script, _, _) ) ,
836
852
cargo_config_extra_env,
853
+ set_test : _,
837
854
} ,
838
855
ProjectWorkspaceKind :: DetachedFile {
839
856
file : o_file,
840
857
cargo : Some ( ( o_cargo_script, _, _) ) ,
841
858
cargo_config_extra_env : o_cargo_config_extra_env,
859
+ set_test : _,
842
860
} ,
843
861
) => {
844
862
file == o_file
@@ -987,6 +1005,7 @@ fn cargo_to_crate_graph(
987
1005
rustc_cfg : Vec < CfgAtom > ,
988
1006
override_cfg : & CfgOverrides ,
989
1007
build_scripts : & WorkspaceBuildScripts ,
1008
+ set_test : bool ,
990
1009
) -> ( CrateGraph , ProcMacroPaths ) {
991
1010
let _p = tracing:: info_span!( "cargo_to_crate_graph" ) . entered ( ) ;
992
1011
let mut res = ( CrateGraph :: default ( ) , ProcMacroPaths :: default ( ) ) ;
@@ -1011,8 +1030,10 @@ fn cargo_to_crate_graph(
1011
1030
let mut cfg_options = cfg_options. clone ( ) ;
1012
1031
1013
1032
if cargo[ pkg] . is_local {
1014
- // Add test cfg for local crates
1015
- cfg_options. insert_atom ( sym:: test. clone ( ) ) ;
1033
+ if set_test {
1034
+ // Add test cfg for local crates
1035
+ cfg_options. insert_atom ( sym:: test. clone ( ) ) ;
1036
+ }
1016
1037
cfg_options. insert_atom ( sym:: rust_analyzer. clone ( ) ) ;
1017
1038
}
1018
1039
@@ -1173,14 +1194,17 @@ fn detached_file_to_crate_graph(
1173
1194
detached_file : & ManifestPath ,
1174
1195
sysroot : & Sysroot ,
1175
1196
override_cfg : & CfgOverrides ,
1197
+ set_test : bool ,
1176
1198
) -> ( CrateGraph , ProcMacroPaths ) {
1177
1199
let _p = tracing:: info_span!( "detached_file_to_crate_graph" ) . entered ( ) ;
1178
1200
let mut crate_graph = CrateGraph :: default ( ) ;
1179
1201
let ( public_deps, _libproc_macro) =
1180
1202
sysroot_to_crate_graph ( & mut crate_graph, sysroot, rustc_cfg. clone ( ) , load) ;
1181
1203
1182
1204
let mut cfg_options = CfgOptions :: from_iter ( rustc_cfg) ;
1183
- cfg_options. insert_atom ( sym:: test. clone ( ) ) ;
1205
+ if set_test {
1206
+ cfg_options. insert_atom ( sym:: test. clone ( ) ) ;
1207
+ }
1184
1208
cfg_options. insert_atom ( sym:: rust_analyzer. clone ( ) ) ;
1185
1209
override_cfg. apply ( & mut cfg_options, "" ) ;
1186
1210
let cfg_options = Arc :: new ( cfg_options) ;
@@ -1426,6 +1450,7 @@ fn sysroot_to_crate_graph(
1426
1450
..Default :: default ( )
1427
1451
} ,
1428
1452
& WorkspaceBuildScripts :: default ( ) ,
1453
+ false ,
1429
1454
) ;
1430
1455
1431
1456
let mut pub_deps = vec ! [ ] ;
0 commit comments