/*
* Extract and store type signatures and arguments using unique key for parameterized types
* and type parameters for non-generic ones
*/
void storeTypeSignaturesAndArguments(IType type) {
BindingKey key;
if (type.isResolved() && (key = new BindingKey(type.getKey())).isParameterizedType()) {
String signature = key.toSignature();
this.typeSignatures = Util.splitTypeLevelsSignature(signature);
setTypeArguments(Util.getAllTypeArguments(this.typeSignatures));
} else {
// Scan hierachy to store type arguments at each level
char[][][] typeParameters = new char[10][][];