Add a constexpr constructor for TFunction

Access to TFunction parameters is now handled through two new members:
a pointer to a parameter array and a parameter count.

There's still also a vector pointer in TFunction for adding function
parameters one by one. This is used when parsing user-defined
functions.

TEST=angle_unittests
BUG=angleproject:2267

Change-Id: I86987ae56b7cf37f010d0651e9861789050aec2b
Reviewed-on: https://chromium-review.googlesource.com/923987
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/RemoveDynamicIndexing.cpp b/src/compiler/translator/RemoveDynamicIndexing.cpp
index 155e3d1..2b77ab3 100644
--- a/src/compiler/translator/RemoveDynamicIndexing.cpp
+++ b/src/compiler/translator/RemoveDynamicIndexing.cpp
@@ -406,8 +406,8 @@
             if (mIndexedVecAndMatrixTypes.find(type) == mIndexedVecAndMatrixTypes.end())
             {
                 indexingFunction =
-                    new TFunction(mSymbolTable, indexingFunctionName, GetFieldType(type),
-                                  SymbolType::AngleInternal, true);
+                    new TFunction(mSymbolTable, indexingFunctionName, SymbolType::AngleInternal,
+                                  GetFieldType(type), true);
                 indexingFunction->addParameter(
                     TConstParameter(kBaseName, GetBaseType(type, false)));
                 indexingFunction->addParameter(TConstParameter(kIndexName, kIndexType));
@@ -456,8 +456,8 @@
                     ImmutableString functionName(
                         GetIndexFunctionName(node->getLeft()->getType(), true));
                     indexedWriteFunction =
-                        new TFunction(mSymbolTable, functionName, StaticType::GetBasic<EbtVoid>(),
-                                      SymbolType::AngleInternal, false);
+                        new TFunction(mSymbolTable, functionName, SymbolType::AngleInternal,
+                                      StaticType::GetBasic<EbtVoid>(), false);
                     indexedWriteFunction->addParameter(
                         TConstParameter(kBaseName, GetBaseType(type, true)));
                     indexedWriteFunction->addParameter(TConstParameter(kIndexName, kIndexType));