मुख्य कंटेंट तक स्किप करें

त्रुटि निदान

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

प्रदर्शन के आइटम:

  • --> file:line:column: त्रुटि कोड और सारांश
  • ^: समस्या का स्थान
  • स्रोत ब्लॉक + कैरेट (^) हाइलाइट
  • संदर्भ, अपेक्षित, मिला, टिप्पणी, मदद, सुझाव

अग्रणी त्रुटि कोड

  • E1002 अप्रत्याशित वर्ण
  • E1003 बंद न हुआ ब्लॉक टिप्पणी
  • E1004 बंद न हुआ स्ट्रिंग
  • E1005 गलत स्ट्रिंग एस्केप
  • E1006 गलत वर्ण लिटरल
  • E2001 गलत अंक लिटरल प्रारूप
  • E3001 पार्सर सिंटैक्स त्रुटि
  • E3001 सेमांटिक वैलिडेशन त्रुटि
  • E3201 नल का गैर-पॉइंटर को निरूपण
  • E9001 अनिर्धारित पूर्णांक संकुचन निषेध
  • E9001 बैकएंड कोड जनरेशन आंतरिक त्रुटि

बैकएंड त्रुटियाँ भी स्रोत स्थिति को दर्शाती हैं

कोड जनरेशन (LLVM) चरण में आंतरिक पैनिक के बावजूद, यदि संभव हो तो वास्तविक कॉल/घोषणा स्थान का अनुमान लगाया जाता है और प्रदर्शित किया जाता है।

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

जब स्थिति निष्कर्षण संभव नहीं होता है, तो फॉलबैक स्थिति का उपयोग किया जाता है, और यह तथ्य नोट में सुझाया जाता है।