diff --git a/analyzer/type.go b/analyzer/type.go index e3345a0..57f921b 100644 --- a/analyzer/type.go +++ b/analyzer/type.go @@ -196,6 +196,7 @@ func (analyzer analysisOperation) analyzeType ( actual, bitten, err = analyzer.fetchSectionFromIdentifier(inputType.Name()) + if err != nil { return } if actual == nil { err = inputType.NewError ( diff --git a/parser/meta.go b/parser/meta.go index c4373d6..34613ee 100644 --- a/parser/meta.go +++ b/parser/meta.go @@ -1,14 +1,11 @@ package parser -import "os" import "path/filepath" import "git.tebibyte.media/arf/arf/lexer" import "git.tebibyte.media/arf/arf/infoerr" // parseMeta parsese the metadata header at the top of an arf file. func (parser *parsingOperation) parseMeta () (err error) { - cwd, _ := os.Getwd() - for { err = parser.expect ( lexer.TokenKindName, @@ -37,7 +34,7 @@ func (parser *parsingOperation) parseMeta () (err error) { case "require": // if import path is relative, get absolute path. if value[0] == '.' { - value = filepath.Join(cwd, value) + value = filepath.Join(parser.modulePath, value) } else if value[0] != '/' { // TODO: get arf import path from an env // variable, and default to this if not found.