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

OSCHINA-MIRROR/openharmony-arkcompiler_ets_frontend

 / Детали:

[Ошибка]: Должна выбрасываться ошибка CTE для сигнатур с перегрузкой, эквивалентных по типам параметров

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

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

Спецификация гласит следующее: "Тип параметра на некоторой позиции в S1 является типовым параметром, а тип параметра на той же позиции в S2 — это любой ссылочный тип или типовой параметр". В соответствии с этим данный код должен выбрасывать ошибку CTE, так как два сигнатурных объявления являются перегрузочными эквивалентами.

class A<T> {
  foo(x: T): void {
  }

  foo(x: number): void {
  }
}

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

Ошибка CTE для второй сигнатуры

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

Используя данный пример кода.

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

В спецификации не указано, что должно произойти, если типовой параметр имеет ограничения. Наше мнение заключается в том, что мы должны учитывать эти ограничения, и если они запрещают использование другого ссылочного типа, то код должен компилироваться. Таким образом, этот пример должен компилироваться без ошибок:

class X {}

class A<T extends X> { // T не может быть number
  foo(x: T): void {
  }

  foo(x: number): void {
  }
}

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

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

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

GitLife Service Account Задача создана
GitLife Service Account добавлено
 
waiting_for_assign
label.
GitLife Service Account добавлено
 
bug
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