Apply array restriction on qualified types only on ESSL1.00

Add a test that checks that uniforms with an array type are allowed in
ESSL3.00.

TEST=angle_unittests
BUG=angleproject:1061

Change-Id: I6c9e8eeb3e8a6b81522c87039b93bcc0008ae317
Reviewed-on: https://chromium-review.googlesource.com/285481
Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
diff --git a/src/compiler/translator/ParseContext.cpp b/src/compiler/translator/ParseContext.cpp
index 7585ffd..1d017ca 100644
--- a/src/compiler/translator/ParseContext.cpp
+++ b/src/compiler/translator/ParseContext.cpp
@@ -1352,15 +1352,15 @@
     returnType.invariant = invariant;
     returnType.layoutQualifier = layoutQualifier;
 
-    if (typeSpecifier.array)
-    {
-        error(typeSpecifier.line, "not supported", "first-class array");
-        recover();
-        returnType.clearArrayness();
-    }
-
     if (mShaderVersion < 300)
     {
+        if (typeSpecifier.array)
+        {
+            error(typeSpecifier.line, "not supported", "first-class array");
+            recover();
+            returnType.clearArrayness();
+        }
+
         if (qualifier == EvqAttribute && (typeSpecifier.type == EbtBool || typeSpecifier.type == EbtInt))
         {
             error(typeSpecifier.line, "cannot be bool or int", getQualifierString(qualifier));