Make struct variant syntax more consistent with struct syntax and fix an assert in middle::typeck. Fix #19003