콘텐츠로 이동

진단 시스템 (Diagnostics)

Swift 컴파일러 진단 메시지 작성 가이드라인. 원본: swift/docs/Diagnostics.md

진단 분류

  • Error: 코드 의도가 불명확하거나 즉시 크래시를 야기하는 경우
  • Warning: 코드 의도는 명확하지만 즉시 크래시하지 않는 경우. Swift에서는 경고를 비활성화할 수 없음 (방언 분화 방지)
  • Note: 직전 error/warning에 첨부되는 추가 정보

작성 가이드라인

  • 단일 구/문장, 마침표 없음
  • 신문 헤드라인 스타일 — 불필요한 관사 생략
  • 컴파일러가 코드를 이해했음을 보여주는 정보 포함
  • "규칙"으로 표현: 'super.init' cannot be called outside of an initializer
  • '로 속성/심볼 이름 인용 (terms of art는 평문)

Fix-it

  • 한 가지 명확한 수정만 있을 때 제공
  • 기계적으로 적용 가능해야 함
  • 사용자의 의도를 바꾸지 않아야 함

교육적 노트 (Educational Notes)

swift/userdocs/diagnostics/ 디렉토리에 .md 파일로 작성. EducationalNotes.def에서 진단 ID와 연결. 사용자에게 -print-educational-notes 플래그로 표시.

관련 페이지: overview, type-checker, debugging-the-compiler, error-handling