diff --git a/ui2abc/libarkts/plugins/src/printer-plugin.ts b/ui2abc/libarkts/plugins/src/printer-plugin.ts index 063f130e1aca159a20d1014f3f25394542ccbdae..0d87341193ab16bd2f7778db6c74b00898c1b9d1 100644 --- a/ui2abc/libarkts/plugins/src/printer-plugin.ts +++ b/ui2abc/libarkts/plugins/src/printer-plugin.ts @@ -38,7 +38,7 @@ export function init(parsedJson?: Object, checkedJson?: Object) { parsed(hooks: arkts.RunTransformerHooks = parsedHooks) { console.log("[printer-plugin] Run parsed state plugin") const transform = printerTransformer(parsedJson) - const prog = arkts.arktsGlobal.compilerContext.program + const prog = arkts.arktsGlobal.compilerContext!.program const state = arkts.Es2pandaContextState.ES2PANDA_STATE_PARSED try { arkts.runTransformer(prog, state, transform, pluginContext, hooks) @@ -50,7 +50,7 @@ export function init(parsedJson?: Object, checkedJson?: Object) { checked(hooks: arkts.RunTransformerHooks = checkedHooks) { console.log("[printer-plugin] Run checked state plugin") const transform = printerTransformer(checkedJson) - const prog = arkts.arktsGlobal.compilerContext.program + const prog = arkts.arktsGlobal.compilerContext!.program const state = arkts.Es2pandaContextState.ES2PANDA_STATE_CHECKED try { arkts.runTransformer(prog, state, transform, pluginContext, hooks) diff --git a/ui2abc/libarkts/src-host/es2panda.ts b/ui2abc/libarkts/src-host/es2panda.ts index 25b24d7bfc11434c2ea80d662718392f0f358b63..fad61c145e492450026518965050168c0f339ace 100644 --- a/ui2abc/libarkts/src-host/es2panda.ts +++ b/ui2abc/libarkts/src-host/es2panda.ts @@ -112,7 +112,7 @@ function dumpMemoryProfilerInfo(str: string) { function dumpCompilationInfo(simultaneous: boolean) { traceGlobal(() => { - const programs = listPrograms(global.compilerContext.program) + const programs = listPrograms(global.compilerContext!.program) if (simultaneous) { const programsForCodegeneration = programs.filter(it => it.isGenAbcForExternal) traceGlobal(() => `Programs for codegeneration : ${programsForCodegeneration.length}`) diff --git a/ui2abc/libarkts/src/arkts-api/static/global.ts b/ui2abc/libarkts/src/arkts-api/static/global.ts index ac198cc9a21e3fdef0c659cef410106782f9fb13..29318853a4698ec621487dfe6b93655e39816188 100644 --- a/ui2abc/libarkts/src/arkts-api/static/global.ts +++ b/ui2abc/libarkts/src/arkts-api/static/global.ts @@ -47,7 +47,7 @@ export class global { } // Improve: rename to context when the pointer valued one is eliminated - public static compilerContext: Context + public static compilerContext: Context | undefined public static isContextGenerateAbcForExternalSourceFiles: boolean = false private static _es2panda: Es2pandaNativeModule | undefined = undefined @@ -77,4 +77,8 @@ export class global { // Check node type values during node creation public static validatePeerTypes = false + + public static clearContext(): void { + global.compilerContext = undefined + } } diff --git a/ui2abc/libarkts/src/index.ts b/ui2abc/libarkts/src/index.ts index 3d71d4ae7ecb1e000b7087176465e8dd0e0ab760..730181a83a64bc2512cfd06fe7dbfa841a0bd7ad 100644 --- a/ui2abc/libarkts/src/index.ts +++ b/ui2abc/libarkts/src/index.ts @@ -39,6 +39,7 @@ export * from "./arkts-api/peers/ExternalSource" export * from "./arkts-api/peers/ImportPathManager" export * from "./arkts-api/peers/Options" export { global as arktsGlobal } from "./arkts-api/static/global" +export * from "./arkts-api/static/globalUtils" export * as arkts from "./arkts-api" export * from "./plugin-utils" diff --git a/ui2abc/libarkts/test/arkts-api/general/recheck.test.ts b/ui2abc/libarkts/test/arkts-api/general/recheck.test.ts index 6ba9036b4a1be3c3d06d113d5c3ceddfa4d65281..ad0e4e6cafcaf8fbf9528add20ba2a3ff4bf5fe6 100644 --- a/ui2abc/libarkts/test/arkts-api/general/recheck.test.ts +++ b/ui2abc/libarkts/test/arkts-api/general/recheck.test.ts @@ -63,7 +63,7 @@ suite(util.basename(__filename), () => { arkts.proceedToState(arkts.Es2pandaContextState.ES2PANDA_STATE_PARSED) - const program = arkts.arktsGlobal.compilerContext.program + const program = arkts.arktsGlobal.compilerContext!.program const importStorage = new arkts.ImportStorage(program, true) const module = program.ast as arkts.ETSModule @@ -128,11 +128,11 @@ console.log("test"); arkts.proceedToState(arkts.Es2pandaContextState.ES2PANDA_STATE_CHECKED) - const program = arkts.arktsGlobal.compilerContext.program + const program = arkts.arktsGlobal.compilerContext!.program const importStorage = new arkts.ImportStorage(program, true) const module = program.ast as arkts.ETSModule - arkts.arktsGlobal.compilerContext.program.getExternalSources().forEach(it => { + arkts.arktsGlobal.compilerContext!.program.getExternalSources().forEach(it => { if (!it.getName().includes("library")) return it.programs.forEach(program => { program.setAst(new RenameTestFunction().visitor(program.ast)) diff --git a/ui2abc/libarkts/test/arkts-api/recheck/recheck.test.ts b/ui2abc/libarkts/test/arkts-api/recheck/recheck.test.ts index ce11a18e52d82c7310de3f0a879bb1df6da40c60..da720d30a912d8f04069ad1cc91074d621450452 100644 --- a/ui2abc/libarkts/test/arkts-api/recheck/recheck.test.ts +++ b/ui2abc/libarkts/test/arkts-api/recheck/recheck.test.ts @@ -68,7 +68,7 @@ function proceedToChecked() { } function applyTransformOnState(transform?: arkts.ProgramTransformer, state: arkts.Es2pandaContextState = arkts.Es2pandaContextState.ES2PANDA_STATE_CHECKED) { - arkts.runTransformer(arkts.arktsGlobal.compilerContext.program, state, transform, new arkts.PluginContextImpl(), {}) + arkts.runTransformer(arkts.arktsGlobal.compilerContext!.program, state, transform, new arkts.PluginContextImpl(), {}) } function recheck() { diff --git a/ui2abc/memo-plugin/src/entry.ts b/ui2abc/memo-plugin/src/entry.ts index 61af10f892dae353296890e20dfa8a1e2cee92f2..9f8252848270206799e20fe746d2e22c641fafef 100644 --- a/ui2abc/memo-plugin/src/entry.ts +++ b/ui2abc/memo-plugin/src/entry.ts @@ -27,7 +27,7 @@ export function init(parsedJson?: Object, checkedJson?: Object) { arkts.Tracer.pushContext('memo-plugin') arkts.traceGlobal(() => "Run parsed state plugin", true) const transform = parsedTransformer(parsedJson) - const prog = arkts.arktsGlobal.compilerContext.program + const prog = arkts.arktsGlobal.compilerContext!.program const state = arkts.Es2pandaContextState.ES2PANDA_STATE_PARSED try { arkts.runTransformer(prog, state, transform, pluginContext, hooks) @@ -41,7 +41,7 @@ export function init(parsedJson?: Object, checkedJson?: Object) { arkts.Tracer.pushContext('memo-plugin') arkts.traceGlobal(() => "Run checked state plugin", true) const transform = checkedTransformer(checkedJson) - const prog = arkts.arktsGlobal.compilerContext.program + const prog = arkts.arktsGlobal.compilerContext!.program const state = arkts.Es2pandaContextState.ES2PANDA_STATE_CHECKED try { arkts.runTransformer(prog, state, transform, pluginContext, hooks) diff --git a/ui2abc/ui-plugins/src/annotation-translator.ts b/ui2abc/ui-plugins/src/annotation-translator.ts index 3ec8af741d9ab085952a20a3cb55b4e898ab851d..e65f6040d9d3bcc90e6166b97f7396644dbf4161 100644 --- a/ui2abc/ui-plugins/src/annotation-translator.ts +++ b/ui2abc/ui-plugins/src/annotation-translator.ts @@ -22,7 +22,7 @@ export class AnnotationsTransformer extends arkts.AbstractVisitor { constructor(options?: arkts.VisitorOptions) { super(options) - this.program = arkts.global.compilerContext.program + this.program = arkts.global.compilerContext!.program } diff --git a/ui2abc/ui-plugins/src/call-transformer.ts b/ui2abc/ui-plugins/src/call-transformer.ts index 0d68a1c7990195e80a5a49bdfade1f85cb483152..3fc3fce880ba651bdd9900b3a8e43a43af6aefb5 100644 --- a/ui2abc/ui-plugins/src/call-transformer.ts +++ b/ui2abc/ui-plugins/src/call-transformer.ts @@ -25,7 +25,7 @@ export class CallTransformer extends arkts.AbstractVisitor { constructor(private imports: Importer, options?: ComponentTransformerOptions) { super() - this.program = arkts.global.compilerContext.program + this.program = arkts.global.compilerContext!.program this.applicationInfo = options?.applicationInfo } diff --git a/ui2abc/ui-plugins/src/entry.ts b/ui2abc/ui-plugins/src/entry.ts index 98ef43f9eacd45ecb64486ad071f2de30aba5e50..827afa9cbf3bb2157494493e787ef625568e3e8a 100644 --- a/ui2abc/ui-plugins/src/entry.ts +++ b/ui2abc/ui-plugins/src/entry.ts @@ -28,7 +28,7 @@ export function init(parsedJson?: Object, checkedJson?: Object) { arkts.Tracer.pushContext('ui-plugin') arkts.traceGlobal(() => "Run parsed state plugin", true) const transform = parsedTransformer(parsedJson) - const prog = arkts.arktsGlobal.compilerContext.program + const prog = arkts.arktsGlobal.compilerContext!.program const state = arkts.Es2pandaContextState.ES2PANDA_STATE_PARSED try { arkts.runTransformer(prog, state, transform, pluginContext, hooks) @@ -42,7 +42,7 @@ export function init(parsedJson?: Object, checkedJson?: Object) { arkts.Tracer.pushContext('ui-plugin') arkts.traceGlobal(() => "Run checked state plugin", true) const transform = checkedTransformer(checkedJson) - const prog = arkts.arktsGlobal.compilerContext.program + const prog = arkts.arktsGlobal.compilerContext!.program const state = arkts.Es2pandaContextState.ES2PANDA_STATE_CHECKED try { arkts.runTransformer(prog, state, transform, pluginContext, hooks) diff --git a/ui2abc/ui-plugins/src/struct-recorder.ts b/ui2abc/ui-plugins/src/struct-recorder.ts index 48f3563cc45de3f2033d0af5f1ac66a5497446b5..62d7144d4ff88b41954d39f7f097f1c14099b8aa 100644 --- a/ui2abc/ui-plugins/src/struct-recorder.ts +++ b/ui2abc/ui-plugins/src/struct-recorder.ts @@ -61,7 +61,7 @@ export class StructsResolver { } init() { - for (let source of arkts.global.compilerContext.program.getExternalSources()) { + for (let source of arkts.arktsGlobal.compilerContext!.program.getExternalSources()) { const name = source.getName() if (name.startsWith("std.")) continue if (name.startsWith("escompat")) continue