рдХреЛрдИ рднреА рдЗрдВрдЬреАрдирд┐рдпрд░ рдЕрдкрдиреА рдХрд╛рд░реНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдореЛрдмрд╛рдЗрд▓ рдЖрдИрдУрдПрд╕ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдореЗрдВ рдЕрдХреНрд╕рд░ рд╕рдорд╛рди рднрд╛рд╖рд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдРрдкреНрдкрд▓ рдбреЗрд╡рд▓рдкрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдкреНрд░рдпрд╛рд╕ рдХрд░рдХреЗ рдбреЗрд╡рд▓рдкрд░ рдЯреВрд▓ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИ: рднрд╛рд╖рд╛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ, рдСрдЯреЛ-рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ, рдФрд░ рдХрдИ рдЕрдиреНрдп рдЖрдИрдбреАрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣рдорд╛рд░реА рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рдХреЛ рд╣рдорд╛рд░реЗ рд╕рд┐рд░ рдореЗрдВ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рддрд╛рд▓рдореЗрд▓ рд░рдЦрдиреЗ рджреЗрддреА рд╣реИрдВред

рдЖрд╡рд╢реНрдпрдХ рдЙрдкрдХрд░рдг рдЧреБрдо рд╣реЛрдиреЗ рдкрд░ рдПрдХ рдЗрдВрдЬреАрдирд┐рдпрд░ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ? рд╕рдЪ рд╣реИ, рд╡рд╣ рдЦреБрдж рд╕рдм рдХреБрдЫ рдХрд░реЗрдЧрд╛! рдкрд╣рд▓реЗ рд╣рдордиреЗ рдЕрдкрдиреЗ рдХрд╕реНрдЯрдо рдЯреВрд▓ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдмрд╛рдд рдХреА рдереА , рдЕрдм рдЖрдЗрдП рдПрдХреНрд╕рдХреЛрдб рдХреЛ рдХреИрд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреЗ рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВред
рд╣рдордиреЗ
JIRA рд╕реНрд╡рд┐рдлреНрдЯ рд╕реЗ рдХрд╛рд░реНрдп рд▓рд┐рдпрд╛ рдФрд░ рдПрдХ рдЙрдкрдХрд░рдг рдмрдирд╛рдпрд╛, рдЬреЛ
рдЕрдЧрд░ рдПрдХ рд╕рдорддреБрд▓реНрдп
рдЧрд╛рд░реНрдб рдХреЛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИ,
рддреЛ рдЙрд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред

рдиреМрд╡реЗрдВ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд╛рдж рд╕реЗ, Xcode рдПрдХ рдирдпрд╛ рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ рддрдВрддреНрд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХреЛрдб рдХреЛ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ, рдЙрд╕реА рд╕реНрд╡рд┐рдлреНрдЯ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЗ рднреАрддрд░, рдпрд╛ рд╡реИрд╢реНрд╡рд┐рдХ рд░реВрдк рд╕реЗ рддрдм рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдЖрдк рдПрдХ рд╡рд┐рдзрд┐ рдпрд╛ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдирд╛рдо рдмрджрд▓рддреЗ рд╣реИрдВ, рдЬреЛ рдХрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╣реЛрддреА рд╣реИ, рднрд▓реЗ рд╣реА рд╡реЗ рд╡рд┐рднрд┐рдиреНрди рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╣реЛрдВред
рд╕реЛрд░реНрд╕рдХрд┐рдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдФрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рд╕реНрдерд╛рдиреАрдп рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИ, рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдУрдкрди рд╕реЛрд░реНрд╕ рд╕реНрд╡рд┐рдлреНрдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ рдФрд░ C ++ рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ рд╣реИред рд╡реИрд╢реНрд╡рд┐рдХ рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХрд╛ рд╕рдВрд╢реЛрдзрди рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЖрдо рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рджреБрд░реНрдЧрдо рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ Xcode рдХреЛрдб рдмреЗрд╕ рдмрдВрдж рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо рд╕реНрдерд╛рдиреАрдп рдЗрддрд┐рд╣рд╛рд╕ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред
рдЖрдкрдХреЛ рд╕реНрдерд╛рдиреАрдп рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдЙрдкрдХрд░рдг рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
- C ++ рдХреЛ рд╕рдордЭрдирд╛
- рд╕рдВрдХрд▓рдХ рдХрд╛ рдореВрд▓ рдЬреНрдЮрд╛рди
- рдПрдПрд╕рдЯреА рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИ, рдпрд╣ рд╕рдордЭрдирд╛
- рд╕реНрд░реЛрдд рдХреЛрдб рд╕реНрд╡рд┐рдлреНрдЯ
- рдЧрд╛рдЗрдб рд╕реНрд╡рд┐рдлреНрдЯ / рдбреЙрдХреНрд╕ / рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ / рд╕реНрд╡рд┐рдлрд╝реНрдЯрд▓реЛрдХрд▓ рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧред рдбреА.рдПрдо.
- рдвреЗрд░ рд╕рд╛рд░рд╛ рдзреИрд░реНрдп
рдПрдПрд╕рдЯреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛
рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдЧреЛрддрд╛ рд▓рдЧрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рдореВрд▓ рдмрд╛рддреЗрдВ рдХрд╛ рдПрдХ рд╕рд╛ред рдЖрдЗрдП рдПрдХ рдирдЬрд░ рдбрд╛рд▓рддреЗ рд╣реИрдВ рдХрд┐ рд╕реНрд╡рд┐рдлреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕рдВрдХрд▓рдХ рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдорд╢реАрди рдХреЛрдб рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред

рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдЪрд░рдгреЛрдВ рдореЗрдВ, рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдПрдХ рд╕рд╛рд░ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдкреЗрдбрд╝ (рдПрдПрд╕рдЯреА) рдХреА рдкреАрдврд╝реА рд╣реИ - рдПрдХ рдЧреНрд░рд╛рдл, рдЬрд┐рд╕рдореЗрдВ рдХреЛрдиреЗ рдСрдкрд░реЗрдЯрд░ рд╣реИрдВ рдФрд░ рдкрддреНрддрд┐рдпрд╛рдВ рдЙрдирдХреЗ рдСрдкрд░реЗрдВрдб рд╣реИрдВред

рд╕рд┐рдВрдЯреЗрдХреНрд╕ рдХреЗ рдкреЗрдбрд╝реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд╛рд░реНрд╕рд░ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдПрд╕рдЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЛрдб рдХреЗ рдЕрдиреБрдХреВрд▓рди рдФрд░ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдХрдВрдкреНрдпреВрдЯрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рдХрдВрдкрд╛рдЗрд▓рд░ / рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рдореЗрдВ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдПрд╕рдЯреА рдХреЗ рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдПрдПрд╕рдЯреА рдХреЛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдВрдЪ рдХреЗ рд╕рд╛рде рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╕реНрд╡рд┐рдлреНрдЯ рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рднрд╛рд╖рд╛ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдПрд╕рдПрд▓рд╡реА, рдЖрдИрдЖрд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд, рдЕрдиреБрдХреВрд▓рд┐рдд, рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЕрдВрддрддрдГ рдорд╢реАрди рдХреЛрдб рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИред
рдПрдХ рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдЯреВрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдПрд╕рдЯреА рдХреЛ рд╕рдордЭрдиреЗ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд▓рд┐рдП рдЙрдкрдХрд░рдг рдЙрд╕ рдХреЛрдб рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ рдЬрд┐рд╕реЗ рд╣рдо рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдПрдПрд╕рдЯреА рдЬреЗрдирд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдорд╛рдВрдб рдХреЛ рд░рди рдХрд░реЗрдВ: рд╕реНрд╡рд┐рдлреНрдЯреЗрдХ-рдбрдВрдк-рдПрд╕реНрдЯ рдорд╛рдпрдлрд╛рдЗрд▓.рд╕реНрд╡рд┐рдлреНрдЯ
рдиреАрдЪреЗ рдЕрдЧрд░ рдлрд╝рдВрдХреНрд╢рди, рдЬреЛ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдПрдПрд╕рдЯреА рдХрдВрд╕реЛрд▓ рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рд╣реИ ред

рд╕реНрд╡рд┐рдлреНрдЯ рдПрдПрд╕рдЯреА рдореЗрдВ рддреАрди рдореБрдЦреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рдиреЛрдб рд╣реИрдВ:
- рдШреЛрд╖рдгрд╛рдПрдБ (рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрдкрд╡рд░реНрдЧ),
- рднрд╛рд╡ (рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрдкрд╡рд░реНрдЧ),
- рдСрдкрд░реЗрдЯрд░реЛрдВ (рдкреНрд░рдХрд╛рд░ Stmt рдХреЗ рдЙрдкрд╡рд░реНрдЧ)ред
рд╡реЗ рддреАрди рд╕рдВрд╕реНрдерд╛рдУрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ рдЬреЛ рд╕реНрд╡рд┐рдлреНрдЯ рднрд╛рд╖рд╛ рдореЗрдВ рд╣реА рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдХрд╛рд░реНрдпреЛрдВ, рд╕рдВрд░рдЪрдирд╛рдУрдВ, рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдирд╛рдо рдШреЛрд╖рдгрд╛рдПрдВ рд╣реИрдВред рднрд╛рд╡ рдПрдХ рдореВрд▓реНрдп рд▓реМрдЯрд╛рдиреЗ рд╡рд╛рд▓реА рдЗрдХрд╛рдЗрдпрд╛рдБ рд╣реИрдВ; рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЙрд▓рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рдиред рдСрдкрд░реЗрдЯрд░ рднрд╛рд╖рд╛ рдХреЗ рдХреБрдЫ рднрд╛рдЧ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдорд╛рди рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдпрд╛ рдХреИрдЪ рдХрд░рддреЗ рд╣реИрдВ)ред
рдпрд╣ рдПрдХ рдкрд░реНрдпрд╛рдкреНрдд рдиреНрдпреВрдирддрдо рд╣реИ рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЖрдЧрд╛рдореА рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдПрдПрд╕рдЯреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ред
рд╕рд┐рджреНрдзрд╛рдВрдд рдореЗрдВ рд░рд┐рдлреИрдХреНрдЯрд┐рдВрдЧ рдЯреВрд▓ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдЯреВрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЙрд╕ рдХреЛрдб рдХреЗ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЬрд╛рдирдХрд╛рд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдмрджрд▓рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рд╕рд╣рд╛рдпрдХ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдбреЗрдЯрд╛ рдЬрдорд╛ рдХрд░рддреЗ рд╣реИрдВред рдкрд╣рд▓рд╛ - ResolveCursorInfo (рдХрд░реНрд╕рд░-рдЖрдзрд╛рд░рд┐рдд рд░рд┐рдлреИрдХреНрдЯрд┐рдВрдЧ) - рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣реИрдВред рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдЗрд╕ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рд╕рдВрдЧрдд рдХрдВрдкрд╛рдЗрд▓рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛ рд╣реИред рджреВрд╕рд░реА рдЗрдХрд╛рдИ, рд░реЗрдВрдЬрдЗрдиреНрдлреЛ (рд░реЗрдВрдЬ-рдЖрдзрд╛рд░рд┐рдд рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ), рдореВрд▓ рд╕реАрдорд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕рдореЗрдВ рдХрд┐рддрдиреЗ рдкреНрд░рд╡реЗрд╢ рдФрд░ рдирд┐рдХрд╛рд╕ рдмрд┐рдВрджреБ рд╣реИрдВ) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрд▓рдЧреНрди рдХрд░рддреА рд╣реИред
рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрд░реНрд╕рд░ рдХреЗ рд╕реНрдерд╛рди рджреНрд╡рд╛рд░рд╛ рдХрд░реНрд╕рд░-рдЖрдзрд╛рд░рд┐рдд рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ рд╢реБрд░реВ рдХреА рдЬрд╛рддреА рд╣реИред рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреНрд░рд┐рдпрд╛рдПрдВ рдЙрди рддрд░реАрдХреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреА рд╣реИрдВ, рдЬреЛ рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рддрдВрддреНрд░ рдЖрдИрдбреАрдИ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдореЗрд╢рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдХрд░реНрд╕рд░ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг: рдкрд░рд┐рднрд╛рд╖рд╛, рддреНрд╡рд░рд┐рдд рд╕рд╣рд╛рдпрддрд╛ рдЖрджрд┐ рдкрд░ рдЬрд╛рдПрдВред

рддрдХрдиреАрдХреА рдкрдХреНрд╖ рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдХреНрд░рд┐рдпрд╛рдУрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
- рдЬрдм рдЖрдк Xcode рд╕рдВрдкрд╛рджрдХ рд╕реЗ рдХрд┐рд╕реА рд╕реНрдерд╛рди рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЙрдкрд▓рдмреНрдз рд░рд┐рдлреИрдХреНрдЯрд┐рдВрдЧ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЛрд░реНрд╕рдХрд┐рдЯ (рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ, рдХреЛрдб рдкреВрд░рд╛ рд╣реЛрдиреЗ рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдлреНрд░реЗрдорд╡рд░реНрдХ) рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрд▓рдмреНрдз рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ ResolveCursorInfo рдСрдмреНрдЬреЗрдХреНрдЯ рджреНрд╡рд╛рд░рд╛ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреНрд░рд┐рдпрд╛ рдЪрдпрдирд┐рдд рдХреЛрдб рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИ рдпрд╛ рдирд╣реАрдВред
- рд▓рд╛рдЧреВ рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕реВрдЪреА рд╕реЛрд░реНрд╕рдХрд┐рдЯ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рдЧрдИ рд╣реИ рдФрд░ рдПрдХреНрд╕рдХреЛрдб рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЧрдИ рд╣реИред
- Xcode рдлрд┐рд░ рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдЯреВрд▓ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред
рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЛрдб рдХреА рдПрдХ рдирд┐рд░рдВрддрд░ рд╕реАрдорд╛ рдХрд╛ рдЪрдпрди рдХрд░рдХреЗ рд░реЗрдВрдЬ-рдЖрдзрд╛рд░рд┐рдд рд░рд┐рдлреИрдХреНрдЯрд┐рдВрдЧ рд╢реБрд░реВ рдХреА рдЬрд╛рддреА рд╣реИред

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд░рд┐рдлреИрдХреНрдЯрд┐рдВрдЧ рдЯреВрд▓ рд╡рд░реНрдгрд┐рдд рдХреЙрд▓ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдПрдЧрд╛ред рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ ResolveCursorInfo рдХреЗ рдмрдЬрд╛рдп InputInfo рдЗрдирдкреБрдЯ рд╣реЛрддрд╛ рд╣реИред рдЗрдЪреНрдЫреБрдХ рдкрд╛рдардХ Apple рдЯреВрд▓рдХрд┐рдЯ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП
Refactoring.cpp рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдФрд░ рдЕрдм рдПрдХ рдЯреВрд▓ рдмрдирд╛рдиреЗ рдХреЗ рдЕрднреНрдпрд╛рд╕ рдХреЗ рд▓рд┐рдПред
рдЯреНрд░реЗрдирд┐рдВрдЧ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рд╕реНрд╡рд┐рдлреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╡рд┐рд╕реНрддреГрдд рдирд┐рд░реНрджреЗрд╢ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рднрдВрдбрд╛рд░ (
readme.md ) рдореЗрдВ рд╣реИрдВред рдпрд╣рд╛рдБ рдХреЛрдб рдХреНрд▓реЛрдирд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкреНрд░рдореБрдЦ рдХрдорд╛рдВрдб рджрд┐рдП рдЧрдП рд╣реИрдВ:
mkdir swift-source cd swift-source git clone https:
Cmake рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рдПрдХ рдХрдорд╛рдВрдб рдХреЗ рдХрд╛рд░рдг Xcode (рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ) рдпрд╛ рдирд┐рдВрдЬрд╛ (рддреЗрдЬ) рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
./utils/build-script --debug --xcode
рдпрд╛
swift/utils/build-script --debug-debuginfo
рд╕рдлрд▓ рд╕рдВрдХрд▓рди рдХреЗ рд▓рд┐рдП Xcode рдмреАрдЯрд╛ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рд▓реЗрдЦрди рдХреЗ рд╕рдордп 10.2.1) -
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ Apple рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИред рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирдП Xcode рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ xcode-select рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрде рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
sudo xcode-select -s /Users/username/Xcode.app
рдЕрдЧрд░ рд╣рдордиреЗ Xcode рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд░рдорд╢рдГ --xcode рдлреНрд▓реИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдмрд┐рд▓реНрдб рдлреЛрд▓реНрдбрд░ рдореЗрдВ рдХрдИ рдШрдВрдЯреЛрдВ рдХреЗ рд╕рдВрдХрд▓рди (рд╣рдореЗрдВ рдереЛрдбрд╝рд╛ рдФрд░ рдЕрдзрд┐рдХ рдорд┐рд▓рд╛ рд╣реИ) рдХреЗ рдмрд╛рдж, рд╣рдо Swift.xcodeproj рдлрд╛рдЗрд▓ рдкрд╛рдПрдВрдЧреЗред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЦреЛрд▓рддреЗ рд╣реБрдП, рд╣рдо рдкрд░рд┐рдЪрд┐рдд рдПрдХреНрд╕рдХреЛрдб рдХреЛ рдЕрдиреБрдХреНрд░рдордг, рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рдХреЗ рд╕рд╛рде рджреЗрдЦреЗрдВрдЧреЗред
рдПрдХ рдирдпрд╛ рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдлрд╛рдЗрд▓ рдореЗрдВ рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯ рдХреЗ рд▓реЙрдЬрд┐рдХ рдХреЗ рд╕рд╛рде рдХреЛрдб рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛: lib / IDE / Refactoring.cpp рдФрд░ рджреЛ рддрд░реАрдХреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, isApplicable рдФрд░ performChangeред рдкрд╣рд▓реА рд╡рд┐рдзрд┐ рдореЗрдВ, рд╣рдо рддрдп рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЪрдпрдирд┐рдд рдХреЛрдб рдХреЗ рд▓рд┐рдП рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ рд╡рд┐рдХрд▓реНрдк рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ - рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрдпрдирд┐рдд рдХреЛрдб рдХреЛ рдХреИрд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред
рдХреА рдЧрдИ рддреИрдпрд╛рд░реА рдХреЗ рдмрд╛рдж, рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд░рдгреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ:
- рдЯреВрд▓ рд▓реЙрдЬрд┐рдХ рд╡рд┐рдХрд╕рд┐рдд рдХрд░реЗрдВ (рд╡рд┐рдХрд╛рд╕ рдХреЛ рдХрдИ рддрд░реАрдХреЛрдВ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдЯреВрд▓рдХрд┐рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдирд┐рдВрдЬрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдПрдХреНрд╕рдХреЛрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ; рд╕рднреА рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛)
- рджреЛ рддрд░реАрдХреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ: isApplicable рдФрд░ PerformChange (рд╡реЗ рдЙрдкрдХрд░рдг рдФрд░ рдЙрд╕рдХреЗ рд╕рдВрдЪрд╛рд▓рди рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВ)
- рдкреАрдЖрд░ рдХреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕реНрд╡рд┐рдлреНрдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рднреЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рддреИрдпрд╛рд░ рдЯреВрд▓ рдХрд╛ рдирд┐рджрд╛рди рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВред
рдЯреВрд▓рдЪреЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЯреЗрд╕реНрдЯ рдЯреВрд▓ рдСрдкрд░реЗрд╢рди
рдпрд╣ рд╡рд┐рдХрд╛рд╕ рд╡рд┐рдзрд┐ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рдВрдмреЗ рд╕рдВрдпреЛрдЬрди рдХреЗ рдХрд╛рд░рдг рдЖрдкрдХреЛ рдмрд╣реБрдд рд╕рдордп рд▓рдЧреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдо рддреБрд░рдВрдд Xcode рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ - рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЗрд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ред
рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд╡рд┐рдлреНрдЯ рдЯреВрд▓рдЪреИрди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ:
./utils/build-toolchain some_bundle_id
рдЯреВрд▓рдХрд┐рди рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдВрдХрд▓рдХ рдФрд░ рдЖрд╢реНрд░рд┐рддреЛрдВ рдХреЗ рд╕рдВрдХрд▓рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧреЗрдЧрд╛ред рдЖрдЙрдЯрдкреБрдЯ рд╕реНрд╡рд┐рдлреНрдЯ-рд░рд╛рдд-рд╕реНрдерд╛рдкрд┐рдд рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрд╡рд┐рдлреНрдЯ-LOCAL-yyyy-mm-dd.xctoolchain рдлрд╝рд╛рдЗрд▓ рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ Xcode: / Library / Developer / Toolchains / рдореЗрдВ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЕрдЧрд▓рд╛, рдЖрдИрдбреАрдИ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ, рдирдпрд╛ рдЯреВрд▓рдЪреИрди рдЪреБрдиреЗрдВ, Xcode рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВред

рдХреЛрдб рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рдЪреБрдиреЗрдВ, рдЬрд┐рд╕реЗ рдЙрдкрдХрд░рдг рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рд╕рдВрджрд░реНрдн рдореЗрдиреВ рдореЗрдВ рдЙрдкрдХрд░рдг рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдВред
рдирд┐рдВрдЬрд╛ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рдХрд╛рд╕
рдпрджрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдирд┐рдВрдЬрд╛ рдХреЗ рддрд╣рдд рдмрдирд╛рдИ рдЧрдИ рдереА рдФрд░ рдЖрдкрдиреЗ рдЯреАрдбреАрдбреА рдкрде рдЪреБрдирд╛ рдерд╛, рддреЛ рдирд┐рдВрдЬрд╛ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдЙрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬреЛ рдЖрдкрдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдВрдЧреЗред рд╡рд┐рдкрдХреНрд╖ - рдЖрдк рдмреНрд░реЗрдХрдкреНрд╡рд╛рдЗрдВрдЯ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдЬреИрд╕рд╛ рдХрд┐ Xcode рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд╣реИред
рдЗрд╕рд▓рд┐рдП, рд╣рдореЗрдВ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдирдпрд╛ рдЙрдкрдХрд░рдг Xcode рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдЧрд╛рд░реНрдб рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИред рд╣рдо рдЯреЗрд╕реНрдЯ рдХреЛ рдореМрдЬреВрджрд╛ рдЯреЗрд╕реНрдЯ / рд░рд┐рдлреИрдХреНрдЯрд┐рдВрдЧ / рд░рд┐рдлреИрдХреНрдЯрд┐рдВрдЧрдХрд┐рдВрдб / basic.swift рдлрд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
func testConvertToGuardExpr(idxOpt: Int?) { if let idx = idxOpt { print(idx) } }
рд╣рдо рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ 266 рдкрдВрдХреНрддрд┐ 3 рдХреЙрд▓рдо рдФрд░ 268 рдкрдВрдХреНрддрд┐ 4 рдХреЙрд▓рдо рдХреЗ рдмреАрдЪ рдХреЛрдб рдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░рддреЗ рд╕рдордп, рд╣рдо рдПрдХ рдирдП рдЯреВрд▓ рдХреЗ рд╕рд╛рде рдореЗрдиреВ рдЖрдЗрдЯрдо рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВред
Lit.py script рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХреЗ рд╡рд┐рдХрд╛рд╕ рдЪрдХреНрд░ рдореЗрдВ рддреЗрдЬреА рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдорд┐рд▓ рд╕рдХрддреА рд╣реИред рдЖрдк рдЕрднрд┐рд░реБрдЪрд┐ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд╕реБрдЗрдЯ RefactoringKind рд╣реЛрдЧрд╛:
./llvm/utils/lit/lit.py -sv ./build/Ninja-RelWithDebInfoAssert/swift-macosx-x86_64/test-macosx-x86_64/refactoring/RefactoringKind/
рдирддреАрдЬрддрди, рдХреЗрд╡рд▓ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдкрд░реАрдХреНрд╖рдг рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред рдЙрдирдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдХреБрдЫ рд╕реЗрдХрдВрдб рдХреЗ рджрд╕рд┐рдпреЛрдВ рд▓рдЧреЗрдВрдЧреЗред Lit.py рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкрд░ рдмрд╛рдж рдореЗрдВ рдирд┐рджрд╛рди рдФрд░ рдкрд░реАрдХреНрд╖рдг рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАред
рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЯреАрдбреАрдбреА рдкреНрд░рддрд┐рдорд╛рди рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╣реИред рдЖрдЦрд┐рд░рдХрд╛рд░, рдЕрдм рддрдХ рд╣рдордиреЗ рдЙрдкрдХрд░рдг рдХреЗ рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдХреЛрдб рдХреА рдПрдХ рднреА рдкрдВрдХреНрддрд┐ рдирд╣реАрдВ рд▓рд┐рдЦреА рд╣реИред
рдбрд┐рдмрдЧрд┐рдВрдЧ рдФрд░ Xcode рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рдХрд╛рд╕
рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЕрдВрддрд┐рдо рд╡рд┐рдХрд╛рд╕ рд╡рд┐рдзрд┐ рдЬрдм рдкреНрд░реЛрдЬреЗрдХреНрдЯ Xcode рдХреЗ рддрд╣рдд рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореБрдЦреНрдп рдкреНрд▓рд╕ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рд╕реЗрдЯ рдХрд░рдиреЗ рдФрд░ рдбреАрдмрдЧрд┐рдВрдЧ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред
Xcode рдХреЗ рддрд╣рдд рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╕рдордп, Swift.xcodeproj рдлрд╝рд╛рдЗрд▓ рдмрд┐рд▓реНрдб / Xcode-DebugAssert / рд╕реНрд╡рд┐рдлреНрдЯ-macosx-x86_64 / рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИред рдЬрдм рдЖрдк рдкрд╣рд▓реА рдмрд╛рд░ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЦреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ ALL_BUILD рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдпреЛрдЬрдирд╛рдПрдБ рдЪреБрдирдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рд╕реНрд╡рдпрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕рдХреНрд░рд┐рдп рдХрд░рдирд╛:

рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдПрдХ рдмрд╛рд░ ALL_BUILD рдХреЗ рд╕рд╛рде рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ, рдЙрд╕рдХреЗ рдмрд╛рдж рд╣рдо рд╕реНрд╡рд┐рдлреНрдЯ-рд░рд┐рдлреНрд▓реЗрдХреНрдЯрд░ рдпреЛрдЬрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдЯреВрд▓ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рд╕реНрд╡рд┐рдлреНрдЯ-рд░рд┐рдлреИрдХреНрдЯрд░ред рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрддрд╛ тАУhelp рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ:
-source-filename=<string>
рдЙрдиреНрд╣реЗрдВ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдХреАрдорд╛ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдм рдЖрдк рдЙрдкрдХрд░рдг рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп рд░реБрдЪрд┐ рдХреЗ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рд░реБрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдмреНрд░реЗрдХрдкреНрд╡рд╛рдЗрдВрдЯ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗ, рдПрдХреНрд╕рдХреЛрдб рдХрдВрд╕реЛрд▓ рдореЗрдВ
рдкреА рдФрд░
рдкреАрдУ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдпрд╣ рд╕рдВрдмрдВрдзрд┐рдд рдЪрд░ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред

рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ
IsApplicable рдкрджреНрдзрддрд┐ рдЗрдирдкреБрдЯ рдкрд░ рдЪрдпрдирд┐рдд рдХреЛрдб рдЯреБрдХрдбрд╝реЗ рдХреЗ рдПрдПрд╕рдЯреА рдиреЛрдбреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдПрдХ ResolveRangeInfo рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреА рд╣реИред рд╡рд┐рдзрд┐ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдкрд░, рдпрд╣ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдХрд░рдг рдХреЛ рджрд┐рдЦрд╛рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ Xcode рд╕рдВрджрд░реНрдн рдореЗрдиреВ рдореЗрдВред рдкреВрд░реНрдг ResolveRangeInfo рдЗрдВрдЯрд░рдлрд╝реЗрд╕
рд╢рд╛рдорд┐рд▓ / рд╕реНрд╡рд┐рдлреНрдЯ / IDE / Utils.h рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
ResolveRangeInfo рд╡рд░реНрдЧ рдХреЗ рдЙрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬреЛ рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реИрдВ:
- рд░реЗрдВрдЬрдХрд╛рдЗрдВрдб - рдкрд╣рд▓реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЪрдпрдирд┐рдд рдХреНрд╖реЗрддреНрд░ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред рдпрджрд┐ рдХреНрд╖реЗрддреНрд░ рдЕрдорд╛рдиреНрдп (рдЕрдорд╛рдиреНрдп) рд╣реИ, рддреЛ рдЖрдк рдЧрд▓рдд рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдкреНрд░рдХрд╛рд░ рд╣рдореЗрдВ рд╕реВрдЯ рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рд┐рдВрдЧрд▓рд╕реНрдЯреЗрдореЗрдВрдЯ рдпрд╛ рдорд▓реНрдЯреАрд╕реНрдЯреИрдореЗрдВрдЯ, рддреЛ рдЖрдЧреЗ рдмрдврд╝реЗрдВ;
- ContainedNodes - рдПрдПрд╕рдЯреА рддрддреНрд╡реЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдЬреЛ рдЪрдпрдирд┐рдд рд╕реАрдорд╛ рдореЗрдВ рдЖрддреА рд╣реИред рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЙрд╕ рд╕реАрдорд╛ рдХрд╛ рдЪрдпрди рдХрд░реЗ рдЬреЛ рдЕрдЧрд░ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддреА рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕рд░рдгреА рдХреЗ рдкрд╣рд▓реЗ рддрддреНрд╡ рдХреЛ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рддрддреНрд╡ IfStmt (рд╡рд░реНрдЧ рд╣реИ рдЬреЛ рдХрд┐ рдЙрдкрдкреНрд░рдХрд╛рд░ рдХреЗ рдХрдерди рдиреЛрдб рдХреЗ рдПрдПрд╕рдЯреА рдиреЛрдб рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ) рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рд╛рд▓рдд рджреЗрдЦреЗрдВред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреЗрд╡рд▓ рдПрдХ рд╢рд░реНрдд рдХреЗ рд╕рд╛рде рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдг рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдВрдЧреЗред рд╕реНрдерд┐рддрд┐ рдХреЗ рдкреНрд░рдХрд╛рд░ (CK_PatternBinding) рд╕реЗ рд╣рдо рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╣реИред

рдкрд░реАрдХреНрд╖рдг рдпреЛрдЧреНрдп рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдлрд╝рд╛рдЗрд▓
рдкрд░реАрдХреНрд╖рдг / рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ / RefactoringKind / basic.swift рдХреЗ рд▓рд┐рдП рдирдореВрдирд╛ рдХреЛрдб рдЬреЛрдбрд╝реЗрдВред

рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдЯреВрд▓ рдореЗрдВ рдХреЙрд▓ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ
рдЙрдкрдХрд░рдг / рд╕реНрд╡рд┐рдлреНрдЯ-рд░рд┐рдлрд▓реЗрдХреНрдЯрд░ / рд╕реНрд╡рд┐рдлреНрдЯ-рд░рд┐рдлреИрдХреНрдЯреЛрд░.рдХреИрдк рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╣рдо рдкрд░рдлреЙрд░реНрдореЗрдВрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ
рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рд╕рдВрджрд░реНрдн рдореЗрдиреВ рдореЗрдВ рдПрдХ рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдЯреВрд▓ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ ResolveRangeInfo рдХреЗ рд╕рд╛рде-рд╕рд╛рде isApplicable рдореЗрдВ рднреА рд╣реИред рд╣рдо ResolveRangeInfo рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХреЛрдб рд░реВрдкрд╛рдВрддрд░рдг рдЙрдкрдХрд░рдг рдХрд╛ рддрд░реНрдХ рд▓рд┐рдЦрддреЗ рд╣реИрдВред
рд╕реНрдерд┐рд░ рдЯреЛрдХрди рдХреЗ рд▓рд┐рдП рдХреЛрдб рдмрдирд╛рддреЗ рд╕рдордп (рднрд╛рд╖рд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдирд┐рдпрдорд┐рдд), рдЖрдк рдЯреЛрдХрди рдирд╛рдорд╕реНрдерд╛рди рд╕реЗ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЧрд╛рд░реНрдб рдХреАрд╡рд░реНрдб рдХреЗ рд▓рд┐рдП, tok :: kw_guard рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЧрддрд┐рд╢реАрд▓ рдЯреЛрдХрди рдХреЗ рд▓рд┐рдП (рдбреЗрд╡рд▓рдкрд░ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╢реЛрдзрд┐рдд, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдирд╛рдо), рдЖрдкрдХреЛ рдПрдПрд╕рдЯреА рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд░рдгреА рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдЪреБрдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХреЛрдб рдХрд╣рд╛рдВ рдбрд╛рд▓рд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдо рд░реЗрдВрдЬрдЗрдиреНрдлреЛ.рдХреЙрдиреНрдЯреЗрдВрдЯрд░реЗрдВрдЬ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреВрд░реНрдг рдЪрдпрдирд┐рдд рд░реЗрдВрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

рдирд┐рджрд╛рди рдФрд░ рдкрд░реАрдХреНрд╖рдг
рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк рдХрд┐рд╕реА рдЙрдкрдХрд░рдг рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ, рдЖрдкрдХреЛ рдЙрд╕рдХреЗ рдХрд╛рдо рдХреА рд╢реБрджреНрдзрддрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЬрд╛рдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдкрд░реАрдХреНрд╖рдг рд╣рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдорджрдж рдХрд░реЗрдВрдЧреЗред рдЯреЗрд╕реНрдЯ рдХреЛ рдПрдХ рдмрд╛рд░ рдореЗрдВ рдпрд╛ рд╕рднреА рдЙрдкрд▓рдмреНрдз рд╕реНрдХреЛрдк рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкреВрд░реЗ рд╕реНрд╡рд┐рдлреНрдЯ рдЯреЗрд╕реНрдЯ рд╕реВрдЯ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ - рдмрд░реНрддрди / рдмрд┐рд▓реНрдб-рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рд╕рдмрд╕реЗ рдмреЗрд╣рддрд░ рдХрдорд╛рдВрдб, рдЬреЛ рдореБрдЦреНрдп рдЯреЗрд╕реНрдЯ рд╕реВрдЯ рдЪрд▓рд╛рдПрдЧрд╛ред рдмрд░реНрддрди / рдмрд┐рд▓реНрдб-рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд╕рднреА рд▓рдХреНрд╖реНрдпреЛрдВ рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рд╣реЛрдЧрд╛, рдЬреЛ рдбрд┐рдмрдЧрд┐рдВрдЧ рдЪрдХреНрд░ рдХреЗ рд╕рдордп рдХреЛ рдХрд╛рдлреА рдмрдврд╝рд╛ рд╕рдХрддрд╛ рд╣реИред
рдХрдВрдкрд╛рдЗрд▓рд░ рдпрд╛ рдПрдкреАрдЖрдИ рдореЗрдВ рдмрдбрд╝реЗ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдмрд░реНрддрдиреЛрдВ / рдмрд┐рд▓реНрдб-рд╕реНрдХреНрд░рд┐рдкреНрдЯ - рд░рд┐рд╡реЙрд▓реНрдпреВрдПрд╢рди-рдЯреЗрд╕реНрдЯ рд╡реИрд▓рд┐рдбреЗрд╢рди рдЯреЗрд╕реНрдЯ рдХреЛ рдЬрд╝рд░реВрд░ рдЪрд▓рд╛рдПрдВред
рд╕рдВрдХрд▓рдХ рдХреЗ рд╕рднреА рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рд╣реИ - рдирд┐рдВрдЬрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдирд┐рдВрдЬрд╛ рдЪреЗрдХ-рд╕реНрд╡рд┐рдлреНрдЯ рдмрд┐рд▓реНрдб / рдкреНрд░реАрд╕реЗрдЯ / рд╕реНрд╡рд┐рдлреНрдЯ-рдореИрдХреЛрдХреНрд╕-x86_64 рд╕реЗред рдЗрд╕рдореЗрдВ рд▓рдЧрднрдЧ 15 рдорд┐рдирдЯ рд▓рдЧреЗрдВрдЧреЗред
рдФрд░ рдЕрдВрдд рдореЗрдВ, рд╡рд┐рдХрд▓реНрдк рдЬрдм рдЖрдкрдХреЛ рдЕрд▓рдЧ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╕реАрдзреЗ LLVM рд╕реЗ рд▓рд┐рдЯреЛрдлреЛрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЗрдирд╡реЙрдЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕реНрдерд╛рдиреАрдп рдмрд┐рд▓реНрдб рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
% $ {LLVM_SOURCE_ROOT} /utils/lit/lit.py -sv $ {SWIFT_BUILD_DIR} / test-macosx-x86_64 / Parse /
рдпрд╣ 64-рдмрд┐рдЯ macOS рдХреЗ рд▓рд┐рдП 'рдкрд░реАрдХреНрд╖рдг / рдкрд╛рд░реНрд╕ /' рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдПрдЧрд╛ред -Sv рд╡рд┐рдХрд▓реНрдк рдкрд░реАрдХреНрд╖рдг рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдПрдХ рд╕рдВрдХреЗрддрдХ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рд╡рд┐рдлрд▓ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рддрд╛ рд╣реИред
Lit.py рдХреА рдХреБрдЫ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ, рдЬреИрд╕реЗ рд╕рдордп рдкрд░реАрдХреНрд╖рдг рдФрд░ рд╡рд┐рд▓рдВрдмрддрд╛ рдкрд░реАрдХреНрд╖рдгред рдЖрдк рдЗрди рдФрд░ рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ lit.py -h рдХреЗ рд╕рд╛рде рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА
рдпрд╣рд╛рдБ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ ред
рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓рд┐рдЦреЗрдВ:
./llvm/utils/lit/lit.py -sv ./build/Ninja-RelWithDebInfoAssert/swift-macosx-x86_64/test-macosx-x86_64/refactoring/RefactoringKind/basic.swift
рдпрджрд┐ рд╣рдореЗрдВ рдирд╡реАрдирддрдо рд╕рдВрдХрд▓рдХ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдФрд░ рд░реАрдмреЗрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЪрд▓рд╛рдПрдБ ред/utils/update-checkoutред
рдирд┐рд╖реНрдХрд░реНрд╖
рд╣рдо рдЕрдкрдиреЗ рд▓рдХреНрд╖реНрдп рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ - рдПрдХ рдРрд╕рд╛ рдЙрдкрдХрд░рдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдХрд╛рдо рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдИрдбреАрдИ рдореЗрдВ рдкрд╣рд▓реЗ рдирд╣реАрдВ рдерд╛ред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ Apple рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдФрд░ рд╕рдВрдкреВрд░реНрдг iOS рд╕рдореБрджрд╛рдп рдХреЗ рд▓рд┐рдП рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ, рддреЛ рдХрд╛рдЙрдВрдЯрд░-рдмреНрд░рд╛рдВрдбрд┐рдВрдЧ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рдЖрд╕рд╛рди рд▓рдЧрддрд╛ рд╣реИ!
2015 рдореЗрдВ, Apple рдиреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдбреЛрдореЗрди рдкрд░ рд╕реНрд╡рд┐рдлреНрдЯ рд╕реНрд░реЛрдд рдХреЛрдб рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛, рдЬрд┐рд╕рд╕реЗ рдЗрд╕рдХреЗ рд╕рдВрдХрд▓рдХ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рдореЗрдВ рдЧреЛрддрд╛ рд▓рдЧрд╛рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЧрдпрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, Xcode 9 рдХреЗ рд╕рд╛рде, рдЖрдк рд╕реНрдерд╛рдиреАрдп рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдЯреВрд▓ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред C ++ рдХрд╛ рдореВрд▓ рдЬреНрдЮрд╛рди рдФрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдбрд┐рд╡рд╛рдЗрд╕ рдЖрдкрдХреЗ рдкрд╕рдВрджреАрджрд╛ IDE рдХреЛ рдереЛрдбрд╝рд╛ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред
рд╡рд░реНрдгрд┐рдд рдЕрдиреБрднрд╡ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдерд╛ - рдПрдХ рдЙрдкрдХрд░рдг рдмрдирд╛рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЬреЛ рд╡рд┐рдХрд╛рд╕ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИ, рд╣рдордиреЗ рднрд╛рд╖рд╛ рдХрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдЯреНрдЯрд░ рдЬреНрдЮрд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ред рдирд┐рдореНрди рд╕реНрддрд░ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдЦреБрд▓рд╛ рдкреЗрдВрдбреЛрд░рд╛ рдХрд╛ рдмреЙрдХреНрд╕ рдЖрдкрдХреЛ рдПрдХ рдирдП рдХреЛрдг рд╕реЗ рджреИрдирд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рд╣рдореЗрдВ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдкреНрд░рд╛рдкреНрдд рдЬреНрдЮрд╛рди рднреА рд╡рд┐рдХрд╛рд╕ рдХреА рдЖрдкрдХреА рд╕рдордЭ рдХреЛ рд╕рдореГрджреНрдз рдХрд░реЗрдЧрд╛!
рд╕рд╛рдордЧреНрд░реА
@victoriaqb - рд╡рд┐рдХреНрдЯреЛрд░рд┐рдпрд╛ рдХрд╢рд▓реАрдирд╛, рдЖрдИрдУрдПрд╕ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд╕рд╛рде рд╕рд╣-рд▓рд┐рдЦрд┐рдд рдереАред
рд╕реВрддреНрд░реЛрдВ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ
- рд╕реНрд╡рд┐рдлреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдбрд┐рд╡рд╛рдЗрд╕ред рднрд╛рдЧ реи
- рд╕реНрд╡рд┐рдлреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░-рдЖрдзрд╛рд░рд┐рдд рдЯреВрд▓ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХреИрд╕реЗ рдХрд░реЗрдВ? рдЪрд░рдг-рджрд░-рдЪрд░рдг рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛
- рдПрдХ iOS рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдлреНрдЯ рдПрдПрд╕рдЯреА рдХреЛ рдбрдВрдк рдХрд░рдирд╛
- рдкреЗрд╢ рд╣реИ рд╕реЛрд░реНрд╕рдХрд┐рдЯ рд╕реНрдЯреНрд░реЗрд╕ рдЯреЗрд╕реНрдЯрд░
- рдкрд░реАрдХреНрд╖рдг рддреЗрдЬ рд╣реИ
- [SR-5744] рдЧрд╛рд░реНрдб-рд▓реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд # 24566 рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕рдХреНрд░рд┐рдп рдХрд░рдирд╛