Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deactivate or reimplement "Go: Fill struct" command if gopls is used #2107

Closed
miro-ko opened this issue Mar 15, 2022 · 14 comments
Closed

Deactivate or reimplement "Go: Fill struct" command if gopls is used #2107

miro-ko opened this issue Mar 15, 2022 · 14 comments
Labels
gopls gopls related issues NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.
Milestone

Comments

@miro-ko
Copy link

miro-ko commented Mar 15, 2022

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.17.8 darwin/arm64
  • Run gopls -v version to get version of Gopls from the VS Code integrated terminal.
    • v0.8.0
  • Run code -v or code-insiders -v to get version of VS Code or VS Code Insiders.
    • 1.64.1
      d6ee99e4c045a6716e5c653d7da8e9ae6f5a8b03
      arm64
  • Check your installed extensions to get the version of the VS Code Go extension
    • v0.32.0
  • Run Ctrl+Shift+P (Cmd+Shift+P on Mac OS) > Go: Locate Configured Go Tools command.
    • Checking configured tools....
      GOBIN: undefined
      toolsGopath:
      gopath: /Users/miroslavkovalenko/go
      GOROOT: /opt/homebrew/Cellar/go/1.17.8/libexec
      PATH: /usr/local/opt/openjdk/bin:/usr/local/opt/node@12/bin:/usr/local/opt/openssl@1.1/bin:/opt/homebrew/Cellar/pyenv-virtualenv/1.1.5/shims:/Users/miroslavkovalenko/.pyenv/shims:/Users/miroslavkovalenko/.pyenv/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware Fusion Tech Preview.app/Contents/Public:/usr/local/share/dotnet:~/.dotnet/tools:/Users/miroslavkovalenko/.rvm/bin
      go: /opt/homebrew/bin/go: go version go1.17.8 darwin/arm64
      go-outline: /Users/miroslavkovalenko/go/bin/go-outline (version: v0.0.0-20210608161538-9736a4bde949 built with go: go1.17.8)
      gotests: /Users/miroslavkovalenko/go/bin/gotests (version: v1.6.0 built with go: go1.17.8)
      gomodifytags: /Users/miroslavkovalenko/go/bin/gomodifytags (version: v1.16.0 built with go: go1.17.8)
      impl: /Users/miroslavkovalenko/go/bin/impl (version: v1.1.0 built with go: go1.17.8)
      goplay: /Users/miroslavkovalenko/go/bin/goplay (version: v1.0.0 built with go: go1.17.8)
      golangci-lint: /Users/miroslavkovalenko/go/bin/golangci-lint (version: unknown - )
      gopls: /Users/miroslavkovalenko/go/bin/gopls (version: v0.8.0 built with go: go1.17.8)
      go env
      Workspace Folder (flowcontrol-alert-and-tech-state-consumer-daemon): /Users/miroslavkovalenko/Dropbox-BM/Code/flowcontrol-alert-and-tech-state-consumer-daemon
      GO111MODULE=""
      GOARCH="arm64"
      GOBIN=""
      GOCACHE="/Users/miroslavkovalenko/Library/Caches/go-build"
      GOENV="/Users/miroslavkovalenko/Library/Application Support/go/env"
      GOEXE=""
      GOEXPERIMENT=""
      GOFLAGS=""
      GOHOSTARCH="arm64"
      GOHOSTOS="darwin"
      GOINSECURE=""
      GOMODCACHE="/Users/miroslavkovalenko/go/pkg/mod"
      GONOPROXY="bitbucket.org/be-mobile"
      GONOSUMDB="bitbucket.org/be-mobile"
      GOOS="darwin"
      GOPATH="/Users/miroslavkovalenko/go"
      GOPRIVATE="bitbucket.org/be-mobile"
      GOPROXY="https://proxy.golang.org,direct"
      GOROOT="/opt/homebrew/Cellar/go/1.17.8/libexec"
      GOSUMDB="sum.golang.org"
      GOTMPDIR=""
      GOTOOLDIR="/opt/homebrew/Cellar/go/1.17.8/libexec/pkg/tool/darwin_arm64"
      GOVCS=""
      GOVERSION="go1.17.8"
      GCCGO="gccgo"
      AR="ar"
      CC="clang"
      CXX="clang++"
      CGO_ENABLED="1"
      GOMOD="/Users/miroslavkovalenko/Dropbox-BM/Code/flowcontrol-alert-and-tech-state-consumer-daemon/go.mod"
      CGO_CFLAGS="-g -O2"
      CGO_CPPFLAGS=""
      CGO_CXXFLAGS="-g -O2"
      CGO_FFLAGS="-g -O2"
      CGO_LDFLAGS="-g -O2"
      PKG_CONFIG="pkg-config"
      GOGCCFLAGS="-fPIC -arch arm64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/gk/wbvtjs0n2v30r5gq64ry6yw40000gn/T/go-build2492808877=/tmp/go-build -gno-record-gcc-switches -fno-common"

Share the Go related settings you have added/edited

Run Preferences: Open Settings (JSON) command to open your settings.json file.
Share all the settings with the go. or ["go"] or gopls prefixes.

{
  "go.buildTags": "dynamic",
  "go.lintFlags": [
    "--build-tags=dynamic"
  ],
  "go.lintFlags": [
    "--fast"
  ],
  "go.vetOnSave": "off",
  "go.formatTool": "gofmt",
  "go.lintTool": "golangci-lint",
  "go.toolsManagement.autoUpdate": true,
  "go.editorContextMenuCommands": {
    "fillStruct": true
  },
  "go.generateTestsFlags": [
    "--template=testify"
  ],
  "go.addTags": {
    "tags": "json",
    "options": "json=omitempty",
    "promptForTags": false,
    "transform": "camelcase",
    "template": ""
  }
}

Describe the bug

A clear and concise description of what the bug.
A clear and concise description of what you expected to happen.

For my application I'm using github.com/confluentinc/confluent-kafka-go dependency. Since I'm on my ARM system (Apple M1 Pro) I need to add build tag dynamic to be able to work properly.
When I run Go: Fill struct in VS Code I get the following error:

Cannot fill struct: fillstruct: go [list -e -json -compiled=true -test=true -export=false -deps=true -find=false -tags  --]: exit status 2: # github.com/confluentinc/confluent-kafka-go/kafka
ld: warning: ignoring file ../../../../../go/pkg/mod/github.com/confluentinc/confluent-kafka-go@v1.7.0/kafka/librdkafka_vendor/librdkafka_darwin.a, building for macOS-arm64 but attempting to link with file built for macOS-x86_64
Undefined symbols for architecture arm64:
  "_rd_kafka_AdminOptions_destroy", referenced from:
      __cgo_497ae96c6da8_Cfunc_rd_kafka_AdminOptions_destroy in _x003.o
     (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_AdminOptions_destroy)
...
Full error log
Cannot fill struct: fillstruct: go [list -e -json -compiled=true -test=true -export=false -deps=true -find=false -tags --]: exit status 2: # github.com/confluentinc/confluent-kafka-go/kafka ld: warning: ignoring file ../../../../../go/pkg/mod/github.com/confluentinc/confluent-kafka-go@v1.7.0/kafka/librdkafka_vendor/librdkafka_darwin.a, building for macOS-arm64 but attempting to link with file built for macOS-x86_64 Undefined symbols for architecture arm64: "_rd_kafka_AdminOptions_destroy", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_AdminOptions_destroy in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_AdminOptions_destroy) "_rd_kafka_AdminOptions_new", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_AdminOptions_new in _x004.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_AdminOptions_new) "_rd_kafka_AdminOptions_set_operation_timeout", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_AdminOptions_set_operation_timeout in _x004.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_AdminOptions_set_operation_timeout) "_rd_kafka_AdminOptions_set_request_timeout", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_AdminOptions_set_request_timeout in _x004.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_AdminOptions_set_request_timeout) "_rd_kafka_AdminOptions_set_validate_only", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_AdminOptions_set_validate_only in _x004.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_AdminOptions_set_validate_only) "_rd_kafka_AlterConfigs", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_AlterConfigs in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_AlterConfigs, __cgo_497ae96c6da8_Cfunc_rd_kafka_AlterConfigs_result_resources ) "_rd_kafka_AlterConfigs_result_resources", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_AlterConfigs_result_resources in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_AlterConfigs_result_resources) "_rd_kafka_ConfigEntry_is_read_only", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_ConfigEntry_is_read_only in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_ConfigEntry_is_read_only) "_rd_kafka_ConfigEntry_is_sensitive", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_ConfigEntry_is_sensitive in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_ConfigEntry_is_sensitive) "_rd_kafka_ConfigEntry_is_synonym", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_ConfigEntry_is_synonym in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_ConfigEntry_is_synonym) "_rd_kafka_ConfigEntry_name", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_ConfigEntry_name in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_ConfigEntry_name) "_rd_kafka_ConfigEntry_source", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_ConfigEntry_source in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_ConfigEntry_source) "_rd_kafka_ConfigEntry_synonyms", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_ConfigEntry_synonyms in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_ConfigEntry_synonyms) "_rd_kafka_ConfigEntry_value", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_ConfigEntry_value in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_ConfigEntry_value) "_rd_kafka_ConfigResource_configs", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_ConfigResource_configs in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_ConfigResource_configs) "_rd_kafka_ConfigResource_destroy", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_ConfigResource_destroy in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_ConfigResource_destroy) "_rd_kafka_ConfigResource_error", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_ConfigResource_error in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_ConfigResource_error, __cgo_497ae96c6da8_Cfunc_rd_kafka_ConfigResource_error_string ) "_rd_kafka_ConfigResource_error_string", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_ConfigResource_error_string in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_ConfigResource_error_string) "_rd_kafka_ConfigResource_name", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_ConfigResource_name in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_ConfigResource_name) "_rd_kafka_ConfigResource_new", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_ConfigResource_new in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_ConfigResource_new) "_rd_kafka_ConfigResource_set_config", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_ConfigResource_set_config in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_ConfigResource_set_config) "_rd_kafka_ConfigResource_type", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_ConfigResource_type in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_ConfigResource_type) "_rd_kafka_ConfigSource_name", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_ConfigSource_name in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_ConfigSource_name) "_rd_kafka_CreatePartitions", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_CreatePartitions in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_CreatePartitions_result_topics, __cgo_497ae96c6da8_Cfunc_rd_kafka_CreatePartitions ) "_rd_kafka_CreatePartitions_result_topics", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_CreatePartitions_result_topics in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_CreatePartitions_result_topics) "_rd_kafka_CreateTopics", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_CreateTopics in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_CreateTopics_result_topics, __cgo_497ae96c6da8_Cfunc_rd_kafka_CreateTopics ) "_rd_kafka_CreateTopics_result_topics", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_CreateTopics_result_topics in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_CreateTopics_result_topics) "_rd_kafka_DeleteTopic_destroy", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_DeleteTopic_destroy in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_DeleteTopic_destroy) "_rd_kafka_DeleteTopic_new", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_DeleteTopic_new in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_DeleteTopic_new) "_rd_kafka_DeleteTopics", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_DeleteTopics in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_DeleteTopics_result_topics, __cgo_497ae96c6da8_Cfunc_rd_kafka_DeleteTopics ) "_rd_kafka_DeleteTopics_result_topics", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_DeleteTopics_result_topics in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_DeleteTopics_result_topics) "_rd_kafka_DescribeConfigs", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_DescribeConfigs in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_DescribeConfigs_result_resources, __cgo_497ae96c6da8_Cfunc_rd_kafka_DescribeConfigs ) "_rd_kafka_DescribeConfigs_result_resources", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_DescribeConfigs_result_resources in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_DescribeConfigs_result_resources) "_rd_kafka_NewPartitions_destroy", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_NewPartitions_destroy in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_NewPartitions_destroy) "_rd_kafka_NewPartitions_new", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_NewPartitions_new in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_NewPartitions_new) "_rd_kafka_NewPartitions_set_replica_assignment", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_NewPartitions_set_replica_assignment in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_NewPartitions_set_replica_assignment) "_rd_kafka_NewTopic_destroy", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_NewTopic_destroy in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_NewTopic_destroy) "_rd_kafka_NewTopic_new", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_NewTopic_new in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_NewTopic_new) "_rd_kafka_NewTopic_set_config", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_NewTopic_set_config in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_NewTopic_set_config) "_rd_kafka_NewTopic_set_replica_assignment", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_NewTopic_set_replica_assignment in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_NewTopic_set_replica_assignment) "_rd_kafka_ResourceType_name", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_ResourceType_name in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_ResourceType_name) "_rd_kafka_abort_transaction", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_abort_transaction in _x020.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_abort_transaction) "_rd_kafka_assign", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_assign in _x007.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_assignment_lost, __cgo_497ae96c6da8_Cfunc_rd_kafka_assignment , __cgo_497ae96c6da8_Cfunc_rd_kafka_assign ) "_rd_kafka_assignment", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_assignment in _x007.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_assignment_lost, __cgo_497ae96c6da8_Cfunc_rd_kafka_assignment ) "_rd_kafka_assignment_lost", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_assignment_lost in _x007.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_assignment_lost) "_rd_kafka_begin_transaction", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_begin_transaction in _x020.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_begin_transaction) "_rd_kafka_clusterid", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_clusterid in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_clusterid) "_rd_kafka_commit_queue", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_commit_queue in _x007.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_commit_queue) "_rd_kafka_commit_transaction", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_commit_transaction in _x020.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_commit_transaction) "_rd_kafka_committed", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_committed in _x007.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_committed) "_rd_kafka_conf_destroy", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_conf_destroy in _x006.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_conf_destroy) "_rd_kafka_conf_new", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_conf_new in _x006.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_conf_new) "_rd_kafka_conf_set", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_conf_set in _x006.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_conf_set_default_topic_conf, __cgo_497ae96c6da8_Cfunc_rd_kafka_conf_set , __cgo_497ae96c6da8_Cfunc_rd_kafka_conf_set_events ) "_rd_kafka_conf_set_default_topic_conf", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_conf_set_default_topic_conf in _x006.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_conf_set_default_topic_conf) "_rd_kafka_conf_set_events", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_conf_set_events in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_conf_set_events) "_rd_kafka_consumer_close", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_consumer_close in _x007.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_consumer_close) "_rd_kafka_consumer_group_metadata", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_consumer_group_metadata in _x007.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_consumer_group_metadata_write, __cgo_497ae96c6da8_Cfunc_rd_kafka_consumer_group_metadata , __cgo_497ae96c6da8_Cfunc_rd_kafka_consumer_group_metadata_read , __cgo_497ae96c6da8_Cfunc_rd_kafka_consumer_group_metadata_destroy , __cgo_497ae96c6da8_Cfunc_rd_kafka_consumer_group_metadata_new ) "_rd_kafka_consumer_group_metadata_destroy", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_consumer_group_metadata_destroy in _x007.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_consumer_group_metadata_destroy) "_rd_kafka_consumer_group_metadata_new", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_consumer_group_metadata_new in _x007.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_consumer_group_metadata_new) "_rd_kafka_consumer_group_metadata_read", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_consumer_group_metadata_read in _x007.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_consumer_group_metadata_read) "_rd_kafka_consumer_group_metadata_write", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_consumer_group_metadata_write in _x007.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_consumer_group_metadata_write) "_rd_kafka_controllerid", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_controllerid in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_controllerid) "_rd_kafka_destroy", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_destroy in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_destroy) "_rd_kafka_err2name", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_err2name in _x007.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_err2name) "_rd_kafka_err2str", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_err2str in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_err2str) "_rd_kafka_error_code", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_error_code in _x008.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_error_code) "_rd_kafka_error_destroy", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_error_destroy in _x008.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_error_destroy) "_rd_kafka_error_is_fatal", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_error_is_fatal in _x008.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_error_is_fatal) "_rd_kafka_error_is_retriable", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_error_is_retriable in _x008.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_error_is_retriable) "_rd_kafka_error_string", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_error_string in _x008.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_error_string) "_rd_kafka_error_txn_requires_abort", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_error_txn_requires_abort in _x008.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_error_txn_requires_abort) "_rd_kafka_event_AlterConfigs_result", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_event_AlterConfigs_result in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_event_AlterConfigs_result) "_rd_kafka_event_CreatePartitions_result", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_event_CreatePartitions_result in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_event_CreatePartitions_result) "_rd_kafka_event_CreateTopics_result", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_event_CreateTopics_result in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_event_CreateTopics_result) "_rd_kafka_event_DeleteTopics_result", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_event_DeleteTopics_result in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_event_DeleteTopics_result) "_rd_kafka_event_DescribeConfigs_result", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_event_DescribeConfigs_result in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_event_DescribeConfigs_result) "_rd_kafka_event_config_string", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_event_config_string in _x010.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_event_config_string) "_rd_kafka_event_destroy", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_event_destroy in _x003.o __rk_queue_poll in _x010.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_event_destroy) "_rd_kafka_event_error", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_event_error in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_event_error_is_fatal, __cgo_497ae96c6da8_Cfunc_rd_kafka_event_error , __cgo_497ae96c6da8_Cfunc_rd_kafka_event_error_string ) "_rd_kafka_event_error_is_fatal", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_event_error_is_fatal in _x010.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_event_error_is_fatal) "_rd_kafka_event_error_string", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_event_error_string in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_event_error_string) "_rd_kafka_event_log", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_event_log in _x015.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_event_log) "_rd_kafka_event_message_array", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_event_message_array in _x010.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_event_message_array) "_rd_kafka_event_message_count", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_event_message_count in _x010.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_event_message_count) "_rd_kafka_event_message_next", referenced from: __rk_queue_poll in _x010.o "_rd_kafka_event_name", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_event_name in _x007.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_event_name) "_rd_kafka_event_stats", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_event_stats in _x010.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_event_stats) "_rd_kafka_event_topic_partition", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_event_topic_partition in _x010.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_event_topic_partition, __cgo_497ae96c6da8_Cfunc_rd_kafka_event_topic_partition_list ) "_rd_kafka_event_topic_partition_list", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_event_topic_partition_list in _x007.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_event_topic_partition_list) "_rd_kafka_event_type", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_event_type in _x003.o __rk_queue_poll in _x010.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_event_type) "_rd_kafka_fatal_error", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_fatal_error in _x008.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_fatal_error) "_rd_kafka_get_err_descs", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_get_err_descs in _x009.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_get_err_descs) "_rd_kafka_get_watermark_offsets", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_get_watermark_offsets in _x017.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_get_watermark_offsets) "_rd_kafka_header_add", referenced from: _tmphdrs_to_chdrs in _x020.o "_rd_kafka_header_cnt", referenced from: _chdrs_to_tmphdrs in _x010.o __rk_queue_poll in _x010.o __cgo_497ae96c6da8_Cfunc_chdrs_to_tmphdrs in _x010.o "_rd_kafka_header_get_all", referenced from: _chdrs_to_tmphdrs in _x010.o __rk_queue_poll in _x010.o __cgo_497ae96c6da8_Cfunc_chdrs_to_tmphdrs in _x010.o "_rd_kafka_headers_destroy", referenced from: _do_produce in _x020.o __cgo_497ae96c6da8_Cfunc_do_produce in _x020.o "_rd_kafka_headers_new", referenced from: _tmphdrs_to_chdrs in _x020.o "_rd_kafka_incremental_assign", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_incremental_assign in _x007.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_incremental_assign) "_rd_kafka_incremental_unassign", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_incremental_unassign in _x007.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_incremental_unassign) "_rd_kafka_init_transactions", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_init_transactions in _x020.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_init_transactions) "_rd_kafka_last_error", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_last_error in _x012.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_last_error) "_rd_kafka_mem_free", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_mem_free in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_mem_free) "_rd_kafka_message_headers", referenced from: _chdrs_to_tmphdrs in _x010.o __rk_queue_poll in _x010.o __cgo_497ae96c6da8_Cfunc_chdrs_to_tmphdrs in _x010.o "_rd_kafka_message_timestamp", referenced from: __rk_queue_poll in _x010.o "_rd_kafka_metadata", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_metadata in _x017.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_metadata, __cgo_497ae96c6da8_Cfunc_rd_kafka_metadata_destroy ) "_rd_kafka_metadata_destroy", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_metadata_destroy in _x017.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_metadata_destroy) "_rd_kafka_name", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_name in _x012.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_name) "_rd_kafka_new", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_new in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_new) "_rd_kafka_oauthbearer_set_token", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_oauthbearer_set_token in _x012.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_oauthbearer_set_token, __cgo_497ae96c6da8_Cfunc_rd_kafka_oauthbearer_set_token_failure ) "_rd_kafka_oauthbearer_set_token_failure", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_oauthbearer_set_token_failure in _x012.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_oauthbearer_set_token_failure) "_rd_kafka_offsets_for_times", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_offsets_for_times in _x019.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_offsets_for_times) "_rd_kafka_offsets_store", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_offsets_store in _x007.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_offsets_store) "_rd_kafka_outq_len", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_outq_len in _x020.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_outq_len) "_rd_kafka_pause_partitions", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_pause_partitions in _x007.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_pause_partitions) "_rd_kafka_poll_set_consumer", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_poll_set_consumer in _x007.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_poll_set_consumer) "_rd_kafka_position", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_position in _x007.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_position) "_rd_kafka_produce_batch", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_produce_batch in _x020.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_produce_batch) "_rd_kafka_producev", referenced from: _do_produce in _x020.o __cgo_497ae96c6da8_Cfunc_do_produce in _x020.o "_rd_kafka_purge", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_purge in _x020.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_purge) "_rd_kafka_query_watermark_offsets", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_query_watermark_offsets in _x017.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_query_watermark_offsets) "_rd_kafka_queue_destroy", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_queue_destroy in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_queue_destroy) "_rd_kafka_queue_get_consumer", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_queue_get_consumer in _x007.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_queue_get_consumer) "_rd_kafka_queue_get_main", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_queue_get_main in _x007.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_queue_get_main) "_rd_kafka_queue_length", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_queue_length in _x007.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_queue_length) "_rd_kafka_queue_new", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_queue_new in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_queue_new) "_rd_kafka_queue_poll", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_queue_poll in _x003.o __rk_queue_poll in _x010.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_queue_poll) "_rd_kafka_rebalance_protocol", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_rebalance_protocol in _x007.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_rebalance_protocol) "_rd_kafka_resume_partitions", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_resume_partitions in _x007.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_resume_partitions) "_rd_kafka_seek", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_seek in _x007.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_seek) "_rd_kafka_send_offsets_to_transaction", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_send_offsets_to_transaction in _x020.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_send_offsets_to_transaction) "_rd_kafka_set_log_queue", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_set_log_queue in _x012.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_set_log_queue) "_rd_kafka_subscribe", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_subscribe in _x007.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_subscribe) "_rd_kafka_subscription", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_subscription in _x007.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_subscription) "_rd_kafka_test_fatal_error", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_test_fatal_error in _x008.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_test_fatal_error) "_rd_kafka_topic_conf_destroy", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_topic_conf_destroy in _x006.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_topic_conf_destroy) "_rd_kafka_topic_conf_new", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_topic_conf_new in _x006.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_topic_conf_new) "_rd_kafka_topic_conf_set", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_topic_conf_set in _x006.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_topic_conf_set) "_rd_kafka_topic_destroy", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_topic_destroy in _x012.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_topic_destroy) "_rd_kafka_topic_name", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_topic_name in _x012.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_topic_name) "_rd_kafka_topic_new", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_topic_new in _x012.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_topic_new) "_rd_kafka_topic_partition_destroy", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_topic_partition_destroy in _x010.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_topic_partition_destroy) "_rd_kafka_topic_partition_list_add", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_topic_partition_list_add in _x007.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_topic_partition_list_add) "_rd_kafka_topic_partition_list_destroy", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_topic_partition_list_destroy in _x007.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_topic_partition_list_destroy) "_rd_kafka_topic_partition_list_new", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_topic_partition_list_new in _x007.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_topic_partition_list_new) "_rd_kafka_topic_result_error", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_topic_result_error in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_topic_result_error_string, __cgo_497ae96c6da8_Cfunc_rd_kafka_topic_result_error ) "_rd_kafka_topic_result_error_string", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_topic_result_error_string in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_topic_result_error_string) "_rd_kafka_topic_result_name", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_topic_result_name in _x003.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_topic_result_name) "_rd_kafka_unsubscribe", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_unsubscribe in _x007.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_unsubscribe) "_rd_kafka_version", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_version in _x014.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_version, __cgo_497ae96c6da8_Cfunc_rd_kafka_version_str ) "_rd_kafka_version_str", referenced from: __cgo_497ae96c6da8_Cfunc_rd_kafka_version_str in _x009.o (maybe you meant: __cgo_497ae96c6da8_Cfunc_rd_kafka_version_str) ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

It seems like the build tags are not passed to go listand this causes the trouble.
When I run
go list -e -json -compiled=true -test=true -export=false -deps=true -find=false -tags -- I get the same error.
And when I run
go list -e -json -compiled=true -test=true -export=false -deps=true -find=false -tags=dynamic -- I don't have any problems.

Steps to reproduce the behavior:

You'll need an ARM processor to reproduce the exact same problem.

  1. Create an empty Go project.
  2. import github.com/confluentinc/confluent-kafka-go.
  3. Set the settings like mentioned above.
  4. Run Go: Fill struct
@gopherbot gopherbot added this to the Untriaged milestone Mar 15, 2022
@miro-ko miro-ko changed the title gopls' fillstruct does does pick up build tags gopls' fillstruct does not pick up build tags Mar 15, 2022
@suzmue
Copy link
Contributor

suzmue commented Mar 15, 2022

@miro-ko Could you include your gopls logs? Instructions here.

I want to see if the build tags are successfully being passed to gopls. The extension started forwarding go.buildTags in v0.20.0.

@suzmue suzmue added the WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided. label Mar 15, 2022
@miro-ko
Copy link
Author

miro-ko commented Mar 16, 2022

@suzmue See the log below.

I added the two settings entries as described in your instructions, restarted VS Code and ran Go: Fill struct again. But, it seems that nothing is logged that is related to the problem.

[Trace - 10:58:49.240 AM] Sending request 'textDocument/codeLens - (17)'.
Params: {"textDocument":{"uri":"file:///Users/miroslavkovalenko/Dropbox-BM/Code/my-app/internal/handlers/techstate/display.go"}}


[Trace - 10:58:49.240 AM] Received response 'textDocument/codeLens - (17)' in 0ms.
Result: null

@hyangah
Copy link
Contributor

hyangah commented Mar 16, 2022

@miro-ko The configuration messages and relevant logging are at the beginning of the trace. Can you include
initialize message request (seq 1), workspace/configuration request/responses (seq 2), and [Info -...] log message that prints out go env output?

@miro-ko
Copy link
Author

miro-ko commented Mar 17, 2022

@hyangah See the requested logs attached.
gopls.log

@hyangah
Copy link
Contributor

hyangah commented Mar 25, 2022

Sorry for the delay - somehow it fell through the crack.

I see that the build flag was forwarded correctly to the gopls from the trace.

[Trace - 09: 29: 16.501 AM
] Sending response 'workspace/configuration - (2)' in 2ms.
Result: [
  {
    "formatting.local": "bitbucket.org/my-company",
    "verboseOutput": true,
    "build.buildFlags": [
      "-tags",
      "dynamic"
    ]
  }
]
...

[Info  - 9:29:16 AM] 2022/03/17 09:29:16 go env for /Users/miroslavkovalenko/Dropbox-BM/Code/my-app-alert-and-tech-state-consumer-daemon
(root /Users/miroslavkovalenko/Dropbox-BM/Code/my-app-alert-and-tech-state-consumer-daemon)
(go version go version go1.17.8 darwin/arm64)
(valid build configuration = true)
(build flags: [-tags dynamic])
...

But as @miro-ko originally reported, gopls didn't seem to use the build flag when running go list for fillstruct.

Cannot fill struct: fillstruct: go [list -e -json -compiled=true -test=true -export=false -deps=true -find=false -tags --]: exit

I suspected gopls forgot to forward the build tags, so I tried to create a small reproducer, but failed.

I tried to create two files that provides two different definitions for the same name. Fill struct seems to pick up the right one guarded by the build tag. :-(
@findleyr Do you have any suggestion to create a reproducer or get more info? Or is it a known gopls issue?

@hyangah hyangah added gopls gopls related issues NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. and removed WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided. labels Mar 25, 2022
@findleyr
Copy link
Contributor

It's not a known gopls issue, but I'd believe it if there is a bug here.

I can try to investigate, since I am looking at build tags now anyway.

@hyangah
Copy link
Contributor

hyangah commented Apr 1, 2022

@miro-ko Just in case, it would be super-helpful if you can help with creating a repro case. My attempt to create one wasn't successful. Thanks!

@hyangah hyangah added the WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided. label Apr 1, 2022
@miro-ko
Copy link
Author

miro-ko commented Apr 22, 2022

@hyangah Sorry for late response. I think I found a reproducer.

main.go

package main

type Foo struct {
	a int
	b Bar
}

func main() {
	_ = Foo{

	}
}

a.go

//go:build a

package main

type Bar struct {
	a int
	b int
}

.vscode/settings.json

{
  "go.buildTags": "a"
}

When we try to Fill struct in the main.go the struct only fills in field a not b.

It's not a 100% reproducer since it doesn't throw an error but it shows at least that Fill struct does not take into account the build tags.

To reproduce it even better there would be nice to see what command Fill struct executes, unfortunately I can't find anything like that in the logs.

@hyangah hyangah removed the WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided. label Apr 25, 2022
@hyangah
Copy link
Contributor

hyangah commented Apr 25, 2022

@miro-ko Thanks for sharing the example. I cannot reproduce the issue with gopls's fill struct function.

fillfoo.mp4

In the above video clip - you can either click the light bulb, or trigger the code action using Cmd+. (or Ctrl+. on linux)

I am guessing you are using the old "Go: Fill struct" command. Can you check please confirm?

@golang/tools-team we should replace with gopls' code action, or deactivate the "Go: Fill struct" command when gopls is enabled.

@hyangah hyangah modified the milestones: Untriaged, On Deck Apr 28, 2022
@hyangah hyangah changed the title gopls' fillstruct does not pick up build tags Deactivate or reimplement "Go: Fill struct" command if gopls is used Apr 28, 2022
@miro-ko
Copy link
Author

miro-ko commented Apr 29, 2022

@hyangah Indeed, I always use "Go: Fill struct" command. The Cmd+. trick worked well! Thanks!

@yuki2006
Copy link

yuki2006 commented Jun 5, 2022

"Go: Fill struct" were cases where it did not complete properly.

There may no longer be much benefit in using the "Go: Fill struct" command, so it may be discontinued.

2022-05-21.17.12.50.mov

@gopherbot
Copy link
Collaborator

Change https://go.dev/cl/538755 mentions this issue: src/goFillStruct: use gopls's fill struct feature

@hyangah hyangah modified the milestones: vscode-go/backlog, v0.40.0 Oct 31, 2023
@hyangah
Copy link
Contributor

hyangah commented Oct 31, 2023

In cl/538755, I tried to replace the legacy "Go: Fill struct" command by invoking the code action provided by gopls.
The implementation is basically the following.

export const runFillStruct: CommandFactory = () => async (editor = vscode.window.activeTextEditor) => {
	await vscode.commands.executeCommand('editor.action.codeAction', {
		kind: 'refactor.rewrite',
		apply: 'ifSingle',
	});
};

That is exactly same as Cmd+. default keybinding. I agree with @yuki2006 's assessment - "Go: Fill struct" command is a no longer useful addition and removal makes more sense than reimplementing it. That will give VS Code users consistent experience across all languages. @suzmue If you also agree, I will change the cl/538755 to just delete the command. We will mention this deprecation in the release note.

@sys-xander
Copy link

hi

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
gopls gopls related issues NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.
Projects
None yet
Development

No branches or pull requests

7 participants