diff --git a/android/config_test.go b/android/config_test.go
index 72942eb..274d59f 100644
--- a/android/config_test.go
+++ b/android/config_test.go
@@ -50,7 +50,7 @@
 }
 
 type configType struct {
-	populateMe *bool `json:"omitempty"`
+	PopulateMe *bool `json:"omitempty"`
 }
 
 func (c *configType) SetDefaultConfig() {
@@ -60,7 +60,7 @@
 func TestValidateConfigAnnotations(t *testing.T) {
 	config := configType{}
 	err := validateConfigAnnotations(&config)
-	expectedError := `Field configType.populateMe has tag json:"omitempty" which specifies to change its json field name to "omitempty".
+	expectedError := `Field configType.PopulateMe has tag json:"omitempty" which specifies to change its json field name to "omitempty".
 Did you mean to use an annotation of ",omitempty"?
 (Alternatively, to change the json name of the field, rename the field in source instead.)`
 	if err.Error() != expectedError {
diff --git a/android/makevars.go b/android/makevars.go
index accc4d3..3a7ec6e 100644
--- a/android/makevars.go
+++ b/android/makevars.go
@@ -153,7 +153,7 @@
 func (s *makeVarsSingleton) writeVars(vars []makeVarsVariable) []byte {
 	buf := &bytes.Buffer{}
 
-	fmt.Fprintln(buf, `# Autogenerated file
+	fmt.Fprint(buf, `# Autogenerated file
 
 # Compares SOONG_$(1) against $(1), and warns if they are not equal.
 #
@@ -201,7 +201,7 @@
 		fmt.Fprintf(buf, "$(eval $(call soong-compare-var,%s,%s,my_check_failed := true))\n\n", v.name, sort)
 	}
 
-	fmt.Fprintln(buf, `
+	fmt.Fprint(buf, `
 ifneq ($(my_check_failed),false)
   $(error Soong variable check failed)
 endif
diff --git a/android/namespace.go b/android/namespace.go
index 0230524..b027ceb 100644
--- a/android/namespace.go
+++ b/android/namespace.go
@@ -94,10 +94,8 @@
 }
 
 func NewNameResolver(namespaceExportFilter func(*Namespace) bool) *NameResolver {
-	namespacesByDir := sync.Map{}
-
 	r := &NameResolver{
-		namespacesByDir:       namespacesByDir,
+		namespacesByDir:       sync.Map{},
 		namespaceExportFilter: namespaceExportFilter,
 	}
 	r.rootNamespace = r.newNamespace(".")
diff --git a/bpfix/bpfix/bpfix.go b/bpfix/bpfix/bpfix.go
index 056a01b..24a38c9 100644
--- a/bpfix/bpfix/bpfix.go
+++ b/bpfix/bpfix/bpfix.go
@@ -141,7 +141,6 @@
 		i++
 		if i >= maxNumIterations {
 			return nil, fmt.Errorf("Applied fixes %d times and yet the tree continued to change. Is there an infinite loop?", i)
-			break
 		}
 	}
 	return f.tree, err
diff --git a/cc/cc.go b/cc/cc.go
index 89d45a9..f8a8225 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -991,33 +991,41 @@
 		actx.AddVariationDependencies(nil, depTag, lib)
 	}
 
-	actx.AddVariationDependencies([]blueprint.Variation{{"link", "static"}}, wholeStaticDepTag,
-		deps.WholeStaticLibs...)
+	actx.AddVariationDependencies([]blueprint.Variation{
+		{Mutator: "link", Variation: "static"},
+	}, wholeStaticDepTag, deps.WholeStaticLibs...)
 
 	for _, lib := range deps.StaticLibs {
 		depTag := staticDepTag
 		if inList(lib, deps.ReexportStaticLibHeaders) {
 			depTag = staticExportDepTag
 		}
-		actx.AddVariationDependencies([]blueprint.Variation{{"link", "static"}}, depTag, lib)
+		actx.AddVariationDependencies([]blueprint.Variation{
+			{Mutator: "link", Variation: "static"},
+		}, depTag, lib)
 	}
 
-	actx.AddVariationDependencies([]blueprint.Variation{{"link", "static"}}, lateStaticDepTag,
-		deps.LateStaticLibs...)
+	actx.AddVariationDependencies([]blueprint.Variation{
+		{Mutator: "link", Variation: "static"},
+	}, lateStaticDepTag, deps.LateStaticLibs...)
 
 	for _, lib := range deps.SharedLibs {
 		depTag := sharedDepTag
 		if inList(lib, deps.ReexportSharedLibHeaders) {
 			depTag = sharedExportDepTag
 		}
-		actx.AddVariationDependencies([]blueprint.Variation{{"link", "shared"}}, depTag, lib)
+		actx.AddVariationDependencies([]blueprint.Variation{
+			{Mutator: "link", Variation: "shared"},
+		}, depTag, lib)
 	}
 
-	actx.AddVariationDependencies([]blueprint.Variation{{"link", "shared"}}, lateSharedDepTag,
-		deps.LateSharedLibs...)
+	actx.AddVariationDependencies([]blueprint.Variation{
+		{Mutator: "link", Variation: "shared"},
+	}, lateSharedDepTag, deps.LateSharedLibs...)
 
-	actx.AddVariationDependencies([]blueprint.Variation{{"link", "shared"}}, runtimeDepTag,
-		deps.RuntimeLibs...)
+	actx.AddVariationDependencies([]blueprint.Variation{
+		{Mutator: "link", Variation: "shared"},
+	}, runtimeDepTag, deps.RuntimeLibs...)
 
 	actx.AddDependency(c, genSourceDepTag, deps.GeneratedSources...)
 
@@ -1043,9 +1051,13 @@
 
 	version := ctx.sdkVersion()
 	actx.AddVariationDependencies([]blueprint.Variation{
-		{"ndk_api", version}, {"link", "shared"}}, ndkStubDepTag, variantNdkLibs...)
+		{Mutator: "ndk_api", Variation: version},
+		{Mutator: "link", Variation: "shared"},
+	}, ndkStubDepTag, variantNdkLibs...)
 	actx.AddVariationDependencies([]blueprint.Variation{
-		{"ndk_api", version}, {"link", "shared"}}, ndkLateStubDepTag, variantLateNdkLibs...)
+		{Mutator: "ndk_api", Variation: version},
+		{Mutator: "link", Variation: "shared"},
+	}, ndkLateStubDepTag, variantLateNdkLibs...)
 
 	if vndkdep := c.vndkdep; vndkdep != nil {
 		if vndkdep.isVndkExt() {
@@ -1054,8 +1066,9 @@
 				baseModuleMode = coreMode
 			}
 			actx.AddVariationDependencies([]blueprint.Variation{
-				{"image", baseModuleMode}, {"link", "shared"}}, vndkExtDepTag,
-				vndkdep.getVndkExtendsModuleName())
+				{Mutator: "image", Variation: baseModuleMode},
+				{Mutator: "link", Variation: "shared"},
+			}, vndkExtDepTag, vndkdep.getVndkExtendsModuleName())
 		}
 	}
 }
diff --git a/cc/compiler.go b/cc/compiler.go
index 8d034c9..f3cf040 100644
--- a/cc/compiler.go
+++ b/cc/compiler.go
@@ -73,7 +73,7 @@
 
 	// list of directories relative to the Blueprints file that will
 	// be added to the include path using -I
-	Local_include_dirs []string `android:"arch_variant,variant_prepend",`
+	Local_include_dirs []string `android:"arch_variant,variant_prepend"`
 
 	// list of generated sources to compile. These are the names of gensrcs or
 	// genrule modules.
diff --git a/cc/config/toolchain.go b/cc/config/toolchain.go
index ea8397d..a360a17 100644
--- a/cc/config/toolchain.go
+++ b/cc/config/toolchain.go
@@ -36,7 +36,6 @@
 	factory := toolchainFactories[os][arch.ArchType]
 	if factory == nil {
 		panic(fmt.Errorf("Toolchain not found for %s arch %q", os.String(), arch.String()))
-		return nil
 	}
 	return factory(arch)
 }
diff --git a/cc/test_data_test.go b/cc/test_data_test.go
index 56c3e38..eead25b 100644
--- a/cc/test_data_test.go
+++ b/cc/test_data_test.go
@@ -15,7 +15,6 @@
 package cc
 
 import (
-	"fmt"
 	"io/ioutil"
 	"os"
 	"path/filepath"
@@ -154,7 +153,7 @@
 				path := filepath.Join(test.data[i].path, test.data[i].file)
 				if test.data[i].file != got[i].Rel() ||
 					path != got[i].String() {
-					fmt.Errorf("expected %s:%s got %s:%s",
+					t.Errorf("expected %s:%s got %s:%s",
 						path, test.data[i].file,
 						got[i].String(), got[i].Rel())
 				}
diff --git a/cmd/multiproduct_kati/main.go b/cmd/multiproduct_kati/main.go
index 9fb400f..a6bc8d5 100644
--- a/cmd/multiproduct_kati/main.go
+++ b/cmd/multiproduct_kati/main.go
@@ -159,7 +159,7 @@
 		stat.Finish()
 	})
 
-	buildCtx := build.Context{&build.ContextImpl{
+	buildCtx := build.Context{ContextImpl: &build.ContextImpl{
 		Context: ctx,
 		Logger:  log,
 		Tracer:  trace,
@@ -297,7 +297,7 @@
 			productLog := logger.New(f)
 			productLog.SetOutput(filepath.Join(productLogDir, "soong.log"))
 
-			productCtx := build.Context{&build.ContextImpl{
+			productCtx := build.Context{ContextImpl: &build.ContextImpl{
 				Context: ctx,
 				Logger:  productLog,
 				Tracer:  trace,
diff --git a/cmd/soong_ui/main.go b/cmd/soong_ui/main.go
index 47682ff..b603571 100644
--- a/cmd/soong_ui/main.go
+++ b/cmd/soong_ui/main.go
@@ -84,7 +84,7 @@
 		stat.Finish()
 	})
 
-	buildCtx := build.Context{&build.ContextImpl{
+	buildCtx := build.Context{ContextImpl: &build.ContextImpl{
 		Context: ctx,
 		Logger:  log,
 		Tracer:  trace,
diff --git a/finder/fs/fs.go b/finder/fs/fs.go
index 9c138cd..071f764 100644
--- a/finder/fs/fs.go
+++ b/finder/fs/fs.go
@@ -243,7 +243,6 @@
 	if parentPath == path {
 		err = fmt.Errorf("Internal error: %v yields itself as a parent", path)
 		panic(err.Error())
-		return "", fmt.Errorf("Internal error: %v yields itself as a parent", path)
 	}
 
 	parentPath, err = m.followLinks(parentPath, true, count)
diff --git a/genrule/genrule.go b/genrule/genrule.go
index 03d4ea6..8fedc60 100644
--- a/genrule/genrule.go
+++ b/genrule/genrule.go
@@ -142,7 +142,7 @@
 	if g, ok := ctx.Module().(*Module); ok {
 		if len(g.properties.Tools) > 0 {
 			ctx.AddFarVariationDependencies([]blueprint.Variation{
-				{"arch", ctx.Config().BuildOsVariant},
+				{Mutator: "arch", Variation: ctx.Config().BuildOsVariant},
 			}, hostToolDepTag, g.properties.Tools...)
 		}
 	}
diff --git a/java/java.go b/java/java.go
index 99af2f5..53f851b 100644
--- a/java/java.go
+++ b/java/java.go
@@ -574,7 +574,7 @@
 	ctx.AddDependency(ctx.Module(), libTag, j.properties.Libs...)
 	ctx.AddDependency(ctx.Module(), staticLibTag, j.properties.Static_libs...)
 	ctx.AddFarVariationDependencies([]blueprint.Variation{
-		{"arch", ctx.Config().BuildOsCommonVariant},
+		{Mutator: "arch", Variation: ctx.Config().BuildOsCommonVariant},
 	}, annoTag, j.properties.Annotation_processors...)
 	android.ExtractSourcesDeps(ctx, j.properties.Srcs)
 	android.ExtractSourcesDeps(ctx, j.properties.Exclude_srcs)
diff --git a/python/python.go b/python/python.go
index feb17da..e8b4713 100644
--- a/python/python.go
+++ b/python/python.go
@@ -306,7 +306,7 @@
 		if p.bootstrapper != nil && p.isEmbeddedLauncherEnabled(pyVersion2) {
 			ctx.AddVariationDependencies(nil, pythonLibTag, "py2-stdlib")
 			ctx.AddFarVariationDependencies([]blueprint.Variation{
-				{"arch", ctx.Target().String()},
+				{Mutator: "arch", Variation: ctx.Target().String()},
 			}, launcherTag, "py2-launcher")
 		}
 
diff --git a/ui/build/environment.go b/ui/build/environment.go
index 8589937..cbeeb4b 100644
--- a/ui/build/environment.go
+++ b/ui/build/environment.go
@@ -134,7 +134,7 @@
 		if cmd[0] == "unset" {
 			str, ok := singleUnquote(cmd[1])
 			if !ok {
-				fmt.Errorf("Failed to unquote kati line: %q", text)
+				return fmt.Errorf("Failed to unquote kati line: %q", text)
 			}
 			e.Unset(str)
 		} else if cmd[0] == "export" {
diff --git a/ui/status/ninja.go b/ui/status/ninja.go
index 7d330f9..4ceb5ef 100644
--- a/ui/status/ninja.go
+++ b/ui/status/ninja.go
@@ -43,7 +43,7 @@
 func ninjaReader(status ToolStatus, fifo string) {
 	f, err := os.Open(fifo)
 	if err != nil {
-		status.Error(fmt.Sprintf("Failed to open fifo:", err))
+		status.Error(fmt.Sprintf("Failed to open fifo: %v", err))
 	}
 	defer f.Close()
 
