move keyword checking to a later pass, so we throw errors in the right order