Skip to content

Commit 2da441c

Browse files
committed
Make standard transformers have lowest priority
1 parent 18d692e commit 2da441c

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

src/transformation/index.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import * as ts from "typescript";
22
import * as lua from "../LuaAST";
33
import { LuaLibFeature } from "../LuaLib";
44
import { getOrUpdate } from "../utils";
5-
import { ObjectVisitor, TransformationContext, VisitorMap, Visitors } from "./context";
5+
import { FunctionVisitor, ObjectVisitor, TransformationContext, VisitorMap, Visitors } from "./context";
66
import { standardVisitors } from "./transformers";
77
import { TranspileError } from "./utils/errors";
88
import { getUsedLuaLibFeatures } from "./utils/lualib";
@@ -20,13 +20,15 @@ const transpileErrorDiagnostic = (error: TranspileError): ts.Diagnostic => ({
2020
export function createVisitorMap(customVisitors: Visitors[]): VisitorMap {
2121
const visitorMap: VisitorMap = new Map();
2222
for (const visitors of [standardVisitors, ...customVisitors]) {
23+
const priority = visitors === standardVisitors ? -Infinity : 0;
2324
for (const [syntaxKindKey, visitor] of Object.entries(visitors)) {
2425
if (!visitor) continue;
2526

2627
const syntaxKind = Number(syntaxKindKey) as ts.SyntaxKind;
2728
const nodeVisitors = getOrUpdate(visitorMap, syntaxKind, () => []);
2829

29-
const objectVisitor: ObjectVisitor<any> = typeof visitor === "function" ? { transform: visitor } : visitor;
30+
const objectVisitor: ObjectVisitor<any> =
31+
typeof visitor === "function" ? { transform: visitor, priority } : visitor;
3032
nodeVisitors.push(objectVisitor);
3133
}
3234
}

0 commit comments

Comments
 (0)