0

I have a C header file leddimer.h with typedef

typedef struct leddimer_s
{
        int id;
} leddimer_t;

Then I have main.go file

package main

//#cgo CFLAGS: -I /Users/dd/projects/cgotypedef/
// #include "leddimer.h"
import "C"

type dimer interface {
    dim()
}

func (l C.leddimer_t) dim() {}

func main() {
    var led C.leddimer_t
    led.dim()
}

The code compiles and runs perfectly, but VSCODE Language Server (gopls) telling me there is a problem

led.dim undefined (type _Ctype_struct_leddimer_s has no field or method dim)

enter image description here

I am running go version 1.17.6. VSCode version 1.63. The problem reproduces on Linux and MacOS

  • What does gopls say if you run "regenerate cgo definitions" codelense above `"import "C"`? – Hana Feb 01 '22 at 14:51
  • @Hana clicking on "regenerate cgo definitions" does not help. I do not see any outputs either. However, I should mention that regenerating cgo definitions does help in other cases. – Dmitrii Dunaev Feb 02 '22 at 08:49

0 Answers0