From 577fb03ce38c1f2fbf62405cdecb8bf8dad23031 Mon Sep 17 00:00:00 2001 From: Esorat Date: Wed, 16 Oct 2024 23:18:19 +0700 Subject: [PATCH 1/5] fix: adapt resolveImports to handle AstImport objects from parseImports --- src/grammar/grammar.ts | 6 ++---- src/imports/resolveImports.ts | 3 ++- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/grammar/grammar.ts b/src/grammar/grammar.ts index 840bc0eff..d33aa28ca 100644 --- a/src/grammar/grammar.ts +++ b/src/grammar/grammar.ts @@ -1509,7 +1509,7 @@ export function parseImports( src: string, path: string, origin: ItemOrigin, -): string[] { +): AstImport[] { return inFile(path, () => { const matchResult = tactGrammar.match(src, "JustImports"); if (matchResult.failed()) { @@ -1517,9 +1517,7 @@ export function parseImports( } ctx = { origin }; try { - const imports: AstImport[] = - semantics(matchResult).astOfJustImports(); - return imports.map((imp) => imp.path.value); + return semantics(matchResult).astOfJustImports(); } finally { ctx = null; } diff --git a/src/imports/resolveImports.ts b/src/imports/resolveImports.ts index 4393ac55d..1e9e12af6 100644 --- a/src/imports/resolveImports.ts +++ b/src/imports/resolveImports.ts @@ -42,10 +42,11 @@ export function resolveImports(args: { function processImports(source: string, path: string, origin: ItemOrigin) { const imp = parseImports(source, path, origin); for (const i of imp) { + const importPath = i.path.value; // Resolve library const resolved = resolveLibrary({ path: path, - name: i, + name: importPath, project: args.project, stdlib: args.stdlib, }); From 9f690656d477e432829e9ecfba8a3bf153c53d6c Mon Sep 17 00:00:00 2001 From: Esorat Date: Thu, 17 Oct 2024 13:11:40 +0700 Subject: [PATCH 2/5] fix: use importPath variable instead of i in error message --- src/imports/resolveImports.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/imports/resolveImports.ts b/src/imports/resolveImports.ts index 1e9e12af6..0dd8915af 100644 --- a/src/imports/resolveImports.ts +++ b/src/imports/resolveImports.ts @@ -52,7 +52,7 @@ export function resolveImports(args: { }); if (!resolved.ok) { throwCompilationError( - `Could not resolve import "${i}" in ${path}`, + `Could not resolve import "${importPath}" in ${path}`, ); } From 99874ff1358cd237438e4dcc84273cbd62cb743e Mon Sep 17 00:00:00 2001 From: Esorat Date: Thu, 17 Oct 2024 13:16:49 +0700 Subject: [PATCH 3/5] chore: add changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index df5c4f98b..928973724 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,7 +17,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Destructuring of structs and messages: PR [#856](https://github.com/tact-lang/tact/pull/856) ### Changed - +- Adapted resolveImports to handle AstImport objects from parseImports: PR [#966](https://github.com/tact-lang/tact/pull/966) - Optional types for `self` argument in `extends mutates` functions are now allowed: PR [#854](https://github.com/tact-lang/tact/pull/854) ### Fixed From 4bebd5e7a85b33b82341122e0fa8284d2878560b Mon Sep 17 00:00:00 2001 From: Esorat Date: Thu, 17 Oct 2024 13:20:31 +0700 Subject: [PATCH 4/5] chore: yarn prettier --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 928973724..78cbd6c40 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Destructuring of structs and messages: PR [#856](https://github.com/tact-lang/tact/pull/856) ### Changed + - Adapted resolveImports to handle AstImport objects from parseImports: PR [#966](https://github.com/tact-lang/tact/pull/966) - Optional types for `self` argument in `extends mutates` functions are now allowed: PR [#854](https://github.com/tact-lang/tact/pull/854) From 58a469eb963bc9aaa451002fabf10e67075fa81c Mon Sep 17 00:00:00 2001 From: Anton Trunov Date: Thu, 17 Oct 2024 10:23:49 +0400 Subject: [PATCH 5/5] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5b36b34de..7adda2edc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,7 +18,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Adapted resolveImports to handle AstImport objects from parseImports: PR [#966](https://github.com/tact-lang/tact/pull/966) +- The `parseImports` function now returns AST import nodes instead of raw strings: PR [#966](https://github.com/tact-lang/tact/pull/966) - Optional types for `self` argument in `extends mutates` functions are now allowed: PR [#854](https://github.com/tact-lang/tact/pull/854) ### Fixed