@Override
    public SmartTypePointer visitArrayType(@NotNull PsiArrayType arrayType) {
      final SmartTypePointer componentTypePointer = arrayType.getComponentType().accept(this);
      return componentTypePointer != null ? new ArrayTypePointer(arrayType, componentTypePointer) : null;
    }
@Override
    public SmartTypePointer visitArrayType(@NotNull PsiArrayType arrayType)