Skip to content

Internal error when trying to use gazelle_cabal and gazelle_haskell_modules together #39

@googleson78

Description

@googleson78

While trying to smash gazelle_cabal and gazelle_haskell_modules together in a single gazelle invocation, I get the following golang exception:

panic: interface conversion: interface {} is gazelle_cabal.ImportData, not *gazelle_haskell_modules.HRuleImportData

goroutine 1 [running]:
github.com/tweag/gazelle_haskell_modules/gazelle_haskell_modules.(*gazelleHaskellModulesLang).Resolve(0x0, 0xc000170420, 0x400?, 0xc0006bf360?, 0xc00006e980, {0x9b8940?, 0xc000082720?}, {{0xc00015a019, 0x15}, {0x0, ...}, ...})
        external/io_tweag_gazelle_haskell_modules/gazelle_haskell_modules/lang.go:175 +0x21f
main.runFixUpdate({0xc00002a01a, 0x28}, 0x7ffcbae73675?, {0xc000132010, 0x0, 0x0})
        external/bazel_gazelle/cmd/gazelle/fix-update.go:376 +0x1356
main.run({0xc00002a01a?, 0x28?}, {0xc000132010?, 0x1?, 0x1?})
        external/bazel_gazelle/cmd/gazelle/gazelle.go:95 +0x1f3
main.main()
        external/bazel_gazelle/cmd/gazelle/gazelle.go:72 +0xdd

Adding gazelle_haskell_modules as a different target and running them in order works out fine.

Is this workflow of using a single target for both ("@io_tweag_gazelle_cabal//gazelle_cabal" and "@io_tweag_gazelle_haskell_modules//gazelle_haskell_modules" added to languages for the same target) simply not supported? If so, perhaps we should extend the README to indicate this. Additionally, it might be nice to add some better error instead of showing the internal golang exception. I guess this could be an issue for gazelle_cabal instead though.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions