ES31: Simplify IsInShaderStorageBlock function

Bug: angleproject:1951
Change-Id: I0501502fa2201953a3dad4b18103ff5ae20db1bf
Reviewed-on: https://chromium-review.googlesource.com/c/1314298
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
diff --git a/src/compiler/translator/util.cpp b/src/compiler/translator/util.cpp
index 72ac655..af05122 100644
--- a/src/compiler/translator/util.cpp
+++ b/src/compiler/translator/util.cpp
@@ -753,30 +753,28 @@
 
 bool IsInShaderStorageBlock(TIntermTyped *node)
 {
-    TIntermBinary *binaryNode   = nullptr;
     TIntermSwizzle *swizzleNode = node->getAsSwizzleNode();
     if (swizzleNode)
     {
-        binaryNode = swizzleNode->getOperand()->getAsBinaryNode();
-        if (binaryNode)
-        {
-            return IsInShaderStorageBlock(binaryNode->getLeft());
-        }
-        TIntermSymbol *symbolNode = swizzleNode->getOperand()->getAsSymbolNode();
-        if (symbolNode)
-        {
-            return symbolNode->getQualifier() == EvqBuffer;
-        }
+        return IsInShaderStorageBlock(swizzleNode->getOperand());
     }
-    binaryNode = node->getAsBinaryNode();
 
+    TIntermBinary *binaryNode = node->getAsBinaryNode();
     if (binaryNode)
     {
-        return IsInShaderStorageBlock(binaryNode->getLeft());
+        switch (binaryNode->getOp())
+        {
+            case EOpIndexDirectInterfaceBlock:
+            case EOpIndexIndirect:
+            case EOpIndexDirect:
+            case EOpIndexDirectStruct:
+                return IsInShaderStorageBlock(binaryNode->getLeft());
+            default:
+                return false;
+        }
     }
 
     const TType &type = node->getType();
-
     return type.getQualifier() == EvqBuffer;
 }