Skip to content

Commit 8fe16d4

Browse files
committed
Refactor and optimize find_vs_version
Create a new local fn `has_msbuild_version` in `find_vs_version` to make the invocation easier. Also add `#[inline(always)]` to `has_msbuild_version` since it is only used in `find_vs_version` Signed-off-by: Jiahao XU <[email protected]>
1 parent db71e85 commit 8fe16d4

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

Diff for: src/windows/find_tools.rs

+11-5
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,10 @@ pub enum VsVers {
171171
/// generator.
172172
#[allow(clippy::disallowed_methods)]
173173
pub fn find_vs_version() -> Result<VsVers, String> {
174+
fn has_msbuild_version(version: &str) -> bool {
175+
impl_::has_msbuild_version(version, &StdEnvGetter)
176+
}
177+
174178
match std::env::var("VisualStudioVersion") {
175179
Ok(version) => match &version[..] {
176180
"17.0" => Ok(VsVers::Vs17),
@@ -191,15 +195,15 @@ pub fn find_vs_version() -> Result<VsVers, String> {
191195
_ => {
192196
// Check for the presence of a specific registry key
193197
// that indicates visual studio is installed.
194-
if impl_::has_msbuild_version("17.0", &StdEnvGetter) {
198+
if has_msbuild_version("17.0") {
195199
Ok(VsVers::Vs17)
196-
} else if impl_::has_msbuild_version("16.0", &StdEnvGetter) {
200+
} else if has_msbuild_version("16.0") {
197201
Ok(VsVers::Vs16)
198-
} else if impl_::has_msbuild_version("15.0", &StdEnvGetter) {
202+
} else if has_msbuild_version("15.0") {
199203
Ok(VsVers::Vs15)
200-
} else if impl_::has_msbuild_version("14.0", &StdEnvGetter) {
204+
} else if has_msbuild_version("14.0") {
201205
Ok(VsVers::Vs14)
202-
} else if impl_::has_msbuild_version("12.0", &StdEnvGetter) {
206+
} else if has_msbuild_version("12.0") {
203207
Ok(VsVers::Vs12)
204208
} else {
205209
Err("\n\n\
@@ -1047,6 +1051,7 @@ mod impl_ {
10471051
max_key
10481052
}
10491053

1054+
#[inline(always)]
10501055
pub(super) fn has_msbuild_version(version: &str, env_getter: &dyn EnvGetter) -> bool {
10511056
match version {
10521057
"17.0" => {
@@ -1203,6 +1208,7 @@ mod impl_ {
12031208
None
12041209
}
12051210

1211+
#[inline(always)]
12061212
pub(super) fn has_msbuild_version(version: &str, _: &dyn EnvGetter) -> bool {
12071213
match version {
12081214
"17.0" => false,

0 commit comments

Comments
 (0)