mirror of
https://github.com/magefile/mage.git
synced 2026-10-24 06:19:18 +03:00
fixes #13 The bug was that non-stdlib imports were failing to be found by the parser. The problem is that the default importer only imports from compiled files. But we specifically want to import from source files. For go 1.9 this is easy, go/importer has an importer.For that takes "source". However, previous to go 1.9, this doesn't exist. To keep the code working in previous versions, we just grab the code from 1.9's srcimporter and include it in the build, and then conditionally compile in that code if we're not running on go 1.9 or greater (if we are running on go 1.9, we can use the stdlib version, which is better because it'll get fixes etc automatically). Also added a bunch of tests to ensure that this code won't break again without a test failing.
14 lines
171 B
Go
14 lines
171 B
Go
// +build go1.9
|
|
|
|
package parse
|
|
|
|
import (
|
|
"go/importer"
|
|
"go/token"
|
|
"go/types"
|
|
)
|
|
|
|
func getImporter(*token.FileSet) types.Importer {
|
|
return importer.For("source", nil)
|
|
}
|