vscode-go icon indicating copy to clipboard operation
vscode-go copied to clipboard

`go clean` can delete code

Open Sc00bz opened this issue 1 year ago • 3 comments

What version of Go, VS Code & VS Code Go extension are you using?

Version Information
  • Run go version to get version of Go from the VS Code integrated terminal.
    • go version go1.22.0 windows/amd64
  • Run gopls -v version to get version of Gopls from the VS Code integrated terminal.
    • golang.org/x/tools/gopls v0.16.1
  • Run code -v or code-insiders -v to get version of VS Code or VS Code Insiders.
    • 1.92.2
  • Check your installed extensions to get the version of the VS Code Go extension
    • v0.42.0

Describe the bug

If you name your folder blah.go and have you code in a file called blah.go, then run go clean it will delete blah.go/blah.go.

Steps to reproduce the behavior:

  1. Create folder called blah.go
  2. Create file called blah.go/blah.go with contents "package main"
  3. Create file called blah.go/go.mod with contents "module blah go 1.22"
  4. Run go clean
  5. File blah.go/blah.go is gone.

Fix

go clean should check if folder name ends in .go before deleting a file named the same as the parent folder.

Sc00bz avatar Aug 17 '24 00:08 Sc00bz

By go clean, do you mean the Go command's clean subcommand, or something else? (In other words, the step 4 means, run go clean from the terminal?)

hyangah avatar Aug 19 '24 20:08 hyangah

In other words, the step 4 means, run go clean from the terminal?

Yes, and while being in the folder blah.go.

Sc00bz avatar Aug 19 '24 23:08 Sc00bz

Hi Sc00bz, I was not able to re-produce this issue, do you think this is something still happening? Do you think this is something related to VSCode?

~/Desktop/codebase/gomodifytags/vulncheck/blah.go/ [main] tree 
.
├── blah.go
└── go.mod

1 directory, 2 files
~/Desktop/codebase/gomodifytags/vulncheck/blah.go/ [main] cat blah.go 
package blahgo

type foo struct{}
~/Desktop/codebase/gomodifytags/vulncheck/blah.go/ [main] cat go.mod 
module blah

go 1.22%                                                                   
~/Desktop/codebase/gomodifytags/vulncheck/blah.go/ [main] go clean 
~/Desktop/codebase/gomodifytags/vulncheck/blah.go/ [main] go1.22.0 clean
~/Desktop/codebase/gomodifytags/vulncheck/blah.go/ [main] tree
.
├── blah.go
└── go.mod

1 directory, 2 files

h9jiang avatar Feb 04 '25 16:02 h9jiang