Replace remaining usage of TName with TSymbol

TName used to contain just a subset of the information stored in
TSymbol. It makes more sense to use TSymbol directly instead of
converting it to TName.

This also improves type safety a bit by making some functions only
take in TVariable or TFunction instead of the more generic TName.

BUG=angleproject:2267
TEST=angle_unittests

Change-Id: Icb46923c25d33ebbbbc06ddc487da25957dda771
Reviewed-on: https://chromium-review.googlesource.com/829143
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/compiler/translator/util.cpp b/src/compiler/translator/util.cpp
index 3ff4367..bd39cd1 100644
--- a/src/compiler/translator/util.cpp
+++ b/src/compiler/translator/util.cpp
@@ -476,7 +476,7 @@
 TString GetTypeName(const TType &type, ShHashFunction64 hashFunction, NameMap *nameMap)
 {
     if (type.getBasicType() == EbtStruct)
-        return HashName(TName(type.getStruct()->name()), hashFunction, nameMap);
+        return HashName(type.getStruct(), hashFunction, nameMap);
     else
         return type.getBuiltInTypeNameString();
 }