Support `.` literal the way you'd expect

supersedes #1116
fixes #1112