Skip to content

Commit 7092eac

Browse files
authored
Merge pull request #209 from DirectXMan12/bug/panic-on-missing-import
🐛 Fix panic on missing import in ref checker
2 parents 5593306 + fc2dcde commit 7092eac

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

pkg/crd/gen.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,6 @@ func findKubeKinds(parser *Parser, metav1Pkg *loader.Package) []schema.GroupKind
147147
fieldPkgPath := loader.NonVendorPath(namedField.Obj().Pkg().Path())
148148
fieldPkg := pkg.Imports()[fieldPkgPath]
149149
if fieldPkg != metav1Pkg {
150-
fmt.Printf("field %q's package is %q (%v), not metav1", field.Name, namedField.Obj().Pkg().Path(), fieldPkg)
151150
continue
152151
}
153152

pkg/loader/refs.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ func mapImports(file *ast.File, importedPkgs map[string]*Package) (*importsMap,
8282
type referenceSet struct {
8383
file *ast.File
8484
imports *importsMap
85+
pkg *Package
8586

8687
externalRefs map[*Package]struct{}
8788
}
@@ -109,6 +110,10 @@ func (r *referenceSet) collectReferences(rawType ast.Expr, filterNode NodeFilter
109110
// external saves an external reference to the given named package.
110111
func (r *referenceSet) external(pkgName string) {
111112
pkg := r.imports.byName[pkgName]
113+
if pkg == nil {
114+
r.pkg.AddError(fmt.Errorf("use of unimported package %q", pkgName))
115+
return
116+
}
112117
r.externalRefs[pkg] = struct{}{}
113118
}
114119

@@ -149,6 +154,7 @@ func allReferencedPackages(pkg *Package, filterNodes NodeFilter) []*Package {
149154
refs := &referenceSet{
150155
file: file,
151156
imports: imports,
157+
pkg: pkg,
152158
}
153159
refsByFile[file] = refs
154160
}

0 commit comments

Comments
 (0)