private ArrayType createArrayType(ITypeBinding binding) { int index = binding.getDimensions() - 1; TType elementType = create(binding.getElementType()); Map /*<TType, ArrayType>*/ arrayTypes = getArrayTypesMap(index); ArrayType result = (ArrayType) arrayTypes.get(elementType); if (result != null) return result; result = new ArrayType(this); arrayTypes.put(elementType, result); result.initialize(binding, elementType); return result; }