Clean up ValidateOutputs

Remove the validateOutputs method from Compiler and replace it with a
static method alongside the traverser. This encapsulates the
ValidateOutputs implementation better.

TEST=angle_unittests
BUG=angleproject:2068

Change-Id: I1788cb9726db41ca35fd0e746f8d48ced7fee74f
Reviewed-on: https://chromium-review.googlesource.com/535477
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/compiler/translator/Compiler.cpp b/src/compiler/translator/Compiler.cpp
index 46da806..909bb96 100644
--- a/src/compiler/translator/Compiler.cpp
+++ b/src/compiler/translator/Compiler.cpp
@@ -366,7 +366,10 @@
             PruneEmptyDeclarations(root);
 
         if (success && shaderVersion >= 300 && shaderType == GL_FRAGMENT_SHADER)
-            success = validateOutputs(root);
+        {
+            success = ValidateOutputs(root, getExtensionBehavior(), compileResources.MaxDrawBuffers,
+                                      &mDiagnostics);
+        }
 
         if (success && shouldRunLoopAndIndexingValidation(compileOptions))
             success =
@@ -874,14 +877,6 @@
     return true;
 }
 
-bool TCompiler::validateOutputs(TIntermNode *root)
-{
-    ValidateOutputs validateOutputs(getExtensionBehavior(), compileResources.MaxDrawBuffers);
-    root->traverse(&validateOutputs);
-    validateOutputs.validate(&mDiagnostics);
-    return (mDiagnostics.numErrors() == 0);
-}
-
 bool TCompiler::limitExpressionComplexity(TIntermBlock *root)
 {
     TMaxDepthTraverser traverser(maxExpressionComplexity + 1);