Unfortunately,this is not fundamental fix. The root cause is in `EqualExp::semantic`, which it does not correctly reject the case that either lhs or rhs is `TypeExp`.

```d
void main()
{
    alias T = int;
    auto x = (T == T);   // does not cause an error
}
```

Above code would cause glue layer error with `-c`, `-run`, or on default.
But compiler reports no error with `-o-` switch.

I've often been fixed the front-end bugs of this kind, but they are still there...