Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

부록 E: 진단 색인

이 표는 최종 컴파일러의 오류 레지스트리에서 생성됩니다. 코드는 안정적인 식별자입니다. 메시지와 보조 레이블은 소스 프로그램에 대한 맥락을 덧붙입니다. 주 레이블은 진단을 일으킨 위치를 가리킵니다.

코드의미
E0001잘못된 토큰
E0002잘못된 구문
E0003잘못된 레이아웃
E0004잘못된 프로젝션 점
E0101바인딩되지 않은 변수
E0102중복 정의
E0103바인딩되지 않은 생성자 또는 타입
E0104중복 필드
E0110예약된 연산자의 재정의
E0111Prelude 밖의 프리미티브
E0120함수가 아닌 재귀 바인딩
E0130정의 없는 결합성
E0201타입 불일치
E0202무한 타입
E0203시그니처가 너무 일반적임
E0210인스턴스 없음
E0211잘못된 인스턴스 메서드 또는 중복 인스턴스
E0230모호한 타입
E0240레코드는 생성자를 하나만 가져야 함
E0241필드 누락
E0242중복된 필드 바인딩
E0243알 수 없는 필드
E0244타입이 필드를 선언하지 않음
E0245모호한 필드 접근
E0250Main은 IO () 타입이어야 함
E0301카인드 불일치
E0302부분 적용된 동의어
E0303순환 동의어
W0001비망라적 매치
W0002중복된 절

어휘 분석, 레이아웃, 파싱은 E00xx를 사용합니다. 이름 변환은 E01xx, 타입 검사는 E02xx, 카인드 검사는 E03xx를 사용합니다. 한 패스가 여러 진단을 보고할 수 있지만, 드라이버는 오류가 발생한 뒤에는 이후 패스를 실행하지 않습니다.

W0001은 누락되었을 수 있는 매치를 보고하며, 가능한 경우 증인(witness) 패턴을 함께 제시합니다. W0002는 도달할 수 없는 절을 식별합니다. 경고는 프로그램을 거부하지 않습니다. 실행이 실제로 도달한 누락된 매치는 런타임 오류를 일으킵니다.

런타임 오류에는 컴파일러 코드 대신 메시지가 있습니다. 런타임 오류 메시지는 fun:으로 시작하며 상태 1로 종료합니다. exitWith는 요청된 상태를 사용합니다. 컴파일러 덤프와 내부 린트 실패는 개발자 도구이지, 진단 API를 대신하는 수단이 아닙니다.

레코드 필드가 모호하면 수신자의 타입을 명시하십시오. 클래스 제약이 모호하면 제약된 타입이 결과에 드러나게 하거나 명시적으로 선택하십시오. Fun은 해소되지 않은 수치 제약에 기본 타입을 지정하지 않습니다.


원문 © Stephen Diehl · Write You a Haskell · 산문 CC BY-SA 4.0 · 코드 MIT
yeokja 한국어 번역 · Anthropic 사의 claude-opus-5-5 모델을 활용하여 번역되었으며 학습을 모두 비허용한 상태로 작업하였습니다 · 이 문서는 원문을 수정한 비공식 번역본이며 산문은 같은 CC BY-SA 4.0으로 제공합니다.