func (c *Context) allPackagesInFS(pattern string) []string {
	pkgs := c.MatchPackagesInFS(pattern)
	if len(pkgs) == 0 {
		fmt.Fprintf(os.Stderr, "warning: %q matched no packages\n", pattern)
	}
	return pkgs
}
allPackagesInFS is like allPackages but is passed a pattern
beginning ./ or ../, meaning it should scan the tree rooted
at the given directory. There are ... in the pattern too.
package load
import (
	"fmt"
	"go/build"
	"log"
	"os"
	"path"
	"path/filepath"
	"regexp"
	"strings"
)
type Context struct {
	BuildContext build.Context
	GOROOTsrc string
}
func (c *Context) allPackages(pattern string) []string {
	pkgs := c.MatchPackages(pattern)
	if len(pkgs) == 0 {
		fmt.Fprintf(os.Stderr, "warning: %q matched no packages\n", pattern)
	}
	return pkgs
}