[vscode-go] extension: [1/N] address floating promises in async callers and UI prompts

3 views
Skip to first unread message

Hongxiang Jiang (Gerrit)

unread,
Aug 3, 2026, 6:04:23 PM (4 days ago) Aug 3
to goph...@pubsubhelper.golang.org, golang-co...@googlegroups.com

Hongxiang Jiang voted Commit-Queue+1

Commit-Queue+1
Open in Gerrit

Related details

Attention set is empty
Submit Requirements:
  • requirement is not satisfiedCode-Review
  • requirement satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
  • requirement is not satisfiedTryBots-Pass
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: vscode-go
Gerrit-Branch: master
Gerrit-Change-Id: I5fca8ec53108b8afeffd93bff6add8ff8f24ff40
Gerrit-Change-Number: 809840
Gerrit-PatchSet: 3
Gerrit-Owner: Hongxiang Jiang <hxj...@golang.org>
Gerrit-Reviewer: Hongxiang Jiang <hxj...@golang.org>
Gerrit-Comment-Date: Mon, 03 Aug 2026 22:04:19 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
unsatisfied_requirement
satisfied_requirement
open
diffy

Hongxiang Jiang (Gerrit)

unread,
Aug 3, 2026, 6:45:25 PM (4 days ago) Aug 3
to goph...@pubsubhelper.golang.org, golang...@luci-project-accounts.iam.gserviceaccount.com, Madeline Kalil, Gopher Robot, golang-co...@googlegroups.com
Attention needed from Madeline Kalil

Hongxiang Jiang voted Commit-Queue+1

Commit-Queue+1
Open in Gerrit

Related details

Attention is currently required from:
  • Madeline Kalil
Submit Requirements:
  • requirement is not satisfiedCode-Review
  • requirement satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
  • requirement is not satisfiedTryBots-Pass
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: vscode-go
Gerrit-Branch: master
Gerrit-Change-Id: I5fca8ec53108b8afeffd93bff6add8ff8f24ff40
Gerrit-Change-Number: 809840
Gerrit-PatchSet: 6
Gerrit-Owner: Hongxiang Jiang <hxj...@golang.org>
Gerrit-Reviewer: Hongxiang Jiang <hxj...@golang.org>
Gerrit-Reviewer: Madeline Kalil <mka...@google.com>
Gerrit-CC: Gopher Robot <go...@golang.org>
Gerrit-Attention: Madeline Kalil <mka...@google.com>
Gerrit-Comment-Date: Mon, 03 Aug 2026 22:45:22 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
unsatisfied_requirement
satisfied_requirement
open
diffy

Hongxiang Jiang (Gerrit)

unread,
Aug 3, 2026, 7:40:12 PM (4 days ago) Aug 3
to goph...@pubsubhelper.golang.org, golang...@luci-project-accounts.iam.gserviceaccount.com, Madeline Kalil, Gopher Robot, golang-co...@googlegroups.com
Attention needed from Madeline Kalil

Hongxiang Jiang voted Commit-Queue+1

Commit-Queue+1
Open in Gerrit

Related details

Attention is currently required from:
  • Madeline Kalil
Submit Requirements:
  • requirement is not satisfiedCode-Review
  • requirement satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
  • requirement is not satisfiedTryBots-Pass
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: vscode-go
Gerrit-Branch: master
Gerrit-Change-Id: I5fca8ec53108b8afeffd93bff6add8ff8f24ff40
Gerrit-Change-Number: 809840
Gerrit-PatchSet: 10
Gerrit-Owner: Hongxiang Jiang <hxj...@golang.org>
Gerrit-Reviewer: Hongxiang Jiang <hxj...@golang.org>
Gerrit-Reviewer: Madeline Kalil <mka...@google.com>
Gerrit-CC: Gopher Robot <go...@golang.org>
Gerrit-Attention: Madeline Kalil <mka...@google.com>
Gerrit-Comment-Date: Mon, 03 Aug 2026 23:40:09 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
unsatisfied_requirement
satisfied_requirement
open
diffy

Hongxiang Jiang (Gerrit)

unread,
Aug 6, 2026, 3:13:07 PM (yesterday) Aug 6
to goph...@pubsubhelper.golang.org, Peter Weinberger, Madeline Kalil, golang...@luci-project-accounts.iam.gserviceaccount.com, Gopher Robot, golang-co...@googlegroups.com
Attention needed from Madeline Kalil and Peter Weinberger

New activity on the change

Open in Gerrit

Related details

Attention is currently required from:
  • Madeline Kalil
  • Peter Weinberger
Submit Requirements:
  • requirement is not satisfiedCode-Review
  • requirement satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
  • requirement is not satisfiedTryBots-Pass
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: vscode-go
Gerrit-Branch: master
Gerrit-Change-Id: I5fca8ec53108b8afeffd93bff6add8ff8f24ff40
Gerrit-Change-Number: 809840
Gerrit-PatchSet: 21
Gerrit-Owner: Hongxiang Jiang <hxj...@golang.org>
Gerrit-Reviewer: Hongxiang Jiang <hxj...@golang.org>
Gerrit-Reviewer: Madeline Kalil <mka...@google.com>
Gerrit-Reviewer: Peter Weinberger <p...@google.com>
Gerrit-Attention: Peter Weinberger <p...@google.com>
Gerrit-Comment-Date: Thu, 06 Aug 2026 19:13:04 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: No
unsatisfied_requirement
satisfied_requirement
open
diffy

Hongxiang Jiang (Gerrit)

unread,
Aug 6, 2026, 3:13:11 PM (yesterday) Aug 6
to goph...@pubsubhelper.golang.org, Peter Weinberger, Madeline Kalil, golang...@luci-project-accounts.iam.gserviceaccount.com, Gopher Robot, golang-co...@googlegroups.com
Attention needed from Madeline Kalil and Peter Weinberger

Hongxiang Jiang voted Commit-Queue+1

Commit-Queue+1
Gerrit-Comment-Date: Thu, 06 Aug 2026 19:13:08 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
unsatisfied_requirement
satisfied_requirement
open
diffy

Hongxiang Jiang (Gerrit)

unread,
Aug 6, 2026, 3:13:46 PM (yesterday) Aug 6
to goph...@pubsubhelper.golang.org, Peter Weinberger, Madeline Kalil, golang...@luci-project-accounts.iam.gserviceaccount.com, Gopher Robot, golang-co...@googlegroups.com
Attention needed from Madeline Kalil and Peter Weinberger

Hongxiang Jiang added 1 comment

Patchset-level comments
File-level comment, Patchset 21 (Latest):
Hongxiang Jiang . resolved

Future changes can incrementally evaluate specific call sites
where converting fire-and-forget calls to awaited operations
is desirable.

Gerrit-Comment-Date: Thu, 06 Aug 2026 19:13:39 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
unsatisfied_requirement
satisfied_requirement
open
diffy

Peter Weinberger (Gerrit)

unread,
11:08 AM (11 hours ago) 11:08 AM
to Hongxiang Jiang, goph...@pubsubhelper.golang.org, golang...@luci-project-accounts.iam.gserviceaccount.com, Madeline Kalil, Gopher Robot, golang-co...@googlegroups.com
Attention needed from Hongxiang Jiang and Madeline Kalil

Peter Weinberger voted and added 2 comments

Votes added by Peter Weinberger

Code-Review+2

2 comments

File extension/src/language/goLanguageServer.ts
Line 313, Patchset 21 (Latest): void c.stop(2000);
Peter Weinberger . unresolved

my typescript expertise is not great: Does this catch(e) catch all the errors, including those from the asynchronous execution? If not, is there some way of adding a catch to the promise?

File extension/test/gopls/survey.test.ts
Line 340, Patchset 21 (Latest): void testCases.map(async ([testConfig, choice, wantCount], i) => {
Peter Weinberger . unresolved

The AI code reviewer knows more typescript than I do, and said: "Using map here returns an array of promises (since the callback is async). While void silences the linter, using forEach is more idiomatic when the return values are ignored and you only care about side effects (like registering tests).

Also, the callback doesn't seem to await anything, so it might not even need to be async."

Open in Gerrit

Related details

Attention is currently required from:
  • Hongxiang Jiang
  • Madeline Kalil
Submit Requirements:
  • requirement satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement satisfiedReview-Enforcement
  • requirement satisfiedTryBots-Pass
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: vscode-go
Gerrit-Branch: master
Gerrit-Change-Id: I5fca8ec53108b8afeffd93bff6add8ff8f24ff40
Gerrit-Change-Number: 809840
Gerrit-PatchSet: 21
Gerrit-Owner: Hongxiang Jiang <hxj...@golang.org>
Gerrit-Reviewer: Hongxiang Jiang <hxj...@golang.org>
Gerrit-Reviewer: Madeline Kalil <mka...@google.com>
Gerrit-Reviewer: Peter Weinberger <p...@google.com>
Gerrit-CC: Gopher Robot <go...@golang.org>
Gerrit-Attention: Madeline Kalil <mka...@google.com>
Gerrit-Attention: Hongxiang Jiang <hxj...@golang.org>
Gerrit-Comment-Date: Fri, 07 Aug 2026 15:08:25 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Hongxiang Jiang (Gerrit)

unread,
5:56 PM (5 hours ago) 5:56 PM
to goph...@pubsubhelper.golang.org, golang-co...@googlegroups.com
Attention needed from Hongxiang Jiang and Madeline Kalil

Hongxiang Jiang uploaded new patchset

Hongxiang Jiang uploaded patch set #23 to this change.
Open in Gerrit

Related details

Attention is currently required from:
  • Hongxiang Jiang
  • Madeline Kalil
Submit Requirements:
    • requirement satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement satisfiedReview-Enforcement
    • requirement is not satisfiedTryBots-Pass
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: newpatchset
    Gerrit-Project: vscode-go
    Gerrit-Branch: master
    Gerrit-Change-Id: I5fca8ec53108b8afeffd93bff6add8ff8f24ff40
    Gerrit-Change-Number: 809840
    Gerrit-PatchSet: 23
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Hongxiang Jiang (Gerrit)

    unread,
    5:56 PM (5 hours ago) 5:56 PM
    to goph...@pubsubhelper.golang.org, Peter Weinberger, golang...@luci-project-accounts.iam.gserviceaccount.com, Madeline Kalil, Gopher Robot, golang-co...@googlegroups.com
    Attention needed from Madeline Kalil

    Hongxiang Jiang voted and added 1 comment

    Votes added by Hongxiang Jiang

    Auto-Submit+1
    Commit-Queue+1

    1 comment

    File extension/src/language/goLanguageServer.ts
    Line 313, Patchset 21: void c.stop(2000);
    Peter Weinberger . resolved

    my typescript expertise is not great: Does this catch(e) catch all the errors, including those from the asynchronous execution? If not, is there some way of adding a catch to the promise?

    Hongxiang Jiang

    Done

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Madeline Kalil
    Submit Requirements:
    • requirement satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement satisfiedReview-Enforcement
    • requirement is not satisfiedTryBots-Pass
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: vscode-go
    Gerrit-Branch: master
    Gerrit-Change-Id: I5fca8ec53108b8afeffd93bff6add8ff8f24ff40
    Gerrit-Change-Number: 809840
    Gerrit-PatchSet: 23
    Gerrit-Owner: Hongxiang Jiang <hxj...@golang.org>
    Gerrit-Reviewer: Hongxiang Jiang <hxj...@golang.org>
    Gerrit-Reviewer: Madeline Kalil <mka...@google.com>
    Gerrit-Reviewer: Peter Weinberger <p...@google.com>
    Gerrit-CC: Gopher Robot <go...@golang.org>
    Gerrit-Attention: Madeline Kalil <mka...@google.com>
    Gerrit-Comment-Date: Fri, 07 Aug 2026 21:56:20 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    Comment-In-Reply-To: Peter Weinberger <p...@google.com>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Hongxiang Jiang (Gerrit)

    unread,
    5:57 PM (5 hours ago) 5:57 PM
    to goph...@pubsubhelper.golang.org, Peter Weinberger, golang...@luci-project-accounts.iam.gserviceaccount.com, Madeline Kalil, Gopher Robot, golang-co...@googlegroups.com
    Attention needed from Madeline Kalil

    Hongxiang Jiang added 1 comment

    File extension/test/gopls/survey.test.ts
    Line 340, Patchset 21: void testCases.map(async ([testConfig, choice, wantCount], i) => {
    Peter Weinberger . resolved

    The AI code reviewer knows more typescript than I do, and said: "Using map here returns an array of promises (since the callback is async). While void silences the linter, using forEach is more idiomatic when the return values are ignored and you only care about side effects (like registering tests).

    Also, the callback doesn't seem to await anything, so it might not even need to be async."

    Hongxiang Jiang

    I will make sure to ask AI review in the future before sending it over to you. sorry for the noise.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Madeline Kalil
    Submit Requirements:
    • requirement satisfiedCode-Review
    • requirement satisfiedNo-Unresolved-Comments
    • requirement satisfiedReview-Enforcement
    • requirement is not satisfiedTryBots-Pass
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: vscode-go
    Gerrit-Branch: master
    Gerrit-Change-Id: I5fca8ec53108b8afeffd93bff6add8ff8f24ff40
    Gerrit-Change-Number: 809840
    Gerrit-PatchSet: 23
    Gerrit-Owner: Hongxiang Jiang <hxj...@golang.org>
    Gerrit-Reviewer: Hongxiang Jiang <hxj...@golang.org>
    Gerrit-Reviewer: Madeline Kalil <mka...@google.com>
    Gerrit-Reviewer: Peter Weinberger <p...@google.com>
    Gerrit-CC: Gopher Robot <go...@golang.org>
    Gerrit-Attention: Madeline Kalil <mka...@google.com>
    Gerrit-Comment-Date: Fri, 07 Aug 2026 21:56:55 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Peter Weinberger <p...@google.com>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Gopher Robot (Gerrit)

    unread,
    6:11 PM (4 hours ago) 6:11 PM
    to Hongxiang Jiang, goph...@pubsubhelper.golang.org, golang-...@googlegroups.com, golang...@luci-project-accounts.iam.gserviceaccount.com, Peter Weinberger, Madeline Kalil, golang-co...@googlegroups.com

    Gopher Robot submitted the change with unreviewed changes

    Unreviewed changes

    21 is the latest approved patch-set.
    The change was submitted with unreviewed changes in the following files:

    ```
    The name of the file: extension/src/language/goLanguageServer.ts
    Insertions: 2, Deletions: 4.

    @@ -74,6 +74,7 @@
    InteractiveFormsFeature,
    InteractiveMiddleware
    } from './form';
    +import { GoSemanticTokensFeature } from './goSemanticTokens';

    export interface LanguageServerConfig {
    serverName: string;
    @@ -309,11 +310,9 @@
    // LanguageClient.stop may hang if the language server
    // crashes during shutdown before responding to the
    // shutdown request. Enforce client-side timeout.
    - try {
    - void c.stop(2000);
    - } catch (e) {
    + c.stop(2000).catch((e) => {
    c.outputChannel?.appendLine(`Failed to stop client: ${e}`);
    - }
    + });
    }

    export function toServerInfo(res?: InitializeResult): ServerInfo | undefined {
    @@ -840,6 +839,7 @@
    onDidChangeVulncheckResultEmitter
    );
    c.registerFeature(new InteractiveFormsFeature(c));
    + c.registerFeature(new GoSemanticTokensFeature());
    onDidChangeVulncheckResultEmitter.event(async (e: VulncheckEvent) => {
    if (!govulncheckTerminal) {
    return;
    ```
    ```
    The name of the file: extension/test/gopls/survey.test.ts
    Insertions: 3, Deletions: 2.

    @@ -337,7 +337,8 @@
    [{ prompt: true, lastDatePrompted: yesterday }, '', 0]
    ];

    - void testCases.map(async ([testConfig, choice, wantCount], i) => {
    + for (let i = 0; i < testCases.length; i++) {
    + const [testConfig, choice, wantCount] = testCases[i];
    test(`opt out: ${i}`, async () => {
    const stub = sandbox.stub(vscode.window, 'showInformationMessage').resolves({ title: choice });
    const getGoplsOptOutConfigStub = sandbox.stub(goLanguageServer, 'getGoplsOptOutConfig').returns(testConfig);
    @@ -356,5 +357,5 @@
    `unexpected lastDatePrompted: ${JSON.stringify(got.lastDatePrompted)}`
    );
    });
    - });
    + }
    });
    ```

    Change information

    Commit message:
    extension: enable @typescript-eslint/no-floating-promises rule

    Enable the @typescript-eslint/no-floating-promises rule in
    eslint.config.mjs and mark unawaited promises with `void`.

    Using `void` satisfies the linter without changing existing
    runtime behavior.
    Change-Id: I5fca8ec53108b8afeffd93bff6add8ff8f24ff40
    Auto-Submit: Hongxiang Jiang <hxj...@golang.org>
    Reviewed-by: Peter Weinberger <p...@google.com>
    Files:
    • M extension/eslint.config.js
    • M extension/src/commands/applyCoverprofile.ts
    • M extension/src/debugAdapter/goDebug.ts
    • M extension/src/developerSurvey/prompt.ts
    • M extension/src/diagnostics/goBuild.ts
    • M extension/src/goCover.ts
    • M extension/src/goDebugFactory.ts
    • M extension/src/goEnvironmentStatus.ts
    • M extension/src/goGenerateTests.ts
    • M extension/src/goImpl.ts
    • M extension/src/goImport.ts
    • M extension/src/goInstallTools.ts
    • M extension/src/goMain.ts
    • M extension/src/goPackageOutline.ts
    • M extension/src/goPackages.ts
    • M extension/src/goPlayground.ts
    • M extension/src/goSurvey.ts
    • M extension/src/goTest.ts
    • M extension/src/goTest/explore.ts
    • M extension/src/language/goLanguageServer.ts
    • M extension/src/language/legacy/goFormat.ts
    • M extension/src/stateUtils.ts
    • M extension/src/testUtils.ts
    • M extension/src/util.ts
    • M extension/test/gopls/goplsTestEnv.utils.ts
    • M extension/test/gopls/survey.test.ts
    • M extension/test/gopls/telemetry.test.ts
    • M extension/test/integration/goDebug.test.ts
    • M extension/test/integration/goDebugConfiguration.test.ts
    • M extension/test/runTest.ts
    Change size: M
    Delta: 30 files changed, 90 insertions(+), 88 deletions(-)
    Branch: refs/heads/master
    Submit Requirements:
    Open in Gerrit
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: merged
    Gerrit-Project: vscode-go
    Gerrit-Branch: master
    Gerrit-Change-Id: I5fca8ec53108b8afeffd93bff6add8ff8f24ff40
    Gerrit-Change-Number: 809840
    Gerrit-PatchSet: 24
    Gerrit-Owner: Hongxiang Jiang <hxj...@golang.org>
    Gerrit-Reviewer: Gopher Robot <go...@golang.org>
    open
    diffy
    satisfied_requirement
    Reply all
    Reply to author
    Forward
    0 new messages