AFAIK there is

t() transpose
some Select/Slice operations,  especially those with stride>1, i.e. tensor[::2]
expand

In such cases, the storage doesn’t change, it only modifies stride(you can get it by tensor.stride()).
is_contiguous is implemented in C.
int THTensor_(isContiguous)(const THTensor *self)
{
  long z = 1;
  int d;
  for(d = self->nDimension-1; d >= 0; d--)
  {
    if(self->size[d] != 1)
    {
      if(self->stride[d] == z)
        z *= self->size[d];
      else
        return 0;
    }
  }
  return 1;
}