diff --git a/gazelle/bzl/gazelle.go b/gazelle/bzl/gazelle.go index 94c32e95..e5aa803f 100644 --- a/gazelle/bzl/gazelle.go +++ b/gazelle/bzl/gazelle.go @@ -152,6 +152,13 @@ func (*bzlLibraryLang) Resolve(c *config.Config, ix *resolve.RuleIndex, rc *repo deps := make([]string, 0, len(imports)) for _, imp := range imports { + + if l, ok := resolve.FindRuleWithOverride(c, resolve.ImportSpec{Lang: languageName, Imp: imp}, languageName); ok { + depLabel := l.Rel(from.Repo, from.Pkg) + deps = append(deps, depLabel.String()) + continue + } + impLabel, err := label.Parse(imp) if err != nil { log.Printf("%s: import of %q is invalid: %v", from.String(), imp, err) diff --git a/gazelle/bzl/testdata/resolve_overwrite/BUILD.in b/gazelle/bzl/testdata/resolve_overwrite/BUILD.in new file mode 100644 index 00000000..3b8de119 --- /dev/null +++ b/gazelle/bzl/testdata/resolve_overwrite/BUILD.in @@ -0,0 +1,8 @@ +# Some comment to be preserved + +# gazelle:resolve starlark starlark //internal:defs.bzl //internal:defs_bzl + +filegroup( + name = "allfiles", + srcs = glob(["**"]), +) diff --git a/gazelle/bzl/testdata/resolve_overwrite/BUILD.out b/gazelle/bzl/testdata/resolve_overwrite/BUILD.out new file mode 100644 index 00000000..5f54f19b --- /dev/null +++ b/gazelle/bzl/testdata/resolve_overwrite/BUILD.out @@ -0,0 +1,17 @@ +load("@bazel_skylib//:bzl_library.bzl", "bzl_library") + +# Some comment to be preserved + +# gazelle:resolve starlark starlark //internal:defs.bzl //internal:defs_bzl + +filegroup( + name = "allfiles", + srcs = glob(["**"]), +) + +bzl_library( + name = "foo", + srcs = ["foo.bzl"], + visibility = ["//visibility:public"], + deps = ["//internal:defs_bzl"], +) diff --git a/gazelle/bzl/testdata/resolve_overwrite/WORKSPACE b/gazelle/bzl/testdata/resolve_overwrite/WORKSPACE new file mode 100644 index 00000000..e69de29b diff --git a/gazelle/bzl/testdata/resolve_overwrite/foo.bzl b/gazelle/bzl/testdata/resolve_overwrite/foo.bzl new file mode 100644 index 00000000..de044be0 --- /dev/null +++ b/gazelle/bzl/testdata/resolve_overwrite/foo.bzl @@ -0,0 +1,7 @@ +""" +Doc string +""" + +load("//internal:defs.bzl", "deps") + +deps() diff --git a/gazelle/bzl/testdata/resolve_overwrite/internal/BUILD b/gazelle/bzl/testdata/resolve_overwrite/internal/BUILD new file mode 100644 index 00000000..5daf2005 --- /dev/null +++ b/gazelle/bzl/testdata/resolve_overwrite/internal/BUILD @@ -0,0 +1,7 @@ +load("@bazel_skylib//:bzl_library.bzl", "bzl_library") + +bzl_library( + name = "defs_bzl", + srcs = ["defs.bzl"], + visibility = ["//:__subpackages__"], +) diff --git a/gazelle/bzl/testdata/resolve_overwrite/internal/defs.bzl b/gazelle/bzl/testdata/resolve_overwrite/internal/defs.bzl new file mode 100644 index 00000000..066b74d6 --- /dev/null +++ b/gazelle/bzl/testdata/resolve_overwrite/internal/defs.bzl @@ -0,0 +1,6 @@ +""" +Simple deps +""" + +def deps(): + pass