From 5d27befb6f9efd152ef380ab4a2a40eb54875e8a Mon Sep 17 00:00:00 2001 From: Sasha Koshka Date: Wed, 12 Oct 2022 13:11:36 -0400 Subject: [PATCH] Fixed require paths Previously, relative require paths would be resolved based on the current working directory. They are now resolved based on the path of the module. --- analyzer/type.go | 1 + parser/meta.go | 5 +---- 2 files changed, 2 insertions(+), 4 deletions(-) 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.