Split TIntermInvariantDeclaration from TIntermAggregate

This change is pure refactoring and doesn't fix bugs related to
invariant declarations. Invariant declarations are supposed to accept
a list of identifiers, but this refactoring keeps the current behavior
of only accepting a single identifier in an invariant declaration.
When the bug will be fixed, the new TIntermInvariantDeclaration class
that now has only a single child node can be changed so that it may
have multiple children.

TIntermAggregate is still used for function calls, function
prototypes and function parameter lists.

BUG=angleproject:1490
TEST=angle_unittests

Change-Id: I3e22092c87e1c06445fd7e123d9922c2fcb59428
Reviewed-on: https://chromium-review.googlesource.com/419415
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
diff --git a/src/compiler/translator/RemoveInvariantDeclaration.cpp b/src/compiler/translator/RemoveInvariantDeclaration.cpp
index f6f0163..d5e12ba 100644
--- a/src/compiler/translator/RemoveInvariantDeclaration.cpp
+++ b/src/compiler/translator/RemoveInvariantDeclaration.cpp
@@ -22,16 +22,12 @@
     RemoveInvariantDeclarationTraverser() : TIntermTraverser(true, false, false) {}
 
   private:
-    bool visitAggregate(Visit visit, TIntermAggregate *node) override
+    bool visitInvariantDeclaration(Visit visit, TIntermInvariantDeclaration *node) override
     {
-        if (node->getOp() == EOpInvariantDeclaration)
-        {
-            TIntermSequence emptyReplacement;
-            mMultiReplacements.push_back(NodeReplaceWithMultipleEntry(getParentNode()->getAsBlock(),
-                                                                      node, emptyReplacement));
-            return false;
-        }
-        return true;
+        TIntermSequence emptyReplacement;
+        mMultiReplacements.push_back(
+            NodeReplaceWithMultipleEntry(getParentNode()->getAsBlock(), node, emptyReplacement));
+        return false;
     }
 };