---
name: "gotype"
section: "1"
platform: "linux"
package: "golang-golang-x-tools"
version: "1:0.25.0+ds-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/gotype"
---

# gotype(1)

syntatic and semantic analysis of Go files

## NAME

gotype - syntatic and semantic analysis of Go files

## SYNOPSIS

**gotype** \[*flags*\] \[ *path ...* \]

## DESCRIPTION

The gotype command does syntactic and semantic analysis of Go files and packages like the front-end of a Go compiler. Errors are reported if the analysis fails; otherwise gotype is quiet (unless -v is set).

Without a list of paths, gotype reads from standard input, which must provide a single Go source file defining a complete package.

If a single path is specified that is a directory, gotype checks the Go files in that directory; they must all belong to the same package.

Otherwise, each path must be the filename of Go file belonging to the same package.

## OPTIONS

- **-a**

  use all (incl. \_test.go) files when processing a directory

- **-ast**

  print AST (forces -seq)

- **-comments**

  parse comments (ignored unless -ast or -trace is provided)

- **-e**

  report all errors (not just the first 10)

- **-seq**

  parse sequentially, rather than in parallel

- **-trace**

  print parse trace (forces -seq)

- **-v**

  verbose mode

## EXAMPLES

To check the files a.go, b.go, and c.go:

```
      gotype a.go b.go c.go
```

To check an entire package in the directory dir and print the processed files:

```
      gotype -v dir
```

To check an entire package including tests in the local directory:

```
      gotype -a .
```

To verify the output of a pipe:

```
      echo "package foo" | gotype
```

## AUTHOR

This manual page was written by Michael Stapelberg \<stapelberg@debian.org\>, for the Debian project (and may be used by others).
