-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Labels
Description
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.