MarcWeber / hasktags

Produces ctags "tags" and etags "TAGS" files for Haskell programs
Other
130 stars 33 forks source link

crashing on -x -f - #97

Open cheater opened 5 months ago

cheater commented 5 months ago
  1. install hasktags from nix
  2. go to hasktags git root
  3. hasktags -x -f - src/Tags.hs
  4. crashes with hasktags: <stdout>: hPutStr: illegal operation (handle is closed)
  5. happens on all other haskell files I tested also

Full log:

!_TAG_FILE_FORMAT   2   /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED   1   /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_PROGRAM_NAME  hasktags
FTClass src/Tags.hs /^    | FTClass$/;" cons    data:FoundThingType line:74 language:Haskell
FTCons  src/Tags.hs /^    | FTCons FoundThingType String$/;"    cons    data:FoundThingType line:77 language:Haskell
FTConsAccessor  src/Tags.hs /^    | FTConsAccessor FoundThingType String String$/;" cons    data:FoundThingType line:79 language:Haskell
FTConsGADT  src/Tags.hs /^    | FTConsGADT String$/;"   cons    data:FoundThingType line:80 language:Haskell
FTData  src/Tags.hs /^    | FTData$/;"  cons    data:FoundThingType line:71 language:Haskell
FTDataGADT  src/Tags.hs /^    | FTDataGADT$/;"  cons    data:FoundThingType line:72 language:Haskell
FTFuncImpl  src/Tags.hs /^    | FTFuncImpl Scope$/;"    cons    data:FoundThingType line:69 language:Haskell
FTFuncTypeDef   src/Tags.hs /^  = FTFuncTypeDef String Scope$/;"    cons    data:FoundThingType line:68 language:Haskell
FTInstance  src/Tags.hs /^    | FTInstance$/;"  cons    data:FoundThingType line:75 language:Haskell
FTModule    src/Tags.hs /^    | FTModule$/;"    cons    data:FoundThingType line:76 language:Haskell
FTNewtype   src/Tags.hs /^    | FTNewtype$/;"   cons    data:FoundThingType line:73 language:Haskell
FTOther src/Tags.hs /^    | FTOther$/;" cons    data:FoundThingType line:78 language:Haskell
FTPattern   src/Tags.hs /^    | FTPattern$/;"   cons    data:FoundThingType line:82 language:Haskell
FTPatternTypeDef    src/Tags.hs /^    | FTPatternTypeDef String$/;" cons    data:FoundThingType line:81 language:Haskell
FTType  src/Tags.hs /^    | FTType$/;"  cons    data:FoundThingType line:70 language:Haskell
FileData    src/Tags.hs /^data FileData = FileData FileName [FoundThing]$/;"    d   line:116    language:Haskell
FileData    src/Tags.hs /^data FileData = FileData FileName [FoundThing]$/;"    cons    data:FileData   line:116    language:Haskell
FileName    src/Tags.hs /^type FileName = String$/;"    t   line:50 language:Haskell
FoundThing  src/Tags.hs /^data FoundThing = FoundThing FoundThingType ThingName Pos$/;" d   line:112    language:Haskell
FoundThing  src/Tags.hs /^data FoundThing = FoundThing FoundThingType ThingName Pos$/;" cons    data:FoundThing line:112    language:Haskell
FoundThingType  src/Tags.hs /^data FoundThingType$/;"   d   line:67 language:Haskell
Pos src/Tags.hs /^data Pos = Pos { _fileName    :: FileName -- file name$/;"    d   line:57 language:Haskell
Pos src/Tags.hs /^data Pos = Pos { _fileName    :: FileName -- file name$/;"    cons    data:Pos    line:57 language:Haskell
Scope   src/Tags.hs /^type Scope = Maybe (FoundThingType, String)$/;"   t   line:54 language:Haskell
Show FoundThingType src/Tags.hs /^instance Show FoundThingType where$/;"    i   line:85 language:Haskell
Tags    src/Tags.hs /^module Tags where$/;" m   line:6  language:Haskell
ThingName   src/Tags.hs /^type ThingName = String$/;"   t   line:52 language:Haskell
_fileName   src/Tags.hs /^data Pos = Pos { _fileName    :: FileName -- file name$/;"    c_a cons:Pos.Pos    line:57 language:Haskell
_lineContent    src/Tags.hs /^               , _lineContent :: String   -- string that makes up that line$/;"   c_a cons:Pos.Pos    line:60 language:Haskell
_lineNumber src/Tags.hs /^               , _lineNumber  :: Int      -- line number$/;"  c_a cons:Pos.Pos    line:58 language:Haskell
_tokenNumber    src/Tags.hs /^               , _tokenNumber :: Int      -- token number$/;" c_a cons:Pos.Pos    line:59 language:Haskell
ctagEncode  src/Tags.hs /^ctagEncode :: Char -> String$/;"  ft  signature:(Char -> String)  line:124    language:Haskell
dumpThing   src/Tags.hs /^dumpThing :: Bool -> FoundThing -> String$/;" ft  signature:(Bool -> FoundThing -> String)    line:144    language:Haskell
etagsDumpFileData   src/Tags.hs /^etagsDumpFileData :: FileData -> String$/;"   ft  signature:(FileData -> String)  line:177    language:Haskell
etagsDumpThing  src/Tags.hs /^etagsDumpThing :: FoundThing -> String$/;"    ft  signature:(FoundThing -> String)    line:183    language:Haskell
extendedDump    src/Tags.hs /^extendedDump :: FoundThing -> String$/;"  ft  signature:(FoundThing -> String)    line:136    language:Haskell
getfoundthings  src/Tags.hs /^getfoundthings :: FileData -> [FoundThing]$/;"    ft  signature:(FileData -> [FoundThing])    line:121    language:Haskell
mywords src/Tags.hs /^mywords :: Bool -> String -> [String]$/;" ft  signature:(Bool -> String -> [String])  line:17 language:Haskell
normalDump  src/Tags.hs /^normalDump :: FoundThing -> String$/;"    ft  signature:(FoundThing -> String)    line:133    language:Haskell
show    src/Tags.hs /^  show (FTFuncTypeDef s (Just (FTClass, p))) =$/;"    fi  instance:Show FoundThingType    line:86 language:Haskell
showLine    src/Tags.hs /^showLine :: Pos -> String$/;" ft  signature:(Pos -> String)   line:130    language:Haskell
sortThings  src/Tags.hs /^sortThings :: [FoundThing] -> [FoundThing]$/;"    ft  signature:([FoundThing] -> [FoundThing])    line:164    language:Haskell
writectagsfile  src/Tags.hs /^writectagsfile :: Bool -> [FileData] -> Handle -> IO ()$/;"   ft  signature:(Bool -> [FileData] -> Handle -> IO ())   line:150    language:Haskell
writeetagsfile  src/Tags.hs /^writeetagsfile :: [FileData] -> Handle -> IO ()$/;"   ft  signature:([FileData] -> Handle -> IO ())   line:174    language:Haskell
hasktags: <stdout>: hPutStr: illegal operation (handle is closed)
cheater commented 5 months ago

workaround: specify -c -x -f -.

duplicate of #86