From 6932a3df08cd95c65758fa5725fce7ed476c565d Mon Sep 17 00:00:00 2001 From: Martin Sajti Date: Tue, 24 Jun 2025 12:06:38 +0200 Subject: [PATCH] Fix function type optional param typecheck Fix erroneous code Issue: https://gitee.com/openharmony/arkcompiler_ets_frontend/issues/IC4121 Change-Id: Ifba7614dc3c6f7c35c4a57f6bc8b18e6b51073ba Signed-off-by: Martin Sajti --- ...@ohos.app.ability.InsightIntentContext.ets | 10 ++-- ...ohos.app.ability.InsightIntentExecutor.ets | 5 +- .../ets/ets/@ohos.app.ability.appManager.ets | 54 +++++++++---------- 3 files changed, 36 insertions(+), 33 deletions(-) diff --git a/frameworks/ets/ets/@ohos.app.ability.InsightIntentContext.ets b/frameworks/ets/ets/@ohos.app.ability.InsightIntentContext.ets index 40a7569f487..f8ff0107330 100644 --- a/frameworks/ets/ets/@ohos.app.ability.InsightIntentContext.ets +++ b/frameworks/ets/ets/@ohos.app.ability.InsightIntentContext.ets @@ -28,8 +28,8 @@ export default class InsightIntentContext { p1.then((e: NullishType) => { let retError = e as BusinessError; callback(retError, undefined); - }, (err: BusinessError): void => { - callback(err, undefined); + }, (err: Error): void => { + callback(err as BusinessError, undefined); }); } @@ -45,10 +45,10 @@ export default class InsightIntentContext { } else { reject(retError); } - }).catch((err: BusinessError): void => { - reject(err); + }).catch((err: Error): void => { + reject(err as BusinessError); }); }); return p; } -} \ No newline at end of file +} diff --git a/frameworks/ets/ets/@ohos.app.ability.InsightIntentExecutor.ets b/frameworks/ets/ets/@ohos.app.ability.InsightIntentExecutor.ets index 2cf3376ec9b..d98e85bcd3c 100644 --- a/frameworks/ets/ets/@ohos.app.ability.InsightIntentExecutor.ets +++ b/frameworks/ets/ets/@ohos.app.ability.InsightIntentExecutor.ets @@ -52,6 +52,7 @@ export default class InsightIntentExecutor { this.isOnExecuteInUIAbilityBackgroundModeAsync = true; p.then((result: insightIntent.ExecuteResult): void => { this.nativeOnExecuteResult(result); + return result; }); let ret: insightIntent.ExecuteResult = {code: 0}; return ret; @@ -68,6 +69,7 @@ export default class InsightIntentExecutor { this.isOnExecuteInUIExtensionAbilityAsync = true; p.then((result: insightIntent.ExecuteResult): void => { this.nativeOnExecuteResult(result); + return result; }); let ret: insightIntent.ExecuteResult = {code: 0}; return ret; @@ -84,6 +86,7 @@ export default class InsightIntentExecutor { this.isOnExecuteInServiceExtensionAbilityAsync = true; p.then((result: insightIntent.ExecuteResult): void => { this.nativeOnExecuteResult(result); + return result; }); let ret: insightIntent.ExecuteResult = {code: 0}; return ret; @@ -116,4 +119,4 @@ export default class InsightIntentExecutor { let ret: insightIntent.ExecuteResult = {code: 0}; return ret; } -} \ No newline at end of file +} diff --git a/frameworks/ets/ets/@ohos.app.ability.appManager.ets b/frameworks/ets/ets/@ohos.app.ability.appManager.ets index 836870f7f0f..ee0f1e2c03d 100644 --- a/frameworks/ets/ets/@ohos.app.ability.appManager.ets +++ b/frameworks/ets/ets/@ohos.app.ability.appManager.ets @@ -84,10 +84,10 @@ export class KeepAliveBundleInfoInner implements KeepAliveBundleInfo { export native function nativePreloadApplication(callback: AsyncCallbackWrapper, bundleName: string, userId: int, mode: PreloadMode, appIndex?: int): void; export function preloadApplication(bundleName: string, userId: int, mode: PreloadMode, appIndex?: int): Promise{ - let p:Promise = new Promise((resolve: (data:undefined)=>void, reject:(err: BusinessError | null)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError | null)=>{ + let p:Promise = new Promise((resolve: (data: PromiseLike)=>void, reject:(err: BusinessError)=>void):void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null): void =>{ if (err == null || err.code == 0) { - resolve(undefined); + resolve(Promise.resolve()); } else { reject(err); } @@ -233,10 +233,10 @@ export function off(type: 'applicationState', observerId: int, callback: AsyncCa } export function off(type: 'applicationState', observerId: int): Promise { - let p:Promise = new Promise((resolve: (data:undefined)=>void, reject:(err: BusinessError | null)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError | null)=>{ + let p:Promise = new Promise((resolve: (data: PromiseLike)=>void, reject:(err: BusinessError)=>void):void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null): void =>{ if (err == null || err.code == 0) { - resolve(undefined); + resolve(Promise.resolve()); } else { reject(err); } @@ -257,8 +257,8 @@ export function getAppMemorySize(callback: AsyncCallback): void }); } export function getAppMemorySize(): Promise { - let p = new Promise((resolve:(data:int)=>void, reject:(err: BusinessError | null)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError | null, data: int | undefined)=>{ + let p = new Promise((resolve:(data:int)=>void, reject:(err: BusinessError)=>void):void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null, data: int | undefined): void =>{ if (err == null || err.code == 0) { resolve(data as int); } else { @@ -280,8 +280,8 @@ export function isRamConstrainedDevice(callback: AsyncCallback): void { }); } export function isRamConstrainedDevice(): Promise { - let p = new Promise((resolve:(data:boolean)=>void, reject:(err: BusinessError | null)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError | null, data: boolean | undefined)=>{ + let p = new Promise((resolve:(data:boolean)=>void, reject:(err: BusinessError)=>void):void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null, data: boolean | undefined): void =>{ if (err == null || err.code == 0) { resolve(data as boolean); } else { @@ -303,8 +303,8 @@ export function isRunningInStabilityTest(callback: AsyncCallback): void }); } export function isRunningInStabilityTest(): Promise { - let p = new Promise((resolve:(data:boolean)=>void, reject:(err: BusinessError | null)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError | null, data: boolean | undefined)=>{ + let p = new Promise((resolve:(data:boolean)=>void, reject:(err: BusinessError)=>void):void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null, data: boolean | undefined): void =>{ if (err == null || err.code == 0) { resolve(data as boolean); } else { @@ -327,10 +327,10 @@ export function killProcessesByBundleName(bundleName: string, callback: AsyncCal }); } export function killProcessesByBundleName(bundleName: string): Promise { - let p:Promise = new Promise((resolve: (data:undefined)=>void, reject:(err: BusinessError | null)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError | null)=>{ + let p:Promise = new Promise((resolve: (data: PromiseLike)=>void, reject:(err: BusinessError)=>void):void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null): void =>{ if (err == null || err.code == 0) { - resolve(undefined); + resolve(Promise.resolve()); } else { reject(err); } @@ -342,10 +342,10 @@ export function killProcessesByBundleName(bundleName: string): Promise { return p; } export function killProcessesByBundleName(bundleName: string, clearPageStack: boolean, appIndex?: int): Promise { - let p:Promise = new Promise((resolve: (data:undefined)=>void, reject:(err: BusinessError | null)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError | null)=>{ + let p:Promise = new Promise((resolve: (data: PromiseLike)=>void, reject:(err: BusinessError)=>void):void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null): void =>{ if (err == null || err.code == 0) { - resolve(undefined); + resolve(Promise.resolve()); } else { reject(err); } @@ -386,7 +386,7 @@ export function killProcessWithAccount(bundleName: string, accountId: int, callb } export function killProcessWithAccount(bundleName: string, accountId: int): Promise { let p:Promise = new Promise((resolve: (data:undefined)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError | null)=>{ + let myCall = new AsyncCallbackWrapper((err: BusinessError | null): void =>{ if (err == null || err.code == 0) { resolve(undefined); } else { @@ -405,7 +405,7 @@ export function killProcessWithAccount(bundleName: string, accountId: int, clearPageStack: boolean, appIndex?: int): Promise { let p:Promise = new Promise((resolve: (data:undefined)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError | null)=>{ + let myCall = new AsyncCallbackWrapper((err: BusinessError | null): void =>{ if (err == null || err.code == 0) { resolve(undefined); } else { @@ -428,7 +428,7 @@ export function getProcessMemoryByPid(pid: int, callback: AsyncCallback): v } export function getProcessMemoryByPid(pid: int): Promise { let p = new Promise((resolve:(data:int)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError | null, data: int | undefined)=>{ + let myCall = new AsyncCallbackWrapper((err: BusinessError | null, data: int | undefined): void =>{ if (err == null || err.code == 0) { resolve(data as int); } else { @@ -470,7 +470,7 @@ export function isSharedBundleRunning(bundleName: string, versionCode: long, cal } export function isSharedBundleRunning(bundleName: string, versionCode: long): Promise { let p = new Promise((resolve:(data:boolean)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError | null, data: boolean | undefined)=>{ + let myCall = new AsyncCallbackWrapper((err: BusinessError | null, data: boolean | undefined): void =>{ if (err == null || err.code == 0) { resolve(data as boolean); } else { @@ -487,7 +487,7 @@ export function isSharedBundleRunning(bundleName: string, versionCode: long): Pr export native function nativeGetSupportedProcessCachePids(bundleName: string, callback: AsyncCallbackWrapper>) : void; export function getSupportedProcessCachePids(bundleName: string): Promise> { let p = new Promise>((resolve:(data:Array)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper>((err: BusinessError | null, data: Array | undefined)=>{ + let myCall = new AsyncCallbackWrapper>((err: BusinessError | null, data: Array | undefined): void =>{ if (err == null || err.code == 0) { resolve(data as Array); } else { @@ -504,7 +504,7 @@ export function getSupportedProcessCachePids(bundleName: string): Promise, callback: AsyncCallbackWrapper) : void; export function killProcessesInBatch(pids: Array) : Promise { let p:Promise = new Promise((resolve: (data:undefined)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError | null)=>{ + let myCall = new AsyncCallbackWrapper((err: BusinessError | null): void =>{ if (err == null || err.code == 0) { resolve(undefined); } else { @@ -521,7 +521,7 @@ export function killProcessesInBatch(pids: Array) : Promise { export native function nativeIsAppRunning(callback: AsyncCallbackWrapper, bundleName: string, appCloneIndex?: int) : void; export function isAppRunning(bundleName: string, appCloneIndex?: int): Promise { let p = new Promise((resolve:(data:boolean)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError | null, data: boolean | undefined)=>{ + let myCall = new AsyncCallbackWrapper((err: BusinessError | null, data: boolean | undefined): void =>{ if (err == null || err.code == 0) { resolve(data as boolean); } else { @@ -539,7 +539,7 @@ export native function nativeSetKeepAliveForBundle(bundleName: string, userId: int, enable: boolean, callback: AsyncCallbackWrapper) : void; export function setKeepAliveForBundle(bundleName: string, userId: int, enable: boolean): Promise { let p:Promise = new Promise((resolve: (data:undefined)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError | null)=>{ + let myCall = new AsyncCallbackWrapper((err: BusinessError | null): void =>{ if (err == null || err.code == 0) { resolve(undefined); } else { @@ -557,7 +557,7 @@ export native function nativeGetKeepAliveBundles(callback: AsyncCallbackWrapper< type: KeepAliveAppType, userId?: int) : void; export function getKeepAliveBundles(type: KeepAliveAppType, userId?: int): Promise> { let p = new Promise>((resolve:(data:Array)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper>((err: BusinessError | null, data: Array | undefined)=>{ + let myCall = new AsyncCallbackWrapper>((err: BusinessError | null, data: Array | undefined): void =>{ if (err == null || err.code == 0) { resolve(data as Array); } else { -- Gitee