diff --git a/dwtest/testdata/dwdumploc.go b/dwtest/testdata/dwdumploc.go
index 69ee702..60bca95 100644
--- a/dwtest/testdata/dwdumploc.go
+++ b/dwtest/testdata/dwdumploc.go
@@ -98,7 +98,6 @@
 
 // elfOpener implements the opener interface for ELF
 // (https://en.wikipedia.org/wiki/Executable_and_Linkable_Format) binaries
-//
 type elfOpener struct {
 }
 
diff --git a/internal/core/core_test.go b/internal/core/core_test.go
index 1b5be13..654422e 100644
--- a/internal/core/core_test.go
+++ b/internal/core/core_test.go
@@ -14,10 +14,12 @@
 
 // loadExample loads a simple core file which resulted from running the
 // following program on linux/amd64 with go 1.9.0 (the earliest supported runtime):
-// package main
-// func main() {
-//         _ = *(*int)(nil)
-// }
+//
+//	package main
+//
+//	func main() {
+//		_ = *(*int)(nil)
+//	}
 func loadExample(t *testing.T, useExePath bool) *Process {
 	t.Helper()
 	var p *Process
diff --git a/internal/gocore/dwarf.go b/internal/gocore/dwarf.go
index c5cc173..0fc1d44 100644
--- a/internal/gocore/dwarf.go
+++ b/internal/gocore/dwarf.go
@@ -252,9 +252,10 @@
 // gocoreName generates the name this package uses to refer to a dwarf type.
 // This name differs from the dwarf name in that it stays closer to the Go name for the type.
 // For instance (dwarf name -> gocoreName)
-//   struct runtime.siginfo -> runtime.siginfo
-//   *void -> unsafe.Pointer
-//   struct struct { runtime.signalLock uint32; runtime.hz int32 } -> struct { signalLock uint32; hz int32 }
+//
+//	struct runtime.siginfo -> runtime.siginfo
+//	*void -> unsafe.Pointer
+//	struct struct { runtime.signalLock uint32; runtime.hz int32 } -> struct { signalLock uint32; hz int32 }
 func gocoreName(dt dwarf.Type) string {
 	switch x := dt.(type) {
 	case *dwarf.PtrType:
diff --git a/internal/gocore/gocore_test.go b/internal/gocore/gocore_test.go
index d233296..ece0b56 100644
--- a/internal/gocore/gocore_test.go
+++ b/internal/gocore/gocore_test.go
@@ -25,10 +25,12 @@
 
 // loadTest loads a simple core file which resulted from running the
 // following program on linux/amd64 with go 1.9.0 (the earliest supported runtime):
-// package main
-// func main() {
-//         _ = *(*int)(nil)
-// }
+//
+//	package main
+//
+//	func main() {
+//		_ = *(*int)(nil)
+//	}
 func loadExample(t *testing.T) *Process {
 	t.Helper()
 	if runtime.GOOS == "android" {
diff --git a/internal/gocore/object.go b/internal/gocore/object.go
index 15d1c38..88ea63c 100644
--- a/internal/gocore/object.go
+++ b/internal/gocore/object.go
@@ -247,9 +247,11 @@
 
 // ForEachPtr calls fn for all heap pointers it finds in x.
 // It calls fn with:
-//   the offset of the pointer slot in x
-//   the pointed-to object y
-//   the offset in y where the pointer points.
+//
+//	the offset of the pointer slot in x
+//	the pointed-to object y
+//	the offset in y where the pointer points.
+//
 // If fn returns false, ForEachPtr returns immediately.
 // For an edge from an object to its finalizer, the first argument
 // passed to fn will be -1. (TODO: implement)
diff --git a/internal/gocore/reverse.go b/internal/gocore/reverse.go
index 40768a3..bc1e56a 100644
--- a/internal/gocore/reverse.go
+++ b/internal/gocore/reverse.go
@@ -80,9 +80,11 @@
 
 // ForEachReversePtr calls fn for all pointers it finds pointing to y.
 // It calls fn with:
-//   the object or root which points to y (exactly one will be non-nil)
-//   the offset i in that object or root where the pointer appears.
-//   the offset j in y where the pointer points.
+//
+//	the object or root which points to y (exactly one will be non-nil)
+//	the offset i in that object or root where the pointer appears.
+//	the offset j in y where the pointer points.
+//
 // If fn returns false, ForEachReversePtr returns immediately.
 func (p *Process) ForEachReversePtr(y Object, fn func(x Object, r *Root, i, j int64) bool) {
 	p.reverseEdges()
diff --git a/internal/testenv/testenv.go b/internal/testenv/testenv.go
index a48d7de..7ceff42 100644
--- a/internal/testenv/testenv.go
+++ b/internal/testenv/testenv.go
@@ -19,7 +19,7 @@
 )
 
 // HasGoBuild reports whether the current system can build programs
-// with ``go build'' and then run them with os.StartProcess or
+// with “go build” and then run them with os.StartProcess or
 // exec.Command.
 func HasGoBuild() bool {
 	if os.Getenv("GO_GCFLAGS") != "" {
@@ -36,7 +36,7 @@
 	return true
 }
 
-// MustHaveGoBuild checks that the current system can build programs with ``go build''
+// MustHaveGoBuild checks that the current system can build programs with “go build”
 // and then run them with os.StartProcess or exec.Command.
 // If not, MustHaveGoBuild calls t.Skip with an explanation.
 func MustHaveGoBuild(t testing.TB) {
