tree-sitter / tree-sitter-haskell

Haskell grammar for tree-sitter.
MIT License
153 stars 36 forks source link

Hangs when highlighting/parsing `data Aa = Bb | Cc | ` #119

Open amadeusdotpng opened 6 months ago

amadeusdotpng commented 6 months ago

Running

tree-sitter highlight a.hs
# or
tree-sitter parse a.hs

with a.hs as

-- Fails
data Aa = Bb | Cc | 

Works just fine if a.hs is any of the following

-- Works
data Aa = Bb | 
-- Works
data Aa = Bb | Cc | Dd 
-- Works
data Aa = Bb | Cc | 

f :: int -> int

Using Mac M1 Pro, MacOS Monterey 12.5.1

tek commented 6 months ago

thanks! appears to be fixed in the rewrite, check out this repo for a preview

vyuuui commented 6 months ago

Second this, also hangs after a typeclass constraint for a data declaration (seems to be after the => token is seen?), but only if it's not the first thing parsed in the file. Minimal example:

a = 0
g :: (Eq a) =>
lex-LKNeu commented 5 months ago

Second this, also hangs after a typeclass constraint for a data declaration (seems to be after the => token is seen?), but only if it's not the first thing parsed in the file. Minimal example:

a = 0
g :: (Eq a) =>

I'm having the exact same problem, but it only appears to occur if the unfinished constraint is the very last thing in the file.

bar = 3

foo :: (Num a) =>

That hangs, but if, before I type the constraint, I put something else to parse after it (I tested with the character f on the next line), it's fine:

bar = 3

foo :: (Num a) => a -> a -- I could type this just fine
f -- if I put this here first