As far as I understand, identity operator is used to determine if two objects have the same reference. It means, in practice, the both side of the operator shall be an object.

However, I've tried the following code and it confused me of the identity operator's function of what I understand

```
class Dog {}

let d: Dog = Dog()

if type(of: d) === Dog.self {
    print("yep") //prints out "yep"
}

if type(of: d) == Dog.self {
    print("yep") //prints out "yep"
}

```

The left and right side of the identity operator is not an object but a type and it seems, for this point, semantic equivalence operator and object identity operator (looks like) works in the same way. 

**Question**: 

Is this a bug or I didn't get the whole point correctly.

Thanks for your help and time