오류 진단
Wave 컴파일러는 오류를 코드(E####)와 함께, 소스 위치/맥락/해결 힌트까지 한 번에 보여줍니다.
출력 형식
기본 형식은 다음과 같습니다.
error[E3001]: semantic validation failed: use of undeclared identifier `x`
--> file.wave:2:18
1 | fun main() {
2 | println("{}", x);
| ^ not found in this scope
= context: semantic validation
= help: fix mutability, scope, and expression validity issues
출력 항목:
error[E....]: 에러 코드와 요약--> file:line:column: 문제 위치- 소스 블록 + caret(
^) 하이라이트 context,expected,found,note,help,suggestion
대표 에러 코드
E1001예상하지 못한 문자E1002닫히지 않은 블록 주석E1003닫히지 않은 문자열E1004잘못된 문자열 escapeE1005잘못된 문자 리터럴E1006잘못된 숫자 리 터럴 형식E2001파서 구문 오류E3001의미 분석(semantic validation) 오류E3102null을 비포인터에 대입E3201암시적 정수 축소 금지E9001백엔드 코드생성 내부 오류
백엔드 오류도 소스 위치 표시
코드 생성(LLVM) 단계에서 내부 panic이 발생해도, 가능한 경우 실제 호출/선언 위치를 추론해 표시합니다.
error[E9001]: compiler internal error during code generation (llvm-ir-generation)
--> test.wave:12:9
= found: Function 'foo' not found
= note: source position inferred from unresolved function name in backend panic
위치 추론이 불가능한 경우에는 fallback 위치가 사용되며, 해당 사실이 note에 함께 표시됩니다.