diff --git a/src/gn/command_refs.cc b/src/gn/command_refs.cc
index e2bcdb5..b5ad605 100644
--- a/src/gn/command_refs.cc
+++ b/src/gn/command_refs.cc
@@ -358,18 +358,19 @@
   bool tree = cmdline->HasSwitch("tree");
   bool all = cmdline->HasSwitch("all");
   UniqueVector<HowTargetContainsFile> include_relations;
-  for (const std::string& relation : cmdline->GetSwitchValueStrings("relation")){
-    if (relation == "source"){
+  for (const std::string& relation :
+       cmdline->GetSwitchValueStrings("relation")) {
+    if (relation == "source") {
       include_relations.push_back(HowTargetContainsFile::kSources);
-    } else if (relation == "public"){
+    } else if (relation == "public") {
       include_relations.push_back(HowTargetContainsFile::kPublic);
-    } else if (relation == "input"){
+    } else if (relation == "input") {
       include_relations.push_back(HowTargetContainsFile::kInputs);
-    } else if (relation == "data"){
+    } else if (relation == "data") {
       include_relations.push_back(HowTargetContainsFile::kData);
-    } else if (relation == "script"){
+    } else if (relation == "script") {
       include_relations.push_back(HowTargetContainsFile::kScript);
-    } else if (relation == "output"){
+    } else if (relation == "output") {
       include_relations.push_back(HowTargetContainsFile::kOutput);
     } else {
       Err(Location(), "Unknown relation: " + relation).PrintToStdout();
diff --git a/src/gn/functions.cc b/src/gn/functions.cc
index 85da001..246e668 100644
--- a/src/gn/functions.cc
+++ b/src/gn/functions.cc
@@ -1179,8 +1179,7 @@
 
   // Check usage: argument is a string.
   if (!args[0].VerifyTypeIs(Value::STRING, err)) {
-    *err = Err(function,
-               "argument of string_hash is not a string",
+    *err = Err(function, "argument of string_hash is not a string",
                "Expecting argument to be a string.");
     return Value();
   }
