curry-frontend issueshttps://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues2020-12-14T11:08:23Zhttps://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/123Type-annotated FlatCurry is not generated if it is the only target2020-12-14T11:08:23ZFinn TeegenType-annotated FlatCurry is not generated if it is the only targetFinn TeegenFinn Teegenhttps://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/121Missing Data context for non-linear as-patterns2020-12-10T13:26:19ZFinn TeegenMissing Data context for non-linear as-patternsConsider the function `f x@(Just _) x = ()`. Its inferred type should be `f :: Data a => Maybe a -> Maybe a -> ()`, however, it is `f :: Maybe a -> Maybe a -> ()`.Consider the function `f x@(Just _) x = ()`. Its inferred type should be `f :: Data a => Maybe a -> Maybe a -> ()`, however, it is `f :: Maybe a -> Maybe a -> ()`.https://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/117Wrong desugaring of type synonyms2020-11-29T19:40:01ZFinn TeegenWrong desugaring of type synonymsThe program
```
type A _ _ c = c
f = error "" :: A x x y
```
gets desugared to
```
type A _ _ c = c
f = error "" :: x
```
while the local type signature should be `:: y`. This is due to the double occurence of the variable `x` that is...The program
```
type A _ _ c = c
f = error "" :: A x x y
```
gets desugared to
```
type A _ _ c = c
f = error "" :: x
```
while the local type signature should be `:: y`. This is due to the double occurence of the variable `x` that is not handled properly.https://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/115Remove type synonyms completely in desugaring2020-11-29T19:40:00ZFinn TeegenRemove type synonyms completely in desugaringCurrently, type synonyms remain in data constructor declarations (while they get properly replaced in signatures). Concerning that FC should not contain type synonyms anymore, desugaring should get rid of them.
Note that the dictionary ...Currently, type synonyms remain in data constructor declarations (while they get properly replaced in signatures). Concerning that FC should not contain type synonyms anymore, desugaring should get rid of them.
Note that the dictionary transformation performs this task at the moment. However, it is merely a side effect and does generally not belong in that phase. Moreover, having no type synonyms at all after desugaring simplifies all subsequent phases (including the dictionary transformation that currently has to deal with synonyms).https://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/113Frontend crash during parsing2020-11-26T20:50:18ZFinn TeegenFrontend crash during parsingAny error during parsing leads to a crash of the frontend with the error message `pakcs-frontend: Prelude.!!: index too large`.Any error during parsing leads to a crash of the frontend with the error message `pakcs-frontend: Prelude.!!: index too large`.Fredrik WieczerkowskiFredrik Wieczerkowskihttps://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/112Remove renaming from type syntax check2020-11-26T17:47:36ZFinn TeegenRemove renaming from type syntax checkThe renaming was necessary when locally quantified type variables could be introduced. As this is no longer the case, the renaming is obsolete.The renaming was necessary when locally quantified type variables could be introduced. As this is no longer the case, the renaming is obsolete.https://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/108Make specialization in dictionary transformation an optional optimization2020-11-23T16:54:00ZFinn TeegenMake specialization in dictionary transformation an optional optimizationThis is very useful for debugging the dictionary transformation.This is very useful for debugging the dictionary transformation.Finn TeegenFinn Teegenhttps://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/93Improve spans for error messages2020-10-30T12:28:13ZFinn TeegenImprove spans for error messagesConsider the following program.
```
test = not (f True True)
f :: Bool -> Bool -> String
f _ _ = ""
```
The compiler prints the following (correct) error message when trying to compile the program.
```
1:6-1:24 Error:
Type error in ...Consider the following program.
```
test = not (f True True)
f :: Bool -> Bool -> String
f _ _ = ""
```
The compiler prints the following (correct) error message when trying to compile the program.
```
1:6-1:24 Error:
Type error in application
not (f True True)
Term: (f True True)
Inferred type: [Prelude.Char]
Expected type: Prelude.Bool
Types Prelude.Bool and [Prelude.Char] are incompatible
|
1 | test = not (f True True)
| ^^^^^^^^^^^^^^^^^^^
```
However, the highlighted part seems to be a bit off (or at least starting to early).Fredrik WieczerkowskiFredrik Wieczerkowskihttps://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/85Wrong warning for missing pattern with qualified Type2020-10-20T21:28:07ZKai ProttWrong warning for missing pattern with qualified TypeIt seems that the lookup for the defined constructors of a specific type is done unqualified when the warnings for missing patterns are issued.
Consider the following setup:
```haskell
module Ex1 where
data T = C1
```
```haskell
modu...It seems that the lookup for the defined constructors of a specific type is done unqualified when the warnings for missing patterns are issued.
Consider the following setup:
```haskell
module Ex1 where
data T = C1
```
```haskell
module Ex2 where
data T = C2
```
```haskell
import Ex1
import qualified Ex2
test2 :: Ex2.T -> Int
test2 Ex2.C2 = 2
test1 :: T -> Int
test1 C1 = 1
```
Then the following (obviously wrong) warning is issued.
```
Test.curry, line 5.1: Warning:
Pattern matches are non-exhaustive
In an equation for `test2':
Patterns not matched:
Ex2.C1
```
This was already broken before #16 got fixed