From 75740e24320b6875a20bbf060f10a6489c2fc41b Mon Sep 17 00:00:00 2001 From: Tristan Labelle Date: Wed, 4 Oct 2023 12:14:49 -0700 Subject: [PATCH 1/2] fix-xctest-version-comparison --- src/toolchain/toolchain.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/toolchain/toolchain.ts b/src/toolchain/toolchain.ts index b91af7f51..30e8db562 100644 --- a/src/toolchain/toolchain.ts +++ b/src/toolchain/toolchain.ts @@ -397,7 +397,7 @@ export class SwiftToolchain { throw Error("Info.plist is missing the XCTEST_VERSION key."); } - if (swiftVersion >= new Version(5, 7, 0)) { + if (swiftVersion.isGreaterThanOrEqual(new Version(5, 7, 0))) { let bindir: string; const arch = targetInfo.target?.triple.split("-", 1)[0]; switch (arch) { From 5ed093e8958998d59e0b1c12d88a10a90082640f Mon Sep 17 00:00:00 2001 From: Tristan Labelle Date: Wed, 4 Oct 2023 12:20:55 -0700 Subject: [PATCH 2/2] Fix all instances of version comparison --- src/commands.ts | 5 ++++- src/extension.ts | 2 +- src/sourcekit-lsp/LanguageClientManager.ts | 6 ++++-- src/toolchain/BuildFlags.ts | 2 +- test/suite/BuildFlags.test.ts | 2 +- test/suite/SwiftPackage.test.ts | 2 +- test/suite/version.test.ts | 6 ------ 7 files changed, 12 insertions(+), 13 deletions(-) diff --git a/src/commands.ts b/src/commands.ts index 415a7fbe3..ac32a6b5c 100644 --- a/src/commands.ts +++ b/src/commands.ts @@ -240,7 +240,10 @@ async function runSwiftScript(ctx: WorkspaceContext) { // Swift scripts require new swift driver to work on Windows. Swift driver is available // from v5.7 of Windows Swift - if (process.platform === "win32" && ctx.toolchain.swiftVersion < new Version(5, 7, 0)) { + if ( + process.platform === "win32" && + ctx.toolchain.swiftVersion.isLessThan(new Version(5, 7, 0)) + ) { vscode.window.showErrorMessage( "Run Swift Script is unavailable with the legacy driver on Windows." ); diff --git a/src/extension.ts b/src/extension.ts index 0119e7b03..42cc50d4b 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -107,7 +107,7 @@ export async function activate(context: vscode.ExtensionContext): Promise { } else { await commands.resolveFolderDependencies(folder, true); } - if (workspace.swiftVersion >= new Version(5, 6, 0)) { + if (workspace.swiftVersion.isGreaterThanOrEqual(new Version(5, 6, 0))) { await workspace.statusItem.showStatusWhileRunning( `Loading Swift Plugins (${FolderContext.uriName( folder.workspaceFolder.uri diff --git a/src/sourcekit-lsp/LanguageClientManager.ts b/src/sourcekit-lsp/LanguageClientManager.ts index 60ac0a144..deb1896d5 100644 --- a/src/sourcekit-lsp/LanguageClientManager.ts +++ b/src/sourcekit-lsp/LanguageClientManager.ts @@ -112,7 +112,9 @@ export class LanguageClientManager { public subFolderWorkspaces: vscode.Uri[]; constructor(public workspaceContext: WorkspaceContext) { - this.singleServerSupport = workspaceContext.swiftVersion >= new Version(5, 7, 0); + this.singleServerSupport = workspaceContext.swiftVersion.isGreaterThanOrEqual( + new Version(5, 7, 0) + ); this.subscriptions = []; this.subFolderWorkspaces = []; if (this.singleServerSupport) { @@ -175,7 +177,7 @@ export class LanguageClientManager { // Swift versions prior to 5.6 don't support file changes, so need to restart // lSP server when a file is either created or deleted - if (workspaceContext.swiftVersion < new Version(5, 6, 0)) { + if (workspaceContext.swiftVersion.isLessThan(new Version(5, 6, 0))) { workspaceContext.outputChannel.logDiagnostic("LSP: Adding new/delete file handlers"); // restart LSP server on creation of a new file const onDidCreateFileDisposable = vscode.workspace.onDidCreateFiles(() => { diff --git a/src/toolchain/BuildFlags.ts b/src/toolchain/BuildFlags.ts index a162f4689..0acd99950 100644 --- a/src/toolchain/BuildFlags.ts +++ b/src/toolchain/BuildFlags.ts @@ -84,7 +84,7 @@ export class BuildFlags { */ buildPathFlags(): string[] { if (configuration.buildPath && configuration.buildPath.length > 0) { - if (this.toolchain.swiftVersion < new Version(5, 8, 0)) { + if (this.toolchain.swiftVersion.isLessThan(new Version(5, 8, 0))) { return ["--build-path", configuration.buildPath]; } else { return ["--scratch-path", configuration.buildPath]; diff --git a/test/suite/BuildFlags.test.ts b/test/suite/BuildFlags.test.ts index be42b8199..7a0cd81ea 100644 --- a/test/suite/BuildFlags.test.ts +++ b/test/suite/BuildFlags.test.ts @@ -45,7 +45,7 @@ suite("BuildFlags Test Suite", () => { .getConfiguration("swift") .update("buildPath", "/some/other/full/test/path"); - if (toolchain.swiftVersion < new Version(5, 8, 0)) { + if (toolchain.swiftVersion.isLessThan(new Version(5, 8, 0))) { assert.deepStrictEqual(buildFlags.buildPathFlags(), [ "--build-path", "/some/other/full/test/path", diff --git a/test/suite/SwiftPackage.test.ts b/test/suite/SwiftPackage.test.ts index 22a3afca5..b4f791452 100644 --- a/test/suite/SwiftPackage.test.ts +++ b/test/suite/SwiftPackage.test.ts @@ -46,7 +46,7 @@ suite("SwiftPackage Test Suite", () => { }).timeout(10000); test("Package resolve v2", async () => { - if (toolchain && toolchain.swiftVersion < new Version(5, 6, 0)) { + if (toolchain && toolchain.swiftVersion.isLessThan(new Version(5, 6, 0))) { return; } const spmPackage = await SwiftPackage.create(testAssetUri("package5.6"), toolchain); diff --git a/test/suite/version.test.ts b/test/suite/version.test.ts index 0c0c8dd9e..e4d190541 100644 --- a/test/suite/version.test.ts +++ b/test/suite/version.test.ts @@ -62,10 +62,4 @@ suite("Version Test Suite", () => { assert(new Version(3, 3, 0).isGreaterThanOrEqual(new Version(3, 2, 7))); assert(new Version(7, 1, 2).isGreaterThanOrEqual(new Version(7, 1, 2))); }); - test("operators", () => { - assert(new Version(1, 0, 1) >= new Version(1, 0, 0)); - assert(new Version(1, 0, 1) <= new Version(4, 5, 0)); - assert(new Version(1, 1, 1) > new Version(1, 1, 0)); - assert(new Version(2, 3, 2) < new Version(2, 3, 8)); - }); });