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

OSCHINA-MIRROR/openharmony-arkcompiler_ets_frontend

 / Детали:

[Ошибка]: Отсутствие вариативности параметров типа в интерфейсе CTE

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

Что произошло?

// случай 1
interface I <out T> {
  f(p: T)
}

// случай 2
interface I <out T> {
  f(p: T): T
}

// случай 3
interface I <out T> {
  поле: T
}

// случай 4
interface I <in T> {
  f(): T
}

// случай 5
interface I <in T> {
  f(p: T): T
}

// случай 6
interface I <in T> {
  readonly поле: T
}

TypeError ожидался, но эти случаи могут быть скомпилированы.

Какое ожидаемое поведение?

Отчет CTE:
для случая 1, 2, 3:
TypeError: Тип параметр 'T' объявлен как 'out', но встречается в 'in' позиции.

для случая 4, 5, 6:
TypeError: Тип параметр 'T' объявлен как 'in', но встречается в 'out' позиции.

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

Скомпилировать эти случаи

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

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

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

Что произошло?

// случай 1
interface I <out T> {
  f(p: T)
}

// случай 2
interface I <out T> {
  f(p: T): T
}

// случай 3
interface I <out T> {
  поле: T
}

// случай 4
interface I <in T> {
  f(): T
}

// случай 5
interface I <in T> {
  f(p: T): T
}

// случай 6
interface I <in T> {
  readonly поле: T
}

TypeError ожидался, но эти случаи могут быть скомпилированы.

Какое ожидаемое поведение?

Отчет CTE:
для случая 1, 2, 3:
TypeError: Тип параметр 'T' объявлен как 'out', но встречается в 'in' позиции.

для случая 4, 5, 6:
TypeError: Тип параметр 'T' объявлен как 'in', но встречается в 'out' позиции.

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

Скомпилировать эти случаи

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

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

  • master
  • 5.1-Release
  • 5.0-Release
  • 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