דיאגנוסטיקה של שגיאות
הקומפיילר של Wave מציג את השגיאות עם קוד (E####) יחד עם מיקום מקור/הקשר/טיפים לפתרון.
פורמט פלט
העיצוב הבסיסי הוא כדלקמן.
error[E3001]: semantic validation failed: שימוש במזהה לא מוצהר `x`
--> file.wave:2:18
1 | fun main() {
2 | println("{}", x);
| ^ לא נמצא בטווח זה
= הקשר: בדיקת תוקף סמנטי
= עזרה: תקן בעיות בהתאמה, טווח, ותוקף ביטוי.
פריטי פלט:
error[E....]: קוד שגיאה ותמצית--> קובץ:שורה:טור: מיקום הבעיה- בלוק מקור + סימון caret (
^) מודגש הקשר,צפוי,נמצא,הערה,עזרה,הצעה
קוד שגיאה מייצג
E1001תו לא צפויE1002הערת בלוק לא סגורהE1003מחרוזת לא סגורהE1004תו escape לא חוקיE1005ליטרל תו לא חוקיE1006פורמט ליטרל מ ספר לא חוקיE2001שגיאת תחביר של המפענחE3001שגיאת אימות סמנטיE3102השמה שלnullלאובייקט שאינו מצביעE3201צמצום מספרי שלם בלתי מפורש אסורE9001שגיאה פנימית ביצירת קוד בגיבוי
גם בשגיאת גיבוי מוצגת מיקום מקור
בשלב יצירת הקוד (LLVM), גם במקרים של panic פנימי, אם אפשרי, משוערת ומוצגת מיקום הקריאה/ההצהרה בפועל.
שגיאה[E9001]: שגיאה פנימית של מהדר בעת יצירת קוד (llvm-ir-generation)
--> test.wave:12:9
= נמצא: הפונקציה 'foo' לא נמצאה
= הערה: מיקום המקור משוער משם פונקציה לא פתור ב-panic בגיבוי
כשלא ניתן לשער את המיקום, נעשה שימוש במיקום fallback, והעובדה מוצגת ב-הערה.