Revert #2599

This pull request reverts the changes on #2599.

It also adds a couple of tests to sort of document the (broken) behaviour of other typed constructors.

I hope i didn't break any of the source location changes with this.