language changes: some restructuring to cope with mozilla/rust#12158.