1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/openharmony-arkcompiler_ets_frontend

 / Детали:

[Ошибка]: Исправление ошибки верификации с использованием оператора `instanceof`.

Предстоит сделать
Владелец
Создано  
04.03.2025

Какова проблема?

Случай ошибки:

class AAA {
    static a: number = 10
}
function foo(b:string[]):number | AAA  {
    if ("b") {
        return 1;    
    }
    return new AAA();
}
function main(p:string[]) {
    let tmp : number | AAA   = foo(p);
    if (tmp instanceof AAA) {
        tmp = AAA.a;
    }
    let tmpl = tmp as number;
}

Команда выполнения:
out/bin/es2panda test.sts --output test.abc
out/bin/verifier --boot-panda-files=out/plugins/ets/etsstdlib.abc --load-runtimes=ets --config-file=tests/tests-u-runner/runner/plugins/ets/ets-verifier.config test.abc

Ошибки:

[TID 222425] E/verifier: Верификатор ошибка 31: Недопустимый вызов с неподходящими параметрами
[TID 222425] E/verifier: Ошибка: метод void test.ETSGLOBAL::main([Ljava/lang/String;) не прошел проверку

Какое поведение ожидалось?

Проверка должна пройти успешно.

Как воспроизвести эту ошибку?

Случай ошибки:

class AAA {
    static a: number = 10
}
function foo(b:string[]):number | AAA  {
    if ("b") {
        return 1;    
    }
    return new AAA();
}
function main(p:string[]) {
    let tmp : number | AAA   = foo(p);
    if (tmp instanceof AAA) {
        tmp = AAA.a;
    }
    let tmpl = tmp as number;
}

Команда выполнения:
out/bin/es2panda test.sts --output test.abc
out/bin/verifier --boot-panda-files=out/plugins/ets/etsstdlib.abc --load-runtimes=ets --config-file=tests/tests-u-runner/runner/plugins/ets/ets-verifier.config test.abc

Дополнительная информация

Информация о версиях или ветках

  • master
  • 5.0-Beta1
  • Release 4.1
  • Release 4.0
  • Release 3.2

Комментарий (0)

GitLife Service Account Задача создана
GitLife Service Account добавлено
 
bug
label.
GitLife Service Account добавлено
 
waiting_for_assign
label.
Развернуть журнал операций

Вход Перед тем как оставить комментарий

Статус
Ответственный
Контрольная точка
Pull Requests
Связанные запросы на слияние могут быть закрыты после их объединения
Ветки
Дата начала   -   Крайний срок
-
Закрепить/Открепить
Приоритет
Участники(1)
1
https://api.gitlife.ru/oschina-mirror/openharmony-arkcompiler_ets_frontend.git
git@api.gitlife.ru:oschina-mirror/openharmony-arkcompiler_ets_frontend.git
oschina-mirror
openharmony-arkcompiler_ets_frontend
openharmony-arkcompiler_ets_frontend