GHC hibaüzenetek

Fejlesztés alatt

Megjegyzések

A GHC hibák alakja modulnév:sorszám:oszlopszám: hiba.
A sorszámozás 1-től kezdődik. Az értelmezőbe írt hibáknál a sor száma általában 1. Az oszlopszámozás szintén 1-től kezdődik.

A hibák csoportokba oszthatók aszerint, hogy a fordítás melyik fázisában kerültek elő. Addig nem jönnek elő egy adott csoportba tartozó hibák, amíg valalamelyik korábbi csoportban levő hiba szerepel.

Tipikus hibák következnek.

Lexikális hibák

Karakter literál csak egy karatert tartalmazhat (a hiba helye a második karakter)

Test>
<interactive>:1:1: error:
    • Syntax error on 'xy'
      Perhaps you intended to use TemplateHaskell or TemplateHaskellQuotes
    • In the Template Haskell quotation 'xy'

Szöveg literál nincs befejezve (itt azért mert a második idézőjel a szöveg része)

Test>
<hint>:1:6: error:
    lexical error in string/character literal at end of input

Befejezetlen többsoros megjegyzés (a hiba helye a megjegyzés kezdete)

Test>
<hint>:1:3: error: unterminated `{-'

Margóhibák

A margóhibákat a nem megfelelő behúzás/margó okozza.

Tipikus hiba a globális definíciók beljebb kezdése (tehát nem az első oszlopban kezdődnek).

Nyelvtani hibák

Operátor alkalmazási hibák

Két operátor egymás mellett (a Haskellben a - jel nem része a számliterálnak)

Test>
<interactive>:1:1: error:
    Precedence parsing error
        cannot mix ‘+’ [infixl 6] and prefix `-' [infixl 6] in the same infix expression

Hatóköri hibák / nem definiált entitások

Egybeírt grafikus karakterek (egymás utáni grafikus karakterekből egy token lesz, itt azt hiszi, operátornév)

Test>
<interactive>:1:5: error:
    • Variable not in scope: (..-) :: Integer -> Integer -> a
    • Perhaps you meant ‘.-.’ (imported from MyPrelude)

Egybeírt alfanumerikus karakterek (a Haskellben a ' és a _ is alfanumerikus karakterek!)

Test>
<interactive>:1:1: error:
    • Variable not in scope: length'l
    • Perhaps you meant ‘length’ (imported from MyPrelude)

Elírt függvénynév (azt hiszi hogy fl-et nem definiáltuk, pedig csak elírtuk)

fl :: Int -> Int
f1 x = x

Típushibák

Típusosztály hibák

Kevés/sok függvényparaméter definícióban

Futási idejű hibák

Hibás eredmények

Lassú programok