|
|
## Statische Fehlermeldungen
|
|
|
|
|
|
| Name | Text | Einschätzung der Schwierigkeit | Mögliche Umsetzung |
|
|
|
| ------------------- | ------------------------------|----------------------------------------------| ------------------------------ |
|
|
|
| NoFunDef TypeSignature | Type signature for $name without a definition. Did you mean $similar? | Einfach | TypeSig ohne PatBind suchen |
|
|
|
| NoFunDef Fixity | Infix declaration for $name without a definition. Did you mean $similar? | Einfach | TypeSig ohne PatBind suchen |
|
|
|
| Undefined | Undefined $entity $name. Did you mean $similar? | Mittel | Liste der Definitionen durchsuchen + Vorschlagsalgorithmus |
|
|
|
| Duplicated all | $entity $name imported from multiple modules: $modules | Einfach | Duplikate in importierten Modulen suchen |
|
|
|
| Duplicated any | $entity $name clashes with definition $name' in $module | Einfach | Duplikate in selbst definierten Modulen + Imports suchen |
|
|
|
| LastStatementNotExpr | Last generator in do {...} must be an expression | Einfach | Spezieller Typfehler |
|
|
|
| TypeVarApplication | Type variable $name cannot be applied to another type | Einfach | TyApp mit Typvariable in erster Komponente |
|
|
|
| ArityMismatch | $entity $name should have $argc arguments, but has $argc' arguments | - | Typfehler? |
|
|
|
| RecursiveTypeSynonyms | Recursive type synonym $name. Use "data" to write a recursive data type | Einfach | TypeDecl enthält eigenen identifier auf rechter Seite |
|
|
|
| DefArityMismatch | Arity mismatch in function bindings for $name. $arity parameters in most of the clauses | Einfach | Wird von SrcExts gemeldet |
|
|
|
| PatternDefinesNoVars | Left hand side pattern defines no variables | Einfach | let- und where-Ausdrücke müssen auf der linken Seite immer mindestens eine Variable haben |
|
|
|
| WrongFileName | The file name $name doesn't match the module name $module | Einfach | Vergleichen von Modulnamen und Dateinamen |
|
|
|
| IntLiteralTooBig | Int literal $value too big. Maximum is $max | Einfach | Int ist plattformspezifisch (vermutlich 32 oder 64-Bit) |
|
|
|
| OverloadedRestrPat | Illegal overloaded type signature for $name. Only functions and simple patterns can have an overloaded type | - | ? |
|
|
|
| OverloadingDisabled | Cannot handle contexts when overloading is disabled | - | ? |
|
|
|
| WrongOverloadingFlag | Using overloaded Prelude while overloading is not enabled. Compile with --overloading, or use the simple Prelude | - | ? |
|
|
|
| AmbiguousContext | Type variable $name appears in the context but not in the type | Einfach | Prüfen ab Typvariable in Typconstraints in Typsignatur vorkommt |
|
|
|
| UnknownClass | Unknown class $name (Helium only supports Eq, Ord, Num, Show, Enum) | Einfach | Name in whitelist suchen |
|
|
|
| NonDerivableClass | Cannot derive class $name. Only Show and Eq instances can be derived | Einfach | Name in whitelist suchen|
|
|
|
| CannotDerive | Cannot derive instance for class $name |Mittel| Beispiel: `data GG = G (String -> Int) deriving Show` nicht möglich da kein Show für Funktionen. Ausweg über eigene Instanzen! |
|
|
|
| TupleTooBig | Tuples can have up to 15 elements | Einfach | Vergleichen von Tupelkonstruktor und Anzahl an Argumenten |
|
|
|
| undefinedConstructorInExpr | Type constructor $name cannot be used in an expression | Einfach | Prüfen, ob Typkonstruktor in Ausdruck vorhanden ist |
|
|
|
| undefinedConstructorInPat | Use identifiers starting with a lower case letter to define a function or a variable. Type constructor $name cannot be used in a pattern | Einfach | PatBind mit großgeschriebenem Identifier suchen |
|
|
|
| Name | Text | Einschätzung der Schwierigkeit | Mögliche Umsetzung | Implementiert? |
|
|
|
| ------------------- | ------------------------------|----------------------------------------------| ------------------------------ |:---------------:|
|
|
|
| NoFunDef TypeSignature | Type signature for $name without a definition. Did you mean $similar? | Einfach | TypeSig ohne PatBind suchen | ✓ |
|
|
|
| NoFunDef Fixity | Infix declaration for $name without a definition. Did you mean $similar? | Einfach | TypeSig ohne PatBind suchen | ✗ |
|
|
|
| Undefined | Undefined $entity $name. Did you mean $similar? | Mittel | Liste der Definitionen durchsuchen + Vorschlagsalgorithmus | ✗ |
|
|
|
| Duplicated all | $entity $name imported from multiple modules: $modules | Einfach | Duplikate in importierten Modulen suchen | ✗ |
|
|
|
| Duplicated any | $entity $name clashes with definition $name' in $module | Einfach | Duplikate in selbst definierten Modulen + Imports suchen | ✗ |
|
|
|
| LastStatementNotExpr | Last generator in do {...} must be an expression | Einfach | Spezieller Typfehler | ✗ |
|
|
|
| TypeVarApplication | Type variable $name cannot be applied to another type | Einfach | TyApp mit Typvariable in erster Komponente | ✗ |
|
|
|
| ArityMismatch | $entity $name should have $argc arguments, but has $argc' arguments | - | Typfehler? | ✗ |
|
|
|
| RecursiveTypeSynonyms | Recursive type synonym $name. Use "data" to write a recursive data type | Einfach | TypeDecl enthält eigenen identifier auf rechter Seite | ✗ |
|
|
|
| DefArityMismatch | Arity mismatch in function bindings for $name. $arity parameters in most of the clauses | Einfach | Wird von SrcExts gemeldet | ✗ |
|
|
|
| PatternDefinesNoVars | Left hand side pattern defines no variables | Einfach | let- und where-Ausdrücke müssen auf der linken Seite immer mindestens eine Variable haben | ✗ |
|
|
|
| WrongFileName | The file name $name doesn't match the module name $module | Einfach | Vergleichen von Modulnamen und Dateinamen | ✗ |
|
|
|
| IntLiteralTooBig | Int literal $value too big. Maximum is $max | Einfach | Int ist plattformspezifisch (vermutlich 32 oder 64-Bit) | ✗ |
|
|
|
| OverloadedRestrPat | Illegal overloaded type signature for $name. Only functions and simple patterns can have an overloaded type | - | ? | ✗ |
|
|
|
| OverloadingDisabled | Cannot handle contexts when overloading is disabled | - | ? | ✗ |
|
|
|
| WrongOverloadingFlag | Using overloaded Prelude while overloading is not enabled. Compile with --overloading, or use the simple Prelude | - | ? | ✗ |
|
|
|
| AmbiguousContext | Type variable $name appears in the context but not in the type | Einfach | Prüfen ab Typvariable in Typconstraints in Typsignatur vorkommt | ✗ |
|
|
|
| UnknownClass | Unknown class $name (Helium only supports Eq, Ord, Num, Show, Enum) | Einfach | Name in whitelist suchen | ✗ |
|
|
|
| NonDerivableClass | Cannot derive class $name. Only Show and Eq instances can be derived | Einfach | Name in whitelist suchen| ✗ |
|
|
|
| CannotDerive | Cannot derive instance for class $name |Mittel| Beispiel: `data GG = G (String -> Int) deriving Show` nicht möglich da kein Show für Funktionen. Ausweg über eigene Instanzen! | ✗ |
|
|
|
| TupleTooBig | Tuples can have up to 15 elements | Einfach | Vergleichen von Tupelkonstruktor und Anzahl an Argumenten | ✗ |
|
|
|
| undefinedConstructorInExpr | Type constructor $name cannot be used in an expression | Einfach | Prüfen, ob Typkonstruktor in Ausdruck vorhanden ist | ✗ |
|
|
|
| undefinedConstructorInPat | Use identifiers starting with a lower case letter to define a function or a variable. Type constructor $name cannot be used in a pattern | Einfach | PatBind mit großgeschriebenem Identifier suchen | ✗ |
|
|
|
|
|
|
## Warnungen
|
|
|
| Name | Text | Einschätzung der Schwierigkeit | Mögliche Umsetzung |
|
|
|
| ------------------- | ------------------------------|----------------------------------------------| ------------------------------ |
|
|
|
| NoTypeDef | Missing type signature: $name :: $signature | Einfach | PatBind ohne TypeSig suchen |
|
|
|
| Shadow | Variable $shadower shadows the one at $positionOfShadowee | Einfach | Prüfen, ob identifier mehrfach in einer Regel vorkommt |
|
|
|
| Unused | $entity $name is not used | Einfach | Definitionen markieren, falls benutzt => unmarktierte Definitionen melden |
|
|
|
| SimilarFunctionBindings | Suspicious adjacent functions $f1 and $f2 | Mittel | Regeln auf Ähnlichkeit der Namen prüfen |
|
|
|
| SuspiciousTypeVariable | Suspicious type variable $name. Did you mean the type constructor $conName? | - | ? |
|
|
|
| ReduceContext | The context $name has superfluous predicates. You may change it into $reduced | - | ? |
|
|
|
| MissingPatterns | Missing pattern in $place: $patList | Schwierig | Prüfen, ob alle Konstruktoren eines Datentyps in Regeln vorkommen |
|
|
|
| UnreachablePatternLHS | Unreachable pattern: $pat | - | ? |
|
|
|
| UnreachablePatternCase | Unreachable pattern: $pat | - | ? |
|
|
|
| UnreachableGuard | Unreachable guard: $guard | - | ? |
|
|
|
| FallThrough | It is good practise to have 'otherwise' as the last guard | - | Abhängig davon, ob alle Möglichkeiten abgedeckt sind |
|
|
|
| SignatureTooSpecific | Declared type signature for $name could be more general: declared type $dt, inferred type $it | - | Typinferenz, Vergleich mit vorhandener Signatur |
|
|
|
| Name | Text | Einschätzung der Schwierigkeit | Mögliche Umsetzung | Implementiert?
|
|
|
| ------------------- | ------------------------------|----------------------------------------------| ------------------------------ | :--------------: |
|
|
|
| NoTypeDef | Missing type signature: $name :: $signature | Einfach | PatBind ohne TypeSig suchen | ✗ |
|
|
|
| Shadow | Variable $shadower shadows the one at $positionOfShadowee | Einfach | Prüfen, ob identifier mehrfach in einer Regel vorkommt | ✗ |
|
|
|
| Unused | $entity $name is not used | Einfach | Definitionen markieren, falls benutzt => unmarktierte Definitionen melden | ✗ |
|
|
|
| SimilarFunctionBindings | Suspicious adjacent functions $f1 and $f2 | Mittel | Regeln auf Ähnlichkeit der Namen prüfen | ✗ |
|
|
|
| SuspiciousTypeVariable | Suspicious type variable $name. Did you mean the type constructor $conName? | - | ? | ✗ |
|
|
|
| ReduceContext | The context $name has superfluous predicates. You may change it into $reduced | - | ? | ✗ |
|
|
|
| MissingPatterns | Missing pattern in $place: $patList | Schwierig | Prüfen, ob alle Konstruktoren eines Datentyps in Regeln vorkommen | ✗ |
|
|
|
| UnreachablePatternLHS | Unreachable pattern: $pat | - | ? | ✗ |
|
|
|
| UnreachablePatternCase | Unreachable pattern: $pat | - | ? | ✗ |
|
|
|
| UnreachableGuard | Unreachable guard: $guard | - | ? | ✗ |
|
|
|
| FallThrough | It is good practise to have 'otherwise' as the last guard | - | Abhängig davon, ob alle Möglichkeiten abgedeckt sind | ✗ |
|
|
|
| SignatureTooSpecific | Declared type signature for $name could be more general: declared type $dt, inferred type $it | - | Typinferenz, Vergleich mit vorhandener Signatur | ✗ |
|
|
|
|
|
|
## Typfehlermeldungen
|
|
|
| Name | Text | Einschätzung der Schwierigkeit | Mögliche Umsetzung |
|
|
|
| ------------------- | ------------------------------|----------------------------------------------| ------------------------------ |
|
|
|
| makeNotGeneralEnoughTypeError | Type annotation/signature is too general. declared type $dt, inferred type $it. Hint: Try removing the type signature. | - | ? |
|
|
|
| makeMissingConstraintTypeError| Missing class constraint in type annotation/signature. Class constraint $con arising from $source. Hint: add the class constraint to the type signature | - | ? |
|
|
|
| makeUnresolvedOverloadingError | Don't know which instance to choose for $description. Function $f type $t used as $usedt. Hint: write an explicit type for this function e.g. (show :: [Int] -> String) | - | ? |
|
|
|
| makeReductionError | Type error in overloaded function $f type $t used as $usedt. Problem: $predicate is not instance of class $name | - | ? |
|
|
|
| makeRestrictedButOverloadedError | Illegal overloaded type inferred for $name. Variable $v, inferred type $t. Only functions and simple patterns can have an overloaded type | - | ? | |
|
|
\ No newline at end of file |
|
|
| Name | Text | Einschätzung der Schwierigkeit | Mögliche Umsetzung | Implementiert? |
|
|
|
| ------------------- | ------------------------------|----------------------------------------------| ------------------------------ | :------------: |
|
|
|
| makeNotGeneralEnoughTypeError | Type annotation/signature is too general. declared type $dt, inferred type $it. Hint: Try removing the type signature. | - | ? | ✗ |
|
|
|
| makeMissingConstraintTypeError| Missing class constraint in type annotation/signature. Class constraint $con arising from $source. Hint: add the class constraint to the type signature | - | ? | ✗ |
|
|
|
| makeUnresolvedOverloadingError | Don't know which instance to choose for $description. Function $f type $t used as $usedt. Hint: write an explicit type for this function e.g. (show :: [Int] -> String) | - | ? | ✗ |
|
|
|
| makeReductionError | Type error in overloaded function $f type $t used as $usedt. Problem: $predicate is not instance of class $name | - | ? | ✗ |
|
|
|
| makeRestrictedButOverloadedError | Illegal overloaded type inferred for $name. Variable $v, inferred type $t. Only functions and simple patterns can have an overloaded type | - | ? | ✗ | |
|
|
\ No newline at end of file |