From cb4ea98ed4017d590ba3386eb873bb6581b2cd9e Mon Sep 17 00:00:00 2001 From: j4k0xb <55899582+j4k0xb@users.noreply.github.com> Date: Sun, 29 Sep 2024 00:49:28 +0200 Subject: [PATCH] fix: invalid identifiers --- src/plugins/local-llm-rename/visit-all-identifiers.test.ts | 7 +++++++ src/plugins/local-llm-rename/visit-all-identifiers.ts | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/plugins/local-llm-rename/visit-all-identifiers.test.ts b/src/plugins/local-llm-rename/visit-all-identifiers.test.ts index 31f33b8..129cfbe 100644 --- a/src/plugins/local-llm-rename/visit-all-identifiers.test.ts +++ b/src/plugins/local-llm-rename/visit-all-identifiers.test.ts @@ -207,3 +207,10 @@ e.b; }) ); }); + +test("should handle invalid identifiers", async () => { + const result = await visitAllIdentifiers("const a = k.length;", () => + Promise.resolve("this.kLength") + ); + assert.equal(result, "const thisKLength = k.length;"); +}); diff --git a/src/plugins/local-llm-rename/visit-all-identifiers.ts b/src/plugins/local-llm-rename/visit-all-identifiers.ts index a42482f..d03cacf 100644 --- a/src/plugins/local-llm-rename/visit-all-identifiers.ts +++ b/src/plugins/local-llm-rename/visit-all-identifiers.ts @@ -1,6 +1,6 @@ import { parseAsync, transformFromAstAsync, NodePath } from "@babel/core"; import * as babelTraverse from "@babel/traverse"; -import { Identifier, isValidIdentifier, Node } from "@babel/types"; +import { Identifier, toIdentifier, Node } from "@babel/types"; const traverse: typeof babelTraverse.default.default = ( typeof babelTraverse.default === "function" @@ -41,7 +41,7 @@ export async function visitAllIdentifiers( const surroundingCode = await scopeToString(smallestScope); const renamed = await visitor(smallestScopeNode.name, surroundingCode); - let safeRenamed = isValidIdentifier(renamed) ? renamed : `_${renamed}`; + let safeRenamed = toIdentifier(renamed); while (renames.has(safeRenamed)) { safeRenamed = `_${safeRenamed}`; }