in processor/processor.go [446:466]
func mkType(pkg *loader.Package, t gotypes.Type) (*types.Type, bool) {
qualifier := gotypes.RelativeTo(pkg.Types)
cleanTypeName := strings.TrimLeft(gotypes.TypeString(t, qualifier), "*[]")
typeDef := &types.Type{
UID: t.String(),
Name: cleanTypeName,
Package: pkg.PkgPath,
}
// Check if the type is imported
rawType := strings.HasPrefix(cleanTypeName, "struct{") || strings.HasPrefix(cleanTypeName, "interface{")
dotPos := strings.LastIndexByte(cleanTypeName, '.')
if !rawType && dotPos >= 0 {
typeDef.Name = cleanTypeName[dotPos+1:]
typeDef.Package = cleanTypeName[:dotPos]
typeDef.Imported = true
}
return typeDef, rawType
}