sync with upstream swift